annotate src/capnproto-0.6.0/c++/afl-fuzz.sh @ 83:ae30d91d2ffe

Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author Chris Cannam
date Fri, 07 Feb 2020 11:51:13 +0000
parents 0994c39f1e94
children
rev   line source
cannam@62 1 #! /bin/bash
cannam@62 2
cannam@62 3 set -euo pipefail
cannam@62 4
cannam@62 5 echo "Choose test case:"
cannam@62 6 echo "1) TestAllTypes parsing"
cannam@62 7 echo "2) TestLists parsing"
cannam@62 8 echo "3) Canonicalization"
cannam@62 9
cannam@62 10 read -p "choice: " -n 1 TESTCASE
cannam@62 11 echo
cannam@62 12
cannam@62 13 case "$TESTCASE" in
cannam@62 14 1 )
cannam@62 15 TESTDATA=binary
cannam@62 16 FLAGS=
cannam@62 17 TESTNAME=default
cannam@62 18 ;;
cannam@62 19 2 )
cannam@62 20 TESTDATA=lists.binary
cannam@62 21 FLAGS=--lists
cannam@62 22 TESTNAME=lists
cannam@62 23 ;;
cannam@62 24 3 )
cannam@62 25 TESTDATA=binary
cannam@62 26 FLAGS=--canonicalize
cannam@62 27 TESTNAME=canonicalize
cannam@62 28 ;;
cannam@62 29 * )
cannam@62 30 echo "Invalid choice: $TESTCASE" >&2
cannam@62 31 exit 1
cannam@62 32 esac
cannam@62 33
cannam@62 34 echo "Choose compiler:"
cannam@62 35 echo "1) GCC"
cannam@62 36 echo "2) Clang"
cannam@62 37
cannam@62 38 read -p "choice: " -n 1 TESTCASE
cannam@62 39 echo
cannam@62 40
cannam@62 41 case "$TESTCASE" in
cannam@62 42 1 )
cannam@62 43 export CXX=afl-g++
cannam@62 44 ;;
cannam@62 45 2 )
cannam@62 46 export CXX=afl-clang++
cannam@62 47 ;;
cannam@62 48 * )
cannam@62 49 echo "Invalid choice: $TESTCASE" >&2
cannam@62 50 exit 1
cannam@62 51 esac
cannam@62 52
cannam@62 53 if [ -e Makefile ]; then
cannam@62 54 if ! grep -q '^CXX *= *'"$CXX" Makefile; then
cannam@62 55 # Wrong compiler used.
cannam@62 56 make distclean
cannam@62 57 $(dirname $0)/configure --disable-shared
cannam@62 58 fi
cannam@62 59 else
cannam@62 60 $(dirname $0)/configure --disable-shared
cannam@62 61 fi
cannam@62 62
cannam@62 63 make -j$(nproc)
cannam@62 64 make -j$(nproc) capnp-afl-testcase
cannam@62 65
cannam@62 66 NOW=$(date +%Y-%m-%d.%H-%M-%S).$TESTNAME.$CXX
cannam@62 67
cannam@62 68 mkdir afl.$NOW.inputs afl.$NOW.findings
cannam@62 69
cannam@62 70 cp $(dirname $0)/src/capnp/testdata/$TESTDATA afl.$NOW.inputs
cannam@62 71
cannam@62 72 afl-fuzz -i afl.$NOW.inputs -o afl.$NOW.findings -- ./capnp-afl-testcase $FLAGS