Mercurial > hg > sv-dependency-builds
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 |