blob: 27d08d36efc25d263742472be93307db713ee48d [file] [log] [blame]
#!/bin/sh
CMDLINE="/prg/tests/normal/tiff-4.0.4/tools/thumbnail @@ /dev/null"
INDIR="/prg/tests/normal/tiff-4.0.4/in-small"
test -z "$1" -o -n "$4" && {
echo "Syntax: $0 commit-id <indir> \"<cmdline>\""
echo
echo "Switches to the defined commit ID, compiles with profiling and runs"
echo "afl-fuzz on a defind target and input directory, saving timing,"
echo "fuzzer_stats and profiling output to \"<commit-id>.out\""
echo "Honors CFLAGS and LDFLAGS"
echo
echo "Defaults:"
echo " indir: \"$INDIR\""
echo " cmdline: \"$CMDLINE\""
exit 1
}
C=$1
test -n "$2" && INDIR=$2
test -n "$3" && CMDLINE=$3
git checkout "$C" || { echo "CHECKOUT FAIL $C" > $C.out ; exit 1 ; }
export AFL_BENCH_JUST_ONE=1
test -z "$CFLAGS" && CFLAGS="-O3 -funroll-loops"
export CFLAGS="$CFLAGS -pg"
export LDFLAGS="$LDFLAGS -pg"
make >/dev/null 2>&1 || echo ERROR: BUILD FAILURE
test -x ./afl-fuzz || { echo "BUILD FAIL $C" > $C.out ; make clean ; exit 1 ; }
START=`date +%s`
echo $START > $C.out
time nice -n -20 ./afl-fuzz -i "$INDIR" -s 123 -o out-profile -- $CMDLINE 2>> $C.out
STOP=`date +%s`
echo $STOP >> $C.out
echo RUNTIME: `expr $STOP - $START` >> $C.out
cat out-profile/fuzzer_stats >> $C.out
gprof ./afl-fuzz gmon.out >> $C.out
make clean >/dev/null 2>&1
rm -rf out-profile gmon.out