comparison src/capnproto-0.6.0/c++/afl-fuzz.sh @ 147:45360b968bf4

Cap'n Proto v0.6 + build for OSX
author Chris Cannam <cannam@all-day-breakfast.com>
date Mon, 22 May 2017 10:01:37 +0100
parents
children
comparison
equal deleted inserted replaced
146:206f0eb279b8 147:45360b968bf4
1 #! /bin/bash
2
3 set -euo pipefail
4
5 echo "Choose test case:"
6 echo "1) TestAllTypes parsing"
7 echo "2) TestLists parsing"
8 echo "3) Canonicalization"
9
10 read -p "choice: " -n 1 TESTCASE
11 echo
12
13 case "$TESTCASE" in
14 1 )
15 TESTDATA=binary
16 FLAGS=
17 TESTNAME=default
18 ;;
19 2 )
20 TESTDATA=lists.binary
21 FLAGS=--lists
22 TESTNAME=lists
23 ;;
24 3 )
25 TESTDATA=binary
26 FLAGS=--canonicalize
27 TESTNAME=canonicalize
28 ;;
29 * )
30 echo "Invalid choice: $TESTCASE" >&2
31 exit 1
32 esac
33
34 echo "Choose compiler:"
35 echo "1) GCC"
36 echo "2) Clang"
37
38 read -p "choice: " -n 1 TESTCASE
39 echo
40
41 case "$TESTCASE" in
42 1 )
43 export CXX=afl-g++
44 ;;
45 2 )
46 export CXX=afl-clang++
47 ;;
48 * )
49 echo "Invalid choice: $TESTCASE" >&2
50 exit 1
51 esac
52
53 if [ -e Makefile ]; then
54 if ! grep -q '^CXX *= *'"$CXX" Makefile; then
55 # Wrong compiler used.
56 make distclean
57 $(dirname $0)/configure --disable-shared
58 fi
59 else
60 $(dirname $0)/configure --disable-shared
61 fi
62
63 make -j$(nproc)
64 make -j$(nproc) capnp-afl-testcase
65
66 NOW=$(date +%Y-%m-%d.%H-%M-%S).$TESTNAME.$CXX
67
68 mkdir afl.$NOW.inputs afl.$NOW.findings
69
70 cp $(dirname $0)/src/capnp/testdata/$TESTDATA afl.$NOW.inputs
71
72 afl-fuzz -i afl.$NOW.inputs -o afl.$NOW.findings -- ./capnp-afl-testcase $FLAGS