summaryrefslogtreecommitdiff
path: root/tools/fuzz
blob: 2e348b035b0a39d10d211205d9a399e9f50c3c79 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/sh

export AFL_SKIP_CPUFREQ=1

if [ $# -ne 1 ]
then
	echo Usage: tools/fuzz BUILD_TYPE
	exit 1
fi

rm -rf builds/fuzz-$1
mkdir -p builds/fuzz-$1
cd builds/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 @@