From ee737b9eb8b30ad1af911699265d1851716a5d57 Mon Sep 17 00:00:00 2001 From: Alwin Berger Date: Thu, 5 Sep 2024 09:55:21 +0200 Subject: [PATCH] improve benchmark scripts and excution fixes --- fuzzers/FRET/benchmark/build_all_bins.sh | 20 ++++++++++++++++++ fuzzers/FRET/benchmark/plot_all_benchmarks.sh | 21 ++++++++++--------- fuzzers/FRET/benchmark/target_symbols.csv | 1 + fuzzers/FRET/src/fuzzer.rs | 4 ++-- 4 files changed, 34 insertions(+), 12 deletions(-) create mode 100644 fuzzers/FRET/benchmark/build_all_bins.sh diff --git a/fuzzers/FRET/benchmark/build_all_bins.sh b/fuzzers/FRET/benchmark/build_all_bins.sh new file mode 100644 index 0000000000..6aa040c771 --- /dev/null +++ b/fuzzers/FRET/benchmark/build_all_bins.sh @@ -0,0 +1,20 @@ +def_flags="--no-default-features --features std,snapshot_fast,singlecore,restarting,do_hash_notify_state,trace_job_response_times" +set -e +cargo build --target-dir ./bins/target_showmap ${def_flags},config_stg +cargo build --target-dir ./bins/target_random ${def_flags},feed_longest +cargo build --target-dir ./bins/target_frafl ${def_flags},config_frafl,feed_longest +cargo build --target-dir ./bins/target_afl ${def_flags},config_afl,observe_hitcounts +cargo build --target-dir ./bins/target_stg ${def_flags},config_stg +cargo build --target-dir ./bins/target_stgpath ${def_flags},feed_stg_abbhash,sched_stg_abbhash,mutate_stg +cargo build --target-dir ./bins/target_showmap_int ${def_flags},config_stg,fuzz_int +cargo build --target-dir ./bins/target_random_int ${def_flags},feed_longest,fuzz_int +cargo build --target-dir ./bins/target_afl_int ${def_flags},config_frafl,fuzz_int +cargo build --target-dir ./bins/target_stg_int ${def_flags},config_stg,fuzz_int +cargo build --target-dir ./bins/target_stgpath_int ${def_flags},feed_stg_abbhash,sched_stg_abbhash,mutate_stg,fuzz_int +cargo build --target-dir ./bins/target_feedgeneration1 ${def_flags},feed_genetic,gensize_1 +cargo build --target-dir ./bins/target_feedgeneration1_int ${def_flags},feed_genetic,fuzz_int,gensize_1 +cargo build --target-dir ./bins/target_feedgeneration10 ${def_flags},feed_genetic,gensize_10 +cargo build --target-dir ./bins/target_feedgeneration10_int ${def_flags},feed_genetic,fuzz_int,gensize_10 +cargo build --target-dir ./bins/target_feedgeneration100 ${def_flags},feed_genetic,gensize_100 +cargo build --target-dir ./bins/target_feedgeneration100_int ${def_flags},feed_genetic,fuzz_int,gensize_100 + diff --git a/fuzzers/FRET/benchmark/plot_all_benchmarks.sh b/fuzzers/FRET/benchmark/plot_all_benchmarks.sh index a12e872625..d8990e7986 100644 --- a/fuzzers/FRET/benchmark/plot_all_benchmarks.sh +++ b/fuzzers/FRET/benchmark/plot_all_benchmarks.sh @@ -1,11 +1,12 @@ -Rscript plot_multi.r remote waters ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -Rscript plot_multi.r remote waters_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -Rscript plot_multi.r remote watersv2 ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -Rscript plot_multi.r remote watersv2_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -Rscript plot_multi.r remote waterspart ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -Rscript plot_multi.r remote waterspart_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -Rscript plot_multi.r remote waterspartv2 ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -Rscript plot_multi.r remote waterspartv2_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -Rscript plot_multi.r remote interact ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & -Rscript plot_multi.r remote interact_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & +[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/waters_all.png ] && Rscript plot_multi.r remote waters ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & +[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/waters_int_all.png ] && Rscript plot_multi.r remote waters_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & +[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/watersv2_all.png ] && Rscript plot_multi.r remote watersv2 ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & +[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/watersv2_int_all.png ] && Rscript plot_multi.r remote watersv2_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & +[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/waterspart_all.png ] && Rscript plot_multi.r remote waterspart ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & +[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/waterspart_int_all.png ] && Rscript plot_multi.r remote waterspart_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & +[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/waterspartv2_all.png ] && Rscript plot_multi.r remote waterspartv2 ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & +[ ! -f ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote/waterspartv2_int_all.png ] && Rscript plot_multi.r remote waterspartv2_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 & wait \ No newline at end of file diff --git a/fuzzers/FRET/benchmark/target_symbols.csv b/fuzzers/FRET/benchmark/target_symbols.csv index 05fc8259dc..eb1b1b55d4 100644 --- a/fuzzers/FRET/benchmark/target_symbols.csv +++ b/fuzzers/FRET/benchmark/target_symbols.csv @@ -30,3 +30,4 @@ minimal,main_minimal,FUZZ_INPUT,4096,trigger_Qemu_break,NONE gen3,main_minimal,FUZZ_INPUT,4096,trigger_Qemu_break,NONE interact,main_interact,FUZZ_INPUT,4096,trigger_Qemu_break,NONE interact_int,main_interact,FUZZ_INPUT,4096,trigger_Qemu_break,NONE +release,main_release,FUZZ_INPUT,4096,trigger_Qemu_break,T3 diff --git a/fuzzers/FRET/src/fuzzer.rs b/fuzzers/FRET/src/fuzzer.rs index 349afbcb42..756f10864b 100644 --- a/fuzzers/FRET/src/fuzzer.rs +++ b/fuzzers/FRET/src/fuzzer.rs @@ -38,7 +38,7 @@ use log; pub static mut RNG_SEED: u64 = 1; -pub const FIRST_INT : u32 = 500000; +pub const FIRST_INT : u32 = 200000; pub const MAX_NUM_INTERRUPT: usize = 128; pub const DO_NUM_INTERRUPT: usize = 128; @@ -123,7 +123,7 @@ macro_rules! do_dump_stg { ($state:expr, $cli:expr, $c:expr) => { #[cfg(feature = "trace_stg")] if $cli.dump_graph { - let dump_path = $cli.dump_name.clone().unwrap().with_extension(if $c=="" {"stg"} else {$c}); + let dump_path = $cli.dump_name.clone().unwrap().with_extension(if $c=="" {"dot"} else {$c}); println!("Dumping graph to {:?}", &dump_path); if let Some(md) = $state.named_metadata_map_mut().get_mut::("stgfeedbackstate") { let out = md.graph.map(|_i,x| x.color_print(), |_i,x| x.color_print());