diff --git a/fuzzers/FRET/benchmark/Snakefile b/fuzzers/FRET/benchmark/Snakefile index 5b013b5239..9b551851d8 100644 --- a/fuzzers/FRET/benchmark/Snakefile +++ b/fuzzers/FRET/benchmark/Snakefile @@ -229,11 +229,14 @@ rule quicktest: expand("timedump/{fuzzer}/{target}{variant}#{num}.time", fuzzer=['random'], target=['release', 'waters', 'copter'], variant=['_full', '_bytes', '_int'], num=range(0,int( NUM_ITERS/2 ))), - -rule stgcomp: +rule extended_set: input: - expand("timedump/{fuzzer}/{target}{variant}#{num}.time", fuzzer=['stg', 'stg_abbpath', 'stg_edge'], target=['release', 'waters', 'copter'], variant=['_full'], num=range(0,7)), + expand("timedump/{fuzzer}/{target}{variant}#{num}.time", fuzzer=['feedgeneration100', 'stg'], target=['release', 'waters', 'copter'], variant=['_seq_full'], num=range(0,int( 10 ))), + expand("timedump/{fuzzer}/{target}{variant}#{num}.time", fuzzer=['feedgeneration100', 'stg'], target=['waters'], variant=['_seq_int','_seq_bytes'], num=range(0,int( 10 ))), + expand("timedump/{fuzzer}/{target}{variant}#{num}.time", fuzzer=['feedgeneration100', 'stg'], target=['copter'], variant=['_seq_bytes'], num=range(0,int( 10 ))), + expand("timedump/{fuzzer}/{target}{variant}#{num}.time", fuzzer=['random'], target=['copter', 'release', 'waters'], variant=['_seq_full'], num=range(0,int( 1 ))), + expand("timedump/{fuzzer}/{target}{variant}#{num}.time", fuzzer=['random'], target=['copter', 'waters'], variant=['_seq_full','_seq_int','_seq_bytes'], num=range(0,int( 1 ))), rule all_bins: input: - expand("bins/target_{target}",target=['random','frafl','stg','stg_edge', 'stg_path','feedgeneration100', 'feedgeneration1000', 'genetic100', 'genetic1000']) + expand("bins/target_{target}",target=['random','frafl','stg','feedgeneration100','feedgeneration1000','genetic100','genetic1000']) diff --git a/fuzzers/FRET/benchmark/build_all_demos.sh b/fuzzers/FRET/benchmark/build_all_demos.sh index ec6c3aff86..4e9b66bfdd 100644 --- a/fuzzers/FRET/benchmark/build_all_demos.sh +++ b/fuzzers/FRET/benchmark/build_all_demos.sh @@ -1,4 +1,5 @@ -export PARTITION_INPUT=1 +# Sequential inputs! +export PARTITION_INPUT=0 build () { make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC $1=1 FUZZ_INT_ACTIVATION=$FUZZ_INT_ACTIVATION FUZZ_BYTES=$FUZZ_BYTES @@ -7,7 +8,7 @@ build () { # Only bytes -export FUZZ_INT_ACTIVATION=0 FUZZ_BYTES=1 SUFFIX="_bytes" +export FUZZ_INT_ACTIVATION=0 FUZZ_BYTES=1 SUFFIX="_seq_bytes" build WATERS_DEMO $SUFFIX build RELEASE_DEMO $SUFFIX @@ -16,7 +17,7 @@ build INTERACT_DEMO $SUFFIX # Only interrupts -export FUZZ_INT_ACTIVATION=1 FUZZ_BYTES=0 SUFFIX="_int" +export FUZZ_INT_ACTIVATION=1 FUZZ_BYTES=0 SUFFIX="_seq_int" build WATERS_DEMO $SUFFIX build RELEASE_DEMO $SUFFIX @@ -25,14 +26,9 @@ build INTERACT_DEMO $SUFFIX # Full -export FUZZ_INT_ACTIVATION=1 FUZZ_BYTES=1 SUFFIX="_full" +export FUZZ_INT_ACTIVATION=1 FUZZ_BYTES=1 SUFFIX="_seq_full" build WATERS_DEMO $SUFFIX build RELEASE_DEMO $SUFFIX build COPTER_DEMO $SUFFIX -build INTERACT_DEMO $SUFFIX - -# Bonus: Sequential inputs - -export PARTITION_INPUT=0 -build WATERS_DEMO "$SUFFIX_seq" +build INTERACT_DEMO $SUFFIX \ No newline at end of file diff --git a/fuzzers/FRET/benchmark/plot_all_benchmarks.sh b/fuzzers/FRET/benchmark/plot_all_benchmarks.sh index 9a0d671dd1..d607f1e04f 100644 --- a/fuzzers/FRET/benchmark/plot_all_benchmarks.sh +++ b/fuzzers/FRET/benchmark/plot_all_benchmarks.sh @@ -1,13 +1,30 @@ -[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/waters_seq_all.png ] && Rscript plot_multi.r remote waters_seq ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/waters_seq_int_all.png ] && Rscript plot_multi.r remote waters_seq_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/watersv2_seq_all.png ] && Rscript plot_multi.r remote watersv2_seq ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/watersv2_seq_int_all.png ] && Rscript plot_multi.r remote watersv2_seq_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/waters_par_all.png ] && Rscript plot_multi.r remote waters_par ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/waters_par_int_all.png ] && Rscript plot_multi.r remote waters_par_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/watersv2_par_all.png ] && Rscript plot_multi.r remote watersv2_par ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/watersv2_par_int_all.png ] && Rscript plot_multi.r remote watersv2_par_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/interact_all.png ] && Rscript plot_multi.r remote interact ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/interact_int_all.png ] && Rscript plot_multi.r remote interact_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/release_all.png ] && Rscript plot_multi.r remote release ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/copter_all.png ] && Rscript plot_multi.r remote copter ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -wait \ No newline at end of file +plot () { + [ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/${1}${2}_all.png ] && Rscript plot_multi.r remote ${1}${2} ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote +} + +# Only bytes + +export SUFFIX="_seq_bytes" + +plot waters $SUFFIX +plot release $SUFFIX +plot copter $SUFFIX +plot interact $SUFFIX + +# Only interrupts + +export SUFFIX="_seq_int" + +plot waters $SUFFIX +plot release $SUFFIX +plot copter $SUFFIX +plot interact $SUFFIX + +# Full + +export SUFFIX="_seq_full" + +plot waters $SUFFIX +plot release $SUFFIX +plot copter $SUFFIX +plot interact $SUFFIX \ No newline at end of file diff --git a/fuzzers/FRET/benchmark/target_symbols.csv b/fuzzers/FRET/benchmark/target_symbols.csv index aedfe142ea..c6cbbd854e 100644 --- a/fuzzers/FRET/benchmark/target_symbols.csv +++ b/fuzzers/FRET/benchmark/target_symbols.csv @@ -2,13 +2,13 @@ interact_full,main_interact,FUZZ_INPUT,4096,trigger_Qemu_break,NONE,0#1000 interact_int,main_interact,FUZZ_INPUT,4096,trigger_Qemu_break,NONE,0#1000 interact_bytes,main_interact,FUZZ_INPUT,4096,trigger_Qemu_break,NONE, -waters_full,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129,0#1000 -waters_int,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129,0#1000 -waters_bytes,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129, -waters_full_seq,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129,0#1000 -release_full,main_release,FUZZ_INPUT,4096,trigger_Qemu_break,T3,0#10000;1#5000;2#2000;3#3000 -release_int,main_release,FUZZ_INPUT,4096,trigger_Qemu_break,T3,0#10000;1#5000;2#2000;3#3000 -release_bytes,main_release,FUZZ_INPUT,4096,trigger_Qemu_break,T3, -copter_full,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#5000 -copter_int,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#5000 -copter_bytes,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC, \ No newline at end of file +waters_seq_full,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129,0#1000 +waters_seq_int,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129,0#1000 +waters_seq_bytes,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129, +waters_seq_full_seq,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129,0#1000 +release_seq_full,main_release,FUZZ_INPUT,4096,trigger_Qemu_break,T3,0#10000;1#5000;2#2000;3#3000 +release_seq_int,main_release,FUZZ_INPUT,4096,trigger_Qemu_break,T3,0#10000;1#5000;2#2000;3#3000 +release_seq_bytes,main_release,FUZZ_INPUT,4096,trigger_Qemu_break,T3, +copter_seq_full,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#5000 +copter_seq_int,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#5000 +copter_seq_bytes,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,SPAttitud, \ No newline at end of file