set -eux NFUZZ=${NFUZZ:-1} children="" function finish { for pid in $children do set +e kill -s INT $pid done wait } trap finish EXIT test -e ./tools/afl/$1_testcases test -e ./tools/afl/$1_runner.janet echo "running fuzz master..." xterm -e \ "afl-fuzz -i ./tools/afl/$1_testcases -o ./fuzz_out/$1 -M Fuzz$1_0 -- ./build/janet ./tools/afl/$1_runner.janet @@" & children="$! $children" echo "waiting for afl to get started before starting secondary fuzzers" sleep 10 NFUZZ=$((NFUZZ - 1)) for N in $(seq $NFUZZ) do xterm -e \ "afl-fuzz -i ./tools/afl/$1_testcases -o ./fuzz_out/$1 -S Fuzz$1_$N -- ./build/janet ./tools/afl/$1_runner.janet @@" & children="$! $children" done echo "waiting for child terminals to exit." wait