snakemake: increase build efficiency
This commit is contained in:
parent
d4ee679d0e
commit
6d197274dd
@ -1,6 +1,6 @@
|
|||||||
import csv
|
import csv
|
||||||
import os
|
import os
|
||||||
def_flags="--no-default-features --features std,snapshot_fast,restarting,do_hash_notify_state,trace_job_response_times,fuzz_int,shortcut"
|
def_flags="--release --no-default-features --features std,snapshot_fast,restarting,do_hash_notify_state,trace_job_response_times,fuzz_int,shortcut"
|
||||||
remote="remote/"
|
remote="remote/"
|
||||||
RUNTIME=1800
|
RUNTIME=1800
|
||||||
TARGET_REPS_A=2
|
TARGET_REPS_A=2
|
||||||
@ -12,77 +12,110 @@ 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_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)
|
MY_RANGE_B=range(NODE_ID*REP_PER_NODE_B,(NODE_ID+1)*REP_PER_NODE_B)
|
||||||
|
|
||||||
|
rule build_default:
|
||||||
|
input:
|
||||||
|
"../Cargo.toml",
|
||||||
|
"../src"
|
||||||
|
output:
|
||||||
|
directory("bins/target_default")
|
||||||
|
shell:
|
||||||
|
"cargo build --target-dir {output} {def_flags}"
|
||||||
|
|
||||||
rule build_showmap:
|
rule build_showmap:
|
||||||
|
input:
|
||||||
|
"bins/target_default"
|
||||||
output:
|
output:
|
||||||
directory("bins/target_showmap")
|
directory("bins/target_showmap")
|
||||||
shell:
|
shell:
|
||||||
"cargo build --target-dir {output} {def_flags},config_stg"
|
"cp -r -a --reflink=auto {input} {output} && cargo build --target-dir {output} {def_flags},config_stg"
|
||||||
|
|
||||||
rule build_random:
|
rule build_random:
|
||||||
|
input:
|
||||||
|
"bins/target_default"
|
||||||
output:
|
output:
|
||||||
directory("bins/target_random")
|
directory("bins/target_random")
|
||||||
shell:
|
shell:
|
||||||
"cargo build --target-dir {output} {def_flags},feed_longest"
|
"cp -r -a --reflink=auto {input} {output} && cargo build --target-dir {output} {def_flags},feed_longest"
|
||||||
|
|
||||||
rule build_frafl:
|
rule build_frafl:
|
||||||
|
input:
|
||||||
|
"bins/target_default"
|
||||||
output:
|
output:
|
||||||
directory("bins/target_frafl")
|
directory("bins/target_frafl")
|
||||||
shell:
|
shell:
|
||||||
"cargo build --target-dir {output} {def_flags},config_frafl,feed_longest"
|
"cp -r -a --reflink=auto {input} {output} && cargo build --target-dir {output} {def_flags},config_frafl,feed_longest"
|
||||||
|
|
||||||
rule build_afl:
|
rule build_afl:
|
||||||
|
input:
|
||||||
|
"bins/target_default"
|
||||||
output:
|
output:
|
||||||
directory("bins/target_afl")
|
directory("bins/target_afl")
|
||||||
shell:
|
shell:
|
||||||
"cargo build --target-dir {output} {def_flags},config_afl,observer_hitcounts"
|
"cp -r -a --reflink=auto {input} {output} && cargo build --target-dir {output} {def_flags},config_afl,observer_hitcounts"
|
||||||
|
|
||||||
rule build_stg:
|
rule build_stg:
|
||||||
|
input:
|
||||||
|
"bins/target_default"
|
||||||
output:
|
output:
|
||||||
directory("bins/target_stg")
|
directory("bins/target_stg")
|
||||||
shell:
|
shell:
|
||||||
"cargo build --target-dir {output} {def_flags},config_stg"
|
"cp -r -a --reflink=auto {input} {output} && cargo build --target-dir {output} {def_flags},config_stg"
|
||||||
|
|
||||||
rule build_stgpath:
|
rule build_stgpath:
|
||||||
|
input:
|
||||||
|
"bins/target_default"
|
||||||
output:
|
output:
|
||||||
directory("bins/target_stgpath")
|
directory("bins/target_stgpath")
|
||||||
shell:
|
shell:
|
||||||
"cargo build --target-dir {output} {def_flags},feed_stg_abbhash,sched_stg_abbhash,mutate_stg"
|
"cp -r -a --reflink=auto {input} {output} && cargo build --target-dir {output} {def_flags},feed_stg_abbhash,sched_stg_abbhash,mutate_stg"
|
||||||
|
|
||||||
rule build_feedgeneration1:
|
rule build_feedgeneration1:
|
||||||
|
input:
|
||||||
|
"bins/target_default"
|
||||||
output:
|
output:
|
||||||
directory("bins/target_feedgeneration1")
|
directory("bins/target_feedgeneration1")
|
||||||
shell:
|
shell:
|
||||||
"cargo build --target-dir {output} {def_flags},feed_genetic,gensize_1"
|
"cp -r -a --reflink=auto {input} {output} && cargo build --target-dir {output} {def_flags},feed_genetic,gensize_1"
|
||||||
|
|
||||||
rule build_feedgeneration10:
|
rule build_feedgeneration10:
|
||||||
|
input:
|
||||||
|
"bins/target_default"
|
||||||
output:
|
output:
|
||||||
directory("bins/target_feedgeneration10")
|
directory("bins/target_feedgeneration10")
|
||||||
shell:
|
shell:
|
||||||
"cargo build --target-dir {output} {def_flags},feed_genetic,gensize_10"
|
"cp -r -a --reflink=auto {input} {output} && cargo build --target-dir {output} {def_flags},feed_genetic,gensize_10"
|
||||||
|
|
||||||
rule build_feedgeneration100:
|
rule build_feedgeneration100:
|
||||||
|
input:
|
||||||
|
"bins/target_default"
|
||||||
output:
|
output:
|
||||||
directory("bins/target_feedgeneration100")
|
directory("bins/target_feedgeneration100")
|
||||||
shell:
|
shell:
|
||||||
"cargo build --target-dir {output} {def_flags},config_genetic,gensize_100"
|
"cp -r -a --reflink=auto {input} {output} && cargo build --target-dir {output} {def_flags},config_genetic,gensize_100"
|
||||||
|
|
||||||
rule build_genetic100:
|
rule build_genetic100:
|
||||||
|
input:
|
||||||
|
"bins/target_default"
|
||||||
output:
|
output:
|
||||||
directory("bins/target_genetic100")
|
directory("bins/target_genetic100")
|
||||||
shell:
|
shell:
|
||||||
"cargo build --target-dir {output} {def_flags},config_genetic,mutate_stg,gensize_100"
|
"cp -r -a --reflink=auto {input} {output} && cargo build --target-dir {output} {def_flags},config_genetic,mutate_stg,gensize_100"
|
||||||
|
|
||||||
rule build_feedgeneration1000:
|
rule build_feedgeneration1000:
|
||||||
|
input:
|
||||||
|
"bins/target_default"
|
||||||
output:
|
output:
|
||||||
directory("bins/target_feedgeneration1000")
|
directory("bins/target_feedgeneration1000")
|
||||||
shell:
|
shell:
|
||||||
"cargo build --target-dir {output} {def_flags},config_genetic,gensize_1000"
|
"cp -r -a --reflink=auto {input} {output} && cargo build --target-dir {output} {def_flags},config_genetic,gensize_1000"
|
||||||
|
|
||||||
rule build_genetic1000:
|
rule build_genetic1000:
|
||||||
|
input:
|
||||||
|
"bins/target_default"
|
||||||
output:
|
output:
|
||||||
directory("bins/target_genetic1000")
|
directory("bins/target_genetic1000")
|
||||||
shell:
|
shell:
|
||||||
"cargo build --target-dir {output} {def_flags},config_genetic,mutate_stg,gensize_1000"
|
"cp -r -a --reflink=auto {input} {output} && cargo build --target-dir {output} {def_flags},config_genetic,mutate_stg,gensize_1000"
|
||||||
|
|
||||||
rule run_bench:
|
rule run_bench:
|
||||||
input:
|
input:
|
||||||
@ -107,8 +140,8 @@ rule run_bench:
|
|||||||
export RUST_BACKTRACE=1
|
export RUST_BACKTRACE=1
|
||||||
mkdir -p $(dirname {output[0]})
|
mkdir -p $(dirname {output[0]})
|
||||||
set +e
|
set +e
|
||||||
echo $(pwd)/{input[1]}/debug/fret -n $(pwd)/timedump/{wildcards.fuzzer}/{wildcards.target}#{wildcards.num} -s {select_task} -t -a -g -k {input[0]} -c ./target_symbols.csv fuzz --random -t {RUNTIME} -s {wildcards.num}
|
echo $(pwd)/{input[1]}/release/fret -n $(pwd)/timedump/{wildcards.fuzzer}/{wildcards.target}#{wildcards.num} -s {select_task} -t -a -g -k {input[0]} -c ./target_symbols.csv fuzz --random -t {RUNTIME} -s {wildcards.num}
|
||||||
$(pwd)/{input[1]}/debug/fret -n $(pwd)/timedump/{wildcards.fuzzer}/{wildcards.target}#{wildcards.num} -s {select_task} -t -a -g -k {input[0]} -c ./target_symbols.csv fuzz --random -t {RUNTIME} -s {wildcards.num} > {output[1]} 2>&1
|
$(pwd)/{input[1]}/release/fret -n $(pwd)/timedump/{wildcards.fuzzer}/{wildcards.target}#{wildcards.num} -s {select_task} -t -a -g -k {input[0]} -c ./target_symbols.csv fuzz --random -t {RUNTIME} -s {wildcards.num} > {output[1]} 2>&1
|
||||||
exit 0
|
exit 0
|
||||||
"""
|
"""
|
||||||
else:
|
else:
|
||||||
@ -116,8 +149,8 @@ rule run_bench:
|
|||||||
export RUST_BACKTRACE=1
|
export RUST_BACKTRACE=1
|
||||||
mkdir -p $(dirname {output[0]})
|
mkdir -p $(dirname {output[0]})
|
||||||
set +e
|
set +e
|
||||||
echo $(pwd)/{input[1]}/debug/fret -n $(pwd)/timedump/{wildcards.fuzzer}/{wildcards.target}#{wildcards.num} -s {select_task} -t -a -g -k {input[0]} -c ./target_symbols.csv fuzz -t {RUNTIME} -s {wildcards.num}
|
echo $(pwd)/{input[1]}/release/fret -n $(pwd)/timedump/{wildcards.fuzzer}/{wildcards.target}#{wildcards.num} -s {select_task} -t -a -g -k {input[0]} -c ./target_symbols.csv fuzz -t {RUNTIME} -s {wildcards.num}
|
||||||
$(pwd)/{input[1]}/debug/fret -n $(pwd)/timedump/{wildcards.fuzzer}/{wildcards.target}#{wildcards.num} -s {select_task} -t -a -g -k {input[0]} -c ./target_symbols.csv fuzz -t {RUNTIME} -s {wildcards.num} > {output[1]} 2>&1
|
$(pwd)/{input[1]}/release/fret -n $(pwd)/timedump/{wildcards.fuzzer}/{wildcards.target}#{wildcards.num} -s {select_task} -t -a -g -k {input[0]} -c ./target_symbols.csv fuzz -t {RUNTIME} -s {wildcards.num} > {output[1]} 2>&1
|
||||||
exit 0
|
exit 0
|
||||||
"""
|
"""
|
||||||
shell(script)
|
shell(script)
|
||||||
@ -143,7 +176,7 @@ rule run_showmap:
|
|||||||
bkp=line['return_function']
|
bkp=line['return_function']
|
||||||
select_task=line['select_task']
|
select_task=line['select_task']
|
||||||
script="""
|
script="""
|
||||||
export FUZZER=$(pwd)/{input[1]}/debug/fret
|
export FUZZER=$(pwd)/{input[1]}/release/fret
|
||||||
mkdir -p $(dirname {output})
|
mkdir -p $(dirname {output})
|
||||||
set +e
|
set +e
|
||||||
echo $FUZZER -n $(pwd)/{remote}/timedump/{wildcards.fuzzer}/{wildcards.target}#{wildcards.num}_case -s {select_task} -t -a -r -g -k {input[0]} -c ./target_symbols.csv showmap -i {input[2]}
|
echo $FUZZER -n $(pwd)/{remote}/timedump/{wildcards.fuzzer}/{wildcards.target}#{wildcards.num}_case -s {select_task} -t -a -r -g -k {input[0]} -c ./target_symbols.csv showmap -i {input[2]}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user