# HG changeset patch # User Matt Johnston # Date 1519916097 -28800 # Node ID 3fc0e9a0978b4a5fe1381ac7a2390bb4dac8d353 # Parent 2fd52c383163be8fc2324415db2ac9f75f7daef5 add fuzzers to travis diff -r 2fd52c383163 -r 3fc0e9a0978b .travis.yml --- a/.travis.yml Thu Mar 01 22:12:30 2018 +0800 +++ b/.travis.yml Thu Mar 01 22:54:57 2018 +0800 @@ -11,15 +11,16 @@ 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 @@ - 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 -r 2fd52c383163 -r 3fc0e9a0978b fuzzers_test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fuzzers_test.sh Thu Mar 01 22:54:57 2018 +0800 @@ -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