Mercurial > hg > sv-dependency-builds
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/capnproto-0.6.0/c++/afl-fuzz.sh Mon May 22 10:01:37 2017 +0100 @@ -0,0 +1,72 @@ +#! /bin/bash + +set -euo pipefail + +echo "Choose test case:" +echo "1) TestAllTypes parsing" +echo "2) TestLists parsing" +echo "3) Canonicalization" + +read -p "choice: " -n 1 TESTCASE +echo + +case "$TESTCASE" in + 1 ) + TESTDATA=binary + FLAGS= + TESTNAME=default + ;; + 2 ) + TESTDATA=lists.binary + FLAGS=--lists + TESTNAME=lists + ;; + 3 ) + TESTDATA=binary + FLAGS=--canonicalize + TESTNAME=canonicalize + ;; + * ) + echo "Invalid choice: $TESTCASE" >&2 + exit 1 +esac + +echo "Choose compiler:" +echo "1) GCC" +echo "2) Clang" + +read -p "choice: " -n 1 TESTCASE +echo + +case "$TESTCASE" in + 1 ) + export CXX=afl-g++ + ;; + 2 ) + export CXX=afl-clang++ + ;; + * ) + echo "Invalid choice: $TESTCASE" >&2 + exit 1 +esac + +if [ -e Makefile ]; then + if ! grep -q '^CXX *= *'"$CXX" Makefile; then + # Wrong compiler used. + make distclean + $(dirname $0)/configure --disable-shared + fi +else + $(dirname $0)/configure --disable-shared +fi + +make -j$(nproc) +make -j$(nproc) capnp-afl-testcase + +NOW=$(date +%Y-%m-%d.%H-%M-%S).$TESTNAME.$CXX + +mkdir afl.$NOW.inputs afl.$NOW.findings + +cp $(dirname $0)/src/capnp/testdata/$TESTDATA afl.$NOW.inputs + +afl-fuzz -i afl.$NOW.inputs -o afl.$NOW.findings -- ./capnp-afl-testcase $FLAGS