annotate src/capnproto-0.6.0/c++/afl-fuzz.sh @ 79:91c729825bca pa_catalina

Update build for AUDIO_COMPONENT_FIX
author Chris Cannam
date Wed, 30 Oct 2019 12:40:34 +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