#!/bin/sh export AFL_SKIP_CPUFREQ=1 if [ $# -ne 1 ] then echo Usage: tools/fuzz BUILD_TYPE exit 1 fi rm -rf build/fuzz-$1 mkdir -p build/fuzz-$1 cd build/fuzz-$1 ../../configure --enable-build-mode=$1 --disable-shared CC=afl-cc make clean && make mkdir -p fuzz-in mkdir -p fuzz-out mkdir -p fuzz-in-min n=0 for f in ../../tests/scripts/good/*.aplwc ../../tests/scripts/bad/*.aplwc ../../tests/fuzz-crashes/*.fuzz do cp "$f" fuzz-in/$n n=$((n+1)) done afl-cmin -i fuzz-in -o fuzz-in-min -- ./aplwc -x @@ rm fuzz-in/* cd fuzz-in-min for f in * do afl-tmin -i "$f" -o "../fuzz-in/$f" -- ../aplwc -x @@ done cd .. rm -rf fuzz-in-min afl-fuzz -i fuzz-in -o fuzz-out -m 20 -t 50 -- ./aplwc -x @@