Difference between revisions of "User:Sahilvaidya/CQL/Log"
From BRL-CAD
Sahilvaidya (talk | contribs) |
Sahilvaidya (talk | contribs) |
||
(8 intermediate revisions by the same user not shown) | |||
Line 11: | Line 11: | ||
*Began learning and practicing new fuzzer -- LibFuzzer | *Began learning and practicing new fuzzer -- LibFuzzer | ||
*Went through tutorials on LibFuzzer and wrote sort programs to run it on | *Went through tutorials on LibFuzzer and wrote sort programs to run it on | ||
+ | *Followed this tutorial: https://github.com/google/fuzzing/blob/master/tutorial/libFuzzerTutorial.md | ||
+ | |||
== 3/4 == | == 3/4 == | ||
*Tried to link LibFuzzer target to BRL-CAD library | *Tried to link LibFuzzer target to BRL-CAD library | ||
Line 19: | Line 21: | ||
*Found the BRL-CAD header file and the exact syntax needed to fully compile my target | *Found the BRL-CAD header file and the exact syntax needed to fully compile my target | ||
*Built the target, ran it in various ways tinkering with how the data was input into bu_sort, checking if the output was correct, adding seeds to the input | *Built the target, ran it in various ways tinkering with how the data was input into bu_sort, checking if the output was correct, adding seeds to the input | ||
+ | *Used this compilation statement | ||
+ | clang++ -g -O1 -fsanitize=fuzzer -Iinclude -Ibuild/include -Ibuild/include/openNURBS/ target.cc -Lbuild/lib -Wl,-rpath -Wl,build/lib -lrt -lbu | ||
+ | |||
+ | == 3/23 == | ||
+ | *Learned Jenkins CI and successfully built BRL-CAD | ||
+ | *Started creating a build to test BRL-CAD immediately | ||
+ | |||
+ | == 3/25 == | ||
+ | *Fixed testing BRL-CAD in Jenkins | ||
+ | *Began creating infrastructure for a "make fuzz" | ||
+ | |||
+ | == 3/30 == | ||
+ | *Looked at other regression tests cmake files to find what exactly is required to compile | ||
+ | *Tried to mimic these to compile fuzzing tests | ||
+ | |||
+ | == 4/1 == | ||
+ | *Switched strategies for compiling using cmake, spent most of my time reading documentation to better understand how exactly cmake works and how that can be applied to fuzzing | ||
+ | |||
+ | |||
+ | == 4/13 == | ||
+ | *Figured out how to create a fuzz directory in the build | ||
+ | *Began writing run.sh to find libraries and compile the test | ||
+ | *Used the benchmark file to base the run.sh off of but cannot figure out how to find the target | ||
+ | |||
+ | == 4/17 == | ||
+ | *Much closer to compiling target -- using add_executable and linking targets with target_link_libraries | ||
+ | *Found how to link libfuzzer with the target in cmake | ||
+ | *Added dependency bu | ||
+ | *Still having trouble figuring out how to add the dependency rt | ||
+ | *Getting error that it is an executable that cannot be shared | ||
+ | |||
+ | == 4/27 == | ||
+ | *Changed compiler to Clang for building BRL-CAD | ||
+ | *Successfully compiled fuzz test | ||
+ | *Able to run fuzz test with "make fuzz" | ||
+ | |||
+ | == 4/28 == | ||
+ | *Compiled Sean's random command generator using "make fuzz" | ||
+ | |||
+ | == 4/29 == | ||
+ | *Created a patch for local SVN changes | ||
+ | |||
+ | == 4/30 == | ||
+ | *Compiled new make fuzz target which runs random commands -- already finds bugs | ||
+ | *Need to find how to record code coverage and improve it |
Latest revision as of 09:54, 1 May 2020
Contents
Development Log[edit]
2/17[edit]
- Found exactly how to create a test
2/19[edit]
- Found best files to begin trying to fuzz
2/24[edit]
- Made basic programs using zzuf and afl to begin fuzzing
2/27[edit]
- Tried to integrate AFL with BRL-CAD tests
3/2[edit]
- Began learning and practicing new fuzzer -- LibFuzzer
- Went through tutorials on LibFuzzer and wrote sort programs to run it on
- Followed this tutorial: https://github.com/google/fuzzing/blob/master/tutorial/libFuzzerTutorial.md
3/4[edit]
- Tried to link LibFuzzer target to BRL-CAD library
- Struggled with the compilation of BRL-CAD (required installing libraries not needed before)
- Struggled with compiling target so it had BRL-CAD libraries
3/9[edit]
- Experimented with compiling target and consulted Shikhar, a PHd student at UT
- Found the BRL-CAD header file and the exact syntax needed to fully compile my target
- Built the target, ran it in various ways tinkering with how the data was input into bu_sort, checking if the output was correct, adding seeds to the input
- Used this compilation statement
clang++ -g -O1 -fsanitize=fuzzer -Iinclude -Ibuild/include -Ibuild/include/openNURBS/ target.cc -Lbuild/lib -Wl,-rpath -Wl,build/lib -lrt -lbu
3/23[edit]
- Learned Jenkins CI and successfully built BRL-CAD
- Started creating a build to test BRL-CAD immediately
3/25[edit]
- Fixed testing BRL-CAD in Jenkins
- Began creating infrastructure for a "make fuzz"
3/30[edit]
- Looked at other regression tests cmake files to find what exactly is required to compile
- Tried to mimic these to compile fuzzing tests
4/1[edit]
- Switched strategies for compiling using cmake, spent most of my time reading documentation to better understand how exactly cmake works and how that can be applied to fuzzing
4/13[edit]
- Figured out how to create a fuzz directory in the build
- Began writing run.sh to find libraries and compile the test
- Used the benchmark file to base the run.sh off of but cannot figure out how to find the target
4/17[edit]
- Much closer to compiling target -- using add_executable and linking targets with target_link_libraries
- Found how to link libfuzzer with the target in cmake
- Added dependency bu
- Still having trouble figuring out how to add the dependency rt
- Getting error that it is an executable that cannot be shared
4/27[edit]
- Changed compiler to Clang for building BRL-CAD
- Successfully compiled fuzz test
- Able to run fuzz test with "make fuzz"
4/28[edit]
- Compiled Sean's random command generator using "make fuzz"
4/29[edit]
- Created a patch for local SVN changes
4/30[edit]
- Compiled new make fuzz target which runs random commands -- already finds bugs
- Need to find how to record code coverage and improve it