define benchmark sets

This commit is contained in:
Alwin Berger 2024-11-11 15:36:29 +01:00
parent 2a61f51a69
commit 0c80801e9f
4 changed files with 53 additions and 37 deletions

View File

@ -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 ))), 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 extended_set:
rule stgcomp:
input: 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: rule all_bins:
input: 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'])

View File

@ -1,4 +1,5 @@
export PARTITION_INPUT=1 # Sequential inputs!
export PARTITION_INPUT=0
build () { 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 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 # 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 WATERS_DEMO $SUFFIX
build RELEASE_DEMO $SUFFIX build RELEASE_DEMO $SUFFIX
@ -16,7 +17,7 @@ build INTERACT_DEMO $SUFFIX
# Only interrupts # 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 WATERS_DEMO $SUFFIX
build RELEASE_DEMO $SUFFIX build RELEASE_DEMO $SUFFIX
@ -25,14 +26,9 @@ build INTERACT_DEMO $SUFFIX
# Full # 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 WATERS_DEMO $SUFFIX
build RELEASE_DEMO $SUFFIX build RELEASE_DEMO $SUFFIX
build COPTER_DEMO $SUFFIX build COPTER_DEMO $SUFFIX
build INTERACT_DEMO $SUFFIX build INTERACT_DEMO $SUFFIX
# Bonus: Sequential inputs
export PARTITION_INPUT=0
build WATERS_DEMO "$SUFFIX_seq"

View File

@ -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 & plot () {
[ ! -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/${1}${2}_all.png ] && Rscript plot_multi.r remote ${1}${2} ~/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 & # Only bytes
[ ! -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 & export SUFFIX="_seq_bytes"
[ ! -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 & plot waters $SUFFIX
[ ! -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 & plot release $SUFFIX
[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/release_all.png ] && Rscript plot_multi.r remote release ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & plot copter $SUFFIX
[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/copter_all.png ] && Rscript plot_multi.r remote copter ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & plot interact $SUFFIX
wait
# 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

View File

@ -2,13 +2,13 @@
interact_full,main_interact,FUZZ_INPUT,4096,trigger_Qemu_break,NONE,0#1000 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_int,main_interact,FUZZ_INPUT,4096,trigger_Qemu_break,NONE,0#1000
interact_bytes,main_interact,FUZZ_INPUT,4096,trigger_Qemu_break,NONE, 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_seq_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_seq_int,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129,0#1000
waters_bytes,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129, waters_seq_bytes,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129,
waters_full_seq,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129,0#1000 waters_seq_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_seq_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_seq_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, release_seq_bytes,main_release,FUZZ_INPUT,4096,trigger_Qemu_break,T3,
copter_full,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#5000 copter_seq_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_seq_int,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#5000
copter_bytes,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC, copter_seq_bytes,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,SPAttitud,
1 kernel main_function input_symbol input_size return_function select_task interrupts
2 interact_full main_interact FUZZ_INPUT 4096 trigger_Qemu_break NONE 0#1000
3 interact_int main_interact FUZZ_INPUT 4096 trigger_Qemu_break NONE 0#1000
4 interact_bytes main_interact FUZZ_INPUT 4096 trigger_Qemu_break NONE
5 waters_full waters_seq_full main_waters FUZZ_INPUT 4096 trigger_Qemu_break 1129 0#1000
6 waters_int waters_seq_int main_waters FUZZ_INPUT 4096 trigger_Qemu_break 1129 0#1000
7 waters_bytes waters_seq_bytes main_waters FUZZ_INPUT 4096 trigger_Qemu_break 1129
8 waters_full_seq waters_seq_full_seq main_waters FUZZ_INPUT 4096 trigger_Qemu_break 1129 0#1000
9 release_full release_seq_full main_release FUZZ_INPUT 4096 trigger_Qemu_break T3 0#10000;1#5000;2#2000;3#3000
10 release_int release_seq_int main_release FUZZ_INPUT 4096 trigger_Qemu_break T3 0#10000;1#5000;2#2000;3#3000
11 release_bytes release_seq_bytes main_release FUZZ_INPUT 4096 trigger_Qemu_break T3
12 copter_full copter_seq_full main_osek FUZZ_INPUT 4096 trigger_Qemu_break FC 0#5000
13 copter_int copter_seq_int main_osek FUZZ_INPUT 4096 trigger_Qemu_break FC 0#5000
14 copter_bytes copter_seq_bytes main_osek FUZZ_INPUT 4096 trigger_Qemu_break FC SPAttitud