From c1a2dcb25d549cf1a3a4607bb8a95838175962f6 Mon Sep 17 00:00:00 2001 From: Matt Johnston Date: Thu, 1 Mar 2018 22:54:57 +0800 Subject: add fuzzers to travis --- .travis.yml | 16 ++++++++++------ fuzzers_test.sh | 12 ++++++++++++ 2 files changed, 22 insertions(+), 6 deletions(-) create mode 100755 fuzzers_test.sh diff --git a/.travis.yml b/.travis.yml index f938dcb..85153c9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,15 +11,16 @@ matrix: env: WEXTRAFLAGS=-Werror - env: MULTI=1 WEXTRAFLAGS=-Werror # libtom has some warnings, so no WEXTRAFLAGS - - env: BUNDLEDLIBTOM=--enable-bundled-libtom WEXTRAFLAGS="" + - env: CONFIGURE_FLAGS=--enable-bundled-libtom WEXTRAFLAGS="" - env: NOWRITEV=1 WEXTRAFLAGS=-Werror # libtomcrypt 1.18.1 fixes clang problems, distro doesn't have that yet - os: linux compiler: clang - env: BUNDLEDLIBTOM=--enable-bundled-libtom WEXTRAFLAGS="" + env: CONFIGURE_FLAGS=--enable-bundled-libtom WEXTRAFLAGS="" - os: osx compiler: clang env: WEXTRAFLAGS="" + - env: DO_FUZZ=1 CONFIGURE_FLAGS="--enable-fuzz --disable-harden" EXTRACFLAGS=-fsanitize=address CC="clang-5.0" LDFLAGS=-fsanitize=address # container-based builds sudo: false @@ -30,24 +31,27 @@ addons: - zlib1g-dev - libtomcrypt-dev - libtommath-dev - + - mercurial + - clang-5.0 before_install: - if [ "$CC" = "clang" ]; then WEXTRAFLAGS="$WEXTRAFLAGS -Wno-error=incompatible-library-redeclaration" ; fi # workaround -script: - - autoconf && autoheader && ./configure "$BUNDLEDLIBTOM" CFLAGS="-O2 -Wall -Wno-pointer-sign $WEXTRAFLAGS" --prefix="$HOME/inst" +install: + - autoconf && autoheader && ./configure $CONFIGURE_FLAGS CFLAGS="-O2 -Wall -Wno-pointer-sign $WEXTRAFLAGS $EXTRACFLAGS" --prefix="$HOME/inst" - if [ "$NOWRITEV" = "1" ]; then sed -i -e s/HAVE_WRITEV/DONT_HAVE_WRITEV/ config.h ; fi - make -j3 + - test -z $DO_FUZZ || make fuzzstandalone # avoid concurrent install, osx/freebsd is racey (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=208093) - make install -after_success: +script: - ~/inst/bin/dropbearkey -t rsa -f testrsa - ~/inst/bin/dropbearkey -t dss -f testdss - ~/inst/bin/dropbearkey -t ecdsa -f testec256 -s 256 - ~/inst/bin/dropbearkey -t ecdsa -f testec384 -s 384 - ~/inst/bin/dropbearkey -t ecdsa -f testec521 -s 521 + - test -z $DO_FUZZ || ./fuzzers_test.sh branches: only: diff --git a/fuzzers_test.sh b/fuzzers_test.sh new file mode 100755 index 0000000..1618ee1 --- /dev/null +++ b/fuzzers_test.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +# runs fuzz corpus with standalone fuzzers + +result=0 + +hg clone https://secure.ucc.asn.au/hg/dropbear-fuzzcorpus fuzzcorpus || exit 1 +for f in `make list-fuzz-targets`; do + ./$f fuzzcorpus/$f/* || result=1 +done + +exit $result -- cgit v1.2.3