2014-12-10 21:56:49 +00:00
|
|
|
language: c
|
|
|
|
|
2019-06-09 20:44:26 +00:00
|
|
|
git:
|
|
|
|
depth: 3
|
|
|
|
|
2020-12-28 21:40:37 +00:00
|
|
|
# use focal which provides libtommath 1.20
|
|
|
|
dist: focal
|
|
|
|
|
2019-06-09 20:44:26 +00:00
|
|
|
matrix:
|
|
|
|
include:
|
2020-12-28 21:40:37 +00:00
|
|
|
- name: "plain linux"
|
2019-06-09 20:44:26 +00:00
|
|
|
compiler: gcc
|
|
|
|
env: WEXTRAFLAGS=-Werror
|
2020-12-28 21:40:37 +00:00
|
|
|
- name: "multi binary"
|
|
|
|
env: MULTI=1 WEXTRAFLAGS=-Werror
|
|
|
|
- name: "bundled libtom, xenial, no writev()"
|
|
|
|
# NOWRITEV is unrelated to libtom/xenial, test here to save a job
|
|
|
|
env: CONFIGURE_FLAGS=--enable-bundled-libtom WEXTRAFLAGS=-Werror NOWRITEV=1
|
|
|
|
# can use an older distro with bundled libtom
|
|
|
|
dist: xenial
|
|
|
|
- name: "linux clang"
|
|
|
|
os: linux
|
2019-06-09 20:44:26 +00:00
|
|
|
compiler: clang
|
2020-12-28 21:40:37 +00:00
|
|
|
env: WEXTRAFLAGS=-Werror
|
|
|
|
- name: "osx"
|
|
|
|
os: osx
|
2019-06-09 20:44:26 +00:00
|
|
|
compiler: clang
|
2020-12-28 21:40:37 +00:00
|
|
|
# OS X says daemon() and utmp are deprecated
|
|
|
|
env: WEXTRAFLAGS="-Wno-deprecated-declarations -Werror"
|
2019-06-09 20:44:26 +00:00
|
|
|
# Note: the fuzzing malloc wrapper doesn't replace free() in system libtomcrypt, so need bundled.
|
2020-12-28 21:40:37 +00:00
|
|
|
# Address sanitizer
|
|
|
|
- name: "fuzz-asan"
|
|
|
|
env: DO_FUZZ=1 CONFIGURE_FLAGS="--enable-fuzz --disable-harden --enable-bundled-libtom" WEXTRAFLAGS=-Werror LDFLAGS=-fsanitize=address EXTRACFLAGS=-fsanitize=address CXX=clang++
|
|
|
|
compiler: clang
|
|
|
|
# Undefined Behaviour sanitizer
|
|
|
|
- name: "fuzz-ubsan"
|
|
|
|
# don't fail with alignment due to https://github.com/libtom/libtomcrypt/issues/549
|
|
|
|
env: DO_FUZZ=1 CONFIGURE_FLAGS="--enable-fuzz --disable-harden --enable-bundled-libtom" WEXTRAFLAGS=-Werror LDFLAGS=-fsanitize=undefined EXTRACFLAGS="-fsanitize=undefined -fno-sanitize-recover=undefined -fsanitize-recover=alignment" CXX=clang++
|
2019-06-09 20:44:26 +00:00
|
|
|
compiler: clang
|
|
|
|
|
|
|
|
# container-based builds
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
packages:
|
|
|
|
# packages list: https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise
|
|
|
|
- zlib1g-dev
|
|
|
|
- libtomcrypt-dev
|
|
|
|
- libtommath-dev
|
|
|
|
- mercurial
|
|
|
|
|
|
|
|
before_install:
|
|
|
|
- if [ "$CC" = "clang" ]; then WEXTRAFLAGS="$WEXTRAFLAGS -Wno-error=incompatible-library-redeclaration" ; fi # workaround
|
|
|
|
|
|
|
|
install:
|
|
|
|
- autoconf
|
|
|
|
- autoheader
|
|
|
|
- ./configure $CONFIGURE_FLAGS CFLAGS="-O2 -Wall -Wno-pointer-sign $WEXTRAFLAGS $EXTRACFLAGS" --prefix="$HOME/inst" || (cat config.log; exit 1)
|
|
|
|
- if [ "$NOWRITEV" = "1" ]; then sed -i -e s/HAVE_WRITEV/DONT_HAVE_WRITEV/ config.h ; fi
|
2020-12-28 21:40:37 +00:00
|
|
|
- make lint
|
2019-06-09 20:44:26 +00:00
|
|
|
- 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
|
|
|
|
|
|
|
|
script:
|
2014-12-10 21:56:49 +00:00
|
|
|
- ~/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
|
2020-12-28 21:40:37 +00:00
|
|
|
- ~/inst/bin/dropbearkey -t ed25519 -f tested25519
|
2019-06-09 20:44:26 +00:00
|
|
|
- test -z $DO_FUZZ || ./fuzzers_test.sh
|
2014-12-10 21:56:49 +00:00
|
|
|
|
2019-06-09 20:44:26 +00:00
|
|
|
branches:
|
|
|
|
only:
|
|
|
|
- master
|
|
|
|
- coverity
|
2014-12-10 21:56:49 +00:00
|
|
|
|