From 6902e21c6a2ad2e88f3eb128bbdb3e259ae60369 Mon Sep 17 00:00:00 2001 From: Alwin Berger Date: Mon, 4 Nov 2024 16:27:49 +0100 Subject: [PATCH] update demo-list --- fuzzers/FRET/benchmark/Snakefile | 14 ++---- fuzzers/FRET/benchmark/build_all_demos.sh | 54 +++++++++++------------ fuzzers/FRET/benchmark/target_symbols.csv | 45 +++++-------------- 3 files changed, 43 insertions(+), 70 deletions(-) diff --git a/fuzzers/FRET/benchmark/Snakefile b/fuzzers/FRET/benchmark/Snakefile index 219ae7e495..ec0c4ccb00 100644 --- a/fuzzers/FRET/benchmark/Snakefile +++ b/fuzzers/FRET/benchmark/Snakefile @@ -3,14 +3,7 @@ import os def_flags="--release --no-default-features --features std,snapshot_fast,restarting,do_hash_notify_state,fuzz_int,trace_job_response_times" remote="remote/" RUNTIME=1800 -TARGET_REPS_A=2 -TARGET_REPS_B=2 -NUM_NODES=2 -REP_PER_NODE_A=int(TARGET_REPS_A/NUM_NODES) -REP_PER_NODE_B=int(TARGET_REPS_B/NUM_NODES) -NODE_ID= 0 if os.getenv('NODE_ID') == None else int(os.environ['NODE_ID']) -MY_RANGE_A=range(NODE_ID*REP_PER_NODE_A,(NODE_ID+1)*REP_PER_NODE_A) -MY_RANGE_B=range(NODE_ID*REP_PER_NODE_B,(NODE_ID+1)*REP_PER_NODE_B) +NUM_ITERS=2 rule build_default: input: @@ -223,8 +216,9 @@ rule trace2gantt: rule quicktest: input: - expand("timedump/{fuzzer}/{target}#{num}.time", fuzzer=['feedgeneration100', 'genetic100', 'frafl', 'stg'], target=['release', 'waters_par_int', 'copter'],num=range(0,10)), - expand("timedump/{fuzzer}/{target}#{num}.time", fuzzer=['random'], target=['release', 'waters_par_int', 'copter'],num=range(0,2)), + expand("timedump/{fuzzer}/{target}{variant}#{num}.time", fuzzer=['feedgeneration100', 'stg'], target=['release', 'waters', 'copter'], variant=['_full', '_bytes', '_int'], num=range(0,int( 1 ))), + expand("timedump/{fuzzer}/{target}{variant}#{num}.time", fuzzer=['genetic100', 'frafl'], 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 all_bins: diff --git a/fuzzers/FRET/benchmark/build_all_demos.sh b/fuzzers/FRET/benchmark/build_all_demos.sh index fa95605256..ec6c3aff86 100644 --- a/fuzzers/FRET/benchmark/build_all_demos.sh +++ b/fuzzers/FRET/benchmark/build_all_demos.sh @@ -1,38 +1,38 @@ -# Base case -make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC WATERS_DEMO=1 INTERRUPT_ACTIVATION=0 -cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/waters_seq.elf +export PARTITION_INPUT=1 -make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC WATERS_DEMO=1 INTERRUPT_ACTIVATION=1 -cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/waters_seq_int.elf +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 + cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/$(echo $1 | cut -d_ -f1 | tr '[:upper:]' '[:lower:]')$2.elf +} -make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC WATERS_DEMO=1 INTERRUPT_ACTIVATION=0 PARTITION_INPUTS=1 -cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/waters_par.elf +# Only bytes -make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC WATERS_DEMO=1 INTERRUPT_ACTIVATION=1 PARTITION_INPUTS=1 -cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/waters_par_int.elf +export FUZZ_INT_ACTIVATION=0 FUZZ_BYTES=1 SUFFIX="_bytes" -# V2 -make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC WATERSV2_DEMO=1 INTERRUPT_ACTIVATION=0 -cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/watersv2_seq.elf +build WATERS_DEMO $SUFFIX +build RELEASE_DEMO $SUFFIX +build COPTER_DEMO $SUFFIX +build INTERACT_DEMO $SUFFIX -make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC WATERSV2_DEMO=1 INTERRUPT_ACTIVATION=1 -cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/watersv2_seq_int.elf +# Only interrupts -make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC WATERSV2_DEMO=1 INTERRUPT_ACTIVATION=0 PARTITION_INPUTS=1 -cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/watersv2_par.elf +export FUZZ_INT_ACTIVATION=1 FUZZ_BYTES=0 SUFFIX="_int" -make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC WATERSV2_DEMO=1 INTERRUPT_ACTIVATION=1 PARTITION_INPUTS=1 -cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/watersv2_par_int.elf +build WATERS_DEMO $SUFFIX +build RELEASE_DEMO $SUFFIX +build COPTER_DEMO $SUFFIX +build INTERACT_DEMO $SUFFIX -# other -make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC INTERACT_DEMO=1 INTERRUPT_ACTIVATION=1 -cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/interact_int.elf +# Full -make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC INTERACT_DEMO=1 INTERRUPT_ACTIVATION=0 -cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/interact.elf +export FUZZ_INT_ACTIVATION=1 FUZZ_BYTES=1 SUFFIX="_full" -make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC RELEASE_DEMO=1 INTERRUPT_ACTIVATION=1 -cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/release.elf +build WATERS_DEMO $SUFFIX +build RELEASE_DEMO $SUFFIX +build COPTER_DEMO $SUFFIX +build INTERACT_DEMO $SUFFIX -make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC COPTER_DEMO=1 INTERRUPT_ACTIVATION=1 -cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/copter.elf \ No newline at end of file +# Bonus: Sequential inputs + +export PARTITION_INPUT=0 +build WATERS_DEMO "$SUFFIX_seq" diff --git a/fuzzers/FRET/benchmark/target_symbols.csv b/fuzzers/FRET/benchmark/target_symbols.csv index 97299ca60b..aedfe142ea 100644 --- a/fuzzers/FRET/benchmark/target_symbols.csv +++ b/fuzzers/FRET/benchmark/target_symbols.csv @@ -1,35 +1,14 @@ kernel,main_function,input_symbol,input_size,return_function,select_task,interrupts -mpeg2,mpeg2_main,mpeg2_oldorgframe,90112,mpeg2_return,NONE, -audiobeam,audiobeam_main,audiobeam_input,11520,audiobeam_return,NONE, -epic,epic_main,epic_image,4096,epic_return,NONE, -dijkstra,dijkstra_main,dijkstra_AdjMatrix,10000,dijkstra_return,NONE, -fft,fft_main,fft_twidtable,2046,fft_return,NONE, -bsort,bsort_main,bsort_Array,400,bsort_return,NONE, -insertsort,insertsort_main,insertsort_a,400,insertsort_return,NONE, -g723_enc,g723_enc_main,g723_enc_INPUT,1024,g723_enc_return,NONE, -rijndael_dec,rijndael_dec_main,rijndael_dec_data,32768,rijndael_dec_return,NONE, -rijndael_enc,rijndael_enc_main,rijndael_enc_data,31369,rijndael_enc_return,NONE, -huff_dec,huff_dec_main,huff_dec_encoded,419,huff_dec_return,NONE, -huff_enc,huff_enc_main,huff_enc_plaintext,600,huff_enc_return,NONE, -gsm_enc,gsm_enc_main,gsm_enc_pcmdata,6400,gsm_enc_return,NONE, -tmr,main,FUZZ_INPUT,32,trigger_Qemu_break,NONE, -tacle_rtos,prvStage0,FUZZ_INPUT,604,trigger_Qemu_break,NONE, -lift,main_lift,FUZZ_INPUT,100,trigger_Qemu_break,NONE, -waters_seq,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129, -watersv2_seq,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129, -waters_par,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129, -watersv2_par,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129, -waters_seq_int,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129,0#1000 -watersv2_seq_int,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129,0#1000 -waters_par_int,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129,0#1000 -watersv2_par_int,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break,1129,0#1000 -micro_branchless,main_branchless,FUZZ_INPUT,4,trigger_Qemu_break,NONE, -micro_int,main_int,FUZZ_INPUT,16,trigger_Qemu_break,NONE,0#1000 -micro_longint,main_micro_longint,FUZZ_INPUT,16,trigger_Qemu_break,NONE,0#1000 -minimal,main_minimal,FUZZ_INPUT,4096,trigger_Qemu_break,NONE,0#1000 -gen3,main_minimal,FUZZ_INPUT,4096,trigger_Qemu_break,NONE,0#1000 -interact,main_interact,FUZZ_INPUT,4096,trigger_Qemu_break,NONE, +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 -release,main_release,FUZZ_INPUT,4096,trigger_Qemu_break,T3,0#10000;1#5000;2#2000;3#3000 -copter,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#5000 - +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