From c2afc0186e4d21e4fede36d3a41bb1e793f8489f Mon Sep 17 00:00:00 2001 From: Alwin Berger Date: Mon, 24 Apr 2023 11:16:10 +0200 Subject: [PATCH] allow plotting from remote mount --- fuzzers/FRET/benchmark/Snakefile | 34 +++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/fuzzers/FRET/benchmark/Snakefile b/fuzzers/FRET/benchmark/Snakefile index 00be258b8b..b2b8b61373 100644 --- a/fuzzers/FRET/benchmark/Snakefile +++ b/fuzzers/FRET/benchmark/Snakefile @@ -1,5 +1,6 @@ import csv def_flags="--no-default-features --features std,snapshot_restore,singlecore" +remote="mnt/" rule build_showmap: output: @@ -113,7 +114,7 @@ rule run_bench: export TIME_DUMP=$(pwd)/{output[0]} export CASE_DUMP=$(pwd)/{output[2]} export TRACE_DUMP=$(pwd)/{output[0]}.trace - export FUZZ_ITERS=10800 + export FUZZ_ITERS=180 export FUZZER=$(pwd)/{input[1]}/debug/fret set +e ../fuzzer.sh > {output[1]} 2>&1 @@ -125,12 +126,13 @@ rule run_bench: rule run_showmap: input: - "build/{target}.elf", + "{remote}build/{target}.elf", "bins/target_showmap", - "timedump/{fuzzer}/{target}.{num}.case" + "bins/target_showmap_int", + "{remote}timedump/{fuzzer}/{target}.{num}.case" output: - "timedump/{fuzzer}/{target}.{num}.trace.ron", - "timedump/{fuzzer}/{target}.{num}.case.time", + "{remote}timedump/{fuzzer}/{target}.{num}.trace.ron", + "{remote}timedump/{fuzzer}/{target}.{num}.case.time", run: with open('target_symbols.csv') as csvfile: reader = csv.DictReader(csvfile) @@ -142,7 +144,12 @@ rule run_showmap: fuzz_input=line['input_symbol'] fuzz_len=line['input_size'] bkp=line['return_function'] - script=""" + script="" + if wildcards.fuzzer.find('_int') > -1: + script="export FUZZER=$(pwd)/{input[2]}/debug/fret\n" + else: + script="export FUZZER=$(pwd)/{input[1]}/debug/fret\n" + script+=""" mkdir -p $(dirname {output}) export KERNEL=$(pwd)/{input[0]} export FUZZ_MAIN={fuzz_main} @@ -150,8 +157,7 @@ rule run_showmap: export FUZZ_INPUT_LEN={fuzz_len} export BREAKPOINT={bkp} export TRACE_DUMP=$(pwd)/{output[0]} - export FUZZER=$(pwd)/{input[1]}/debug/fret - export DO_SHOWMAP=$(pwd)/{input[2]} + export DO_SHOWMAP=$(pwd)/{input[3]} export TIME_DUMP=$(pwd)/{output[1]} set +e ../fuzzer.sh @@ -163,17 +169,17 @@ rule run_showmap: rule tarnsform_trace: input: - "timedump/{fuzzer}/{target}.{num}.trace.ron" + "{remote}timedump/{fuzzer}/{target}.{num}.trace.ron" output: - "timedump/{fuzzer}/{target}.{num}.trace.csv" + "{remote}timedump/{fuzzer}/{target}.{num}.trace.csv" shell: "$(pwd)/../../../../state2gantt/target/debug/state2gantt {input} > {output[0]}" rule trace2gantt: input: - "timedump/{fuzzer}/{target}.{num}.trace.csv" + "{remote}timedump/{fuzzer}/{target}.{num}.trace.csv" output: - "timedump/{fuzzer}/{target}.{num}.trace.csv.png" + "{remote}timedump/{fuzzer}/{target}.{num}.trace.csv.png" shell: "Rscript --vanilla $(pwd)/../../../../state2gantt/gantt.R {input}" @@ -197,3 +203,7 @@ rule all_compare_afl_longest: rule all_micro: input: expand("timedump/{fuzzer}/{target}.{num}", fuzzer=['random_int','afl_int','state_int','feedgeneration_int'], target=['waters_int','watersv2_int'],num=range(0,10)) + +rule all_images: + input: + expand("{remote}timedump/{fuzzer}/{target}.{num}.trace.csv.png",remote=remote, fuzzer=['state_int','feedgeneration_int'], target=['waters_int','watersv2_int'],num=range(0,10))