annotate src/capnproto-0.6.0/c++/afl-fuzz.sh @ 169:223a55898ab9 tip default

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