annotate .travis.yml @ 1760:2406a9987810 default tip fuzz

Add first try at fuzzing custom mutator
author Matt Johnston <matt@ucc.asn.au>
date Sun, 25 Oct 2020 22:52:36 +0800
parents 32307118bc26
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
912
e630c7aecff7 Add Travis CI autobuilder config
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
1 language: c
1240
87a43bf49e37 TravisCI: modify to run builds in container
Chocobo1 <Chocobo1@users.noreply.github.com>
parents: 1142
diff changeset
2
1485
3a916b945185 Use an explicit matrix instead, avoid bad clang combinations etc
Matt Johnston <matt@ucc.asn.au>
parents: 1481
diff changeset
3 git:
3a916b945185 Use an explicit matrix instead, avoid bad clang combinations etc
Matt Johnston <matt@ucc.asn.au>
parents: 1481
diff changeset
4 depth: 3
1243
2e3d083483de TravisCI: enable osx builds
Chocobo1 <Chocobo1@users.noreply.github.com>
parents: 1242
diff changeset
5
1691
2d3745d58843 try rearrange travis build matrix
Matt Johnston <matt@ucc.asn.au>
parents: 1690
diff changeset
6 # use focal which provides libtommath 1.20
2d3745d58843 try rearrange travis build matrix
Matt Johnston <matt@ucc.asn.au>
parents: 1690
diff changeset
7 dist: focal
2d3745d58843 try rearrange travis build matrix
Matt Johnston <matt@ucc.asn.au>
parents: 1690
diff changeset
8
1243
2e3d083483de TravisCI: enable osx builds
Chocobo1 <Chocobo1@users.noreply.github.com>
parents: 1242
diff changeset
9 matrix:
1485
3a916b945185 Use an explicit matrix instead, avoid bad clang combinations etc
Matt Johnston <matt@ucc.asn.au>
parents: 1481
diff changeset
10 include:
1693
f9ad4d39e388 Bring back -Werror and improve travis tests
Matt Johnston <matt@ucc.asn.au>
parents: 1691
diff changeset
11 - name: "plain linux"
f9ad4d39e388 Bring back -Werror and improve travis tests
Matt Johnston <matt@ucc.asn.au>
parents: 1691
diff changeset
12 compiler: gcc
1485
3a916b945185 Use an explicit matrix instead, avoid bad clang combinations etc
Matt Johnston <matt@ucc.asn.au>
parents: 1481
diff changeset
13 env: WEXTRAFLAGS=-Werror
1693
f9ad4d39e388 Bring back -Werror and improve travis tests
Matt Johnston <matt@ucc.asn.au>
parents: 1691
diff changeset
14 - name: "multi binary"
f9ad4d39e388 Bring back -Werror and improve travis tests
Matt Johnston <matt@ucc.asn.au>
parents: 1691
diff changeset
15 env: MULTI=1 WEXTRAFLAGS=-Werror
f9ad4d39e388 Bring back -Werror and improve travis tests
Matt Johnston <matt@ucc.asn.au>
parents: 1691
diff changeset
16 - name: "bundled libtom, xenial, no writev()"
f9ad4d39e388 Bring back -Werror and improve travis tests
Matt Johnston <matt@ucc.asn.au>
parents: 1691
diff changeset
17 # NOWRITEV is unrelated to libtom/xenial, test here to save a job
f9ad4d39e388 Bring back -Werror and improve travis tests
Matt Johnston <matt@ucc.asn.au>
parents: 1691
diff changeset
18 env: CONFIGURE_FLAGS=--enable-bundled-libtom WEXTRAFLAGS=-Werror NOWRITEV=1
1690
2a06ef4ba80d .travis.yml needs spaces not tabs
Matt Johnston <matt@ucc.asn.au>
parents: 1689
diff changeset
19 # can use an older distro with bundled libtom
2a06ef4ba80d .travis.yml needs spaces not tabs
Matt Johnston <matt@ucc.asn.au>
parents: 1689
diff changeset
20 dist: xenial
1693
f9ad4d39e388 Bring back -Werror and improve travis tests
Matt Johnston <matt@ucc.asn.au>
parents: 1691
diff changeset
21 - name: "linux clang"
f9ad4d39e388 Bring back -Werror and improve travis tests
Matt Johnston <matt@ucc.asn.au>
parents: 1691
diff changeset
22 os: linux
1485
3a916b945185 Use an explicit matrix instead, avoid bad clang combinations etc
Matt Johnston <matt@ucc.asn.au>
parents: 1481
diff changeset
23 compiler: clang
1693
f9ad4d39e388 Bring back -Werror and improve travis tests
Matt Johnston <matt@ucc.asn.au>
parents: 1691
diff changeset
24 env: WEXTRAFLAGS=-Werror
f9ad4d39e388 Bring back -Werror and improve travis tests
Matt Johnston <matt@ucc.asn.au>
parents: 1691
diff changeset
25 - name: "osx"
f9ad4d39e388 Bring back -Werror and improve travis tests
Matt Johnston <matt@ucc.asn.au>
parents: 1691
diff changeset
26 os: osx
1485
3a916b945185 Use an explicit matrix instead, avoid bad clang combinations etc
Matt Johnston <matt@ucc.asn.au>
parents: 1481
diff changeset
27 compiler: clang
1693
f9ad4d39e388 Bring back -Werror and improve travis tests
Matt Johnston <matt@ucc.asn.au>
parents: 1691
diff changeset
28 # OS X says daemon() and utmp are deprecated
f9ad4d39e388 Bring back -Werror and improve travis tests
Matt Johnston <matt@ucc.asn.au>
parents: 1691
diff changeset
29 env: WEXTRAFLAGS="-Wno-deprecated-declarations -Werror"
1581
950913ea9976 try fix travis sanitizer
Matt Johnston <matt@ucc.asn.au>
parents: 1579
diff changeset
30 # Note: the fuzzing malloc wrapper doesn't replace free() in system libtomcrypt, so need bundled.
1749
32307118bc26 Add ubsan fuzz run to Travis CI too
Matt Johnston <matt@ucc.asn.au>
parents: 1693
diff changeset
31 # Address sanitizer
32307118bc26 Add ubsan fuzz run to Travis CI too
Matt Johnston <matt@ucc.asn.au>
parents: 1693
diff changeset
32 - name: "fuzz-asan"
1693
f9ad4d39e388 Bring back -Werror and improve travis tests
Matt Johnston <matt@ucc.asn.au>
parents: 1691
diff changeset
33 env: DO_FUZZ=1 CONFIGURE_FLAGS="--enable-fuzz --disable-harden --enable-bundled-libtom" WEXTRAFLAGS=-Werror LDFLAGS=-fsanitize=address EXTRACFLAGS=-fsanitize=address CXX=clang++
1567
2799a1d55b59 don't try clang-5.0
Matt Johnston <matt@ucc.asn.au>
parents: 1566
diff changeset
34 compiler: clang
1749
32307118bc26 Add ubsan fuzz run to Travis CI too
Matt Johnston <matt@ucc.asn.au>
parents: 1693
diff changeset
35 # Undefined Behaviour sanitizer
32307118bc26 Add ubsan fuzz run to Travis CI too
Matt Johnston <matt@ucc.asn.au>
parents: 1693
diff changeset
36 - name: "fuzz-ubsan"
32307118bc26 Add ubsan fuzz run to Travis CI too
Matt Johnston <matt@ucc.asn.au>
parents: 1693
diff changeset
37 # don't fail with alignment due to https://github.com/libtom/libtomcrypt/issues/549
32307118bc26 Add ubsan fuzz run to Travis CI too
Matt Johnston <matt@ucc.asn.au>
parents: 1693
diff changeset
38 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++
32307118bc26 Add ubsan fuzz run to Travis CI too
Matt Johnston <matt@ucc.asn.au>
parents: 1693
diff changeset
39 compiler: clang
1242
53111b3413dc TravisCI: enable build with clang
Chocobo1 <Chocobo1@users.noreply.github.com>
parents: 1241
diff changeset
40
1240
87a43bf49e37 TravisCI: modify to run builds in container
Chocobo1 <Chocobo1@users.noreply.github.com>
parents: 1142
diff changeset
41 # container-based builds
87a43bf49e37 TravisCI: modify to run builds in container
Chocobo1 <Chocobo1@users.noreply.github.com>
parents: 1142
diff changeset
42 addons:
87a43bf49e37 TravisCI: modify to run builds in container
Chocobo1 <Chocobo1@users.noreply.github.com>
parents: 1142
diff changeset
43 apt:
87a43bf49e37 TravisCI: modify to run builds in container
Chocobo1 <Chocobo1@users.noreply.github.com>
parents: 1142
diff changeset
44 packages:
87a43bf49e37 TravisCI: modify to run builds in container
Chocobo1 <Chocobo1@users.noreply.github.com>
parents: 1142
diff changeset
45 # packages list: https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise
87a43bf49e37 TravisCI: modify to run builds in container
Chocobo1 <Chocobo1@users.noreply.github.com>
parents: 1142
diff changeset
46 - zlib1g-dev
87a43bf49e37 TravisCI: modify to run builds in container
Chocobo1 <Chocobo1@users.noreply.github.com>
parents: 1142
diff changeset
47 - libtomcrypt-dev
87a43bf49e37 TravisCI: modify to run builds in container
Chocobo1 <Chocobo1@users.noreply.github.com>
parents: 1142
diff changeset
48 - libtommath-dev
1566
3fc0e9a0978b add fuzzers to travis
Matt Johnston <matt@ucc.asn.au>
parents: 1486
diff changeset
49 - mercurial
1243
2e3d083483de TravisCI: enable osx builds
Chocobo1 <Chocobo1@users.noreply.github.com>
parents: 1242
diff changeset
50
1245
cb0806413220 TravisCI: fix linux + clang compile
Chocobo1 <Chocobo1@users.noreply.github.com>
parents: 1244
diff changeset
51 before_install:
cb0806413220 TravisCI: fix linux + clang compile
Chocobo1 <Chocobo1@users.noreply.github.com>
parents: 1244
diff changeset
52 - if [ "$CC" = "clang" ]; then WEXTRAFLAGS="$WEXTRAFLAGS -Wno-error=incompatible-library-redeclaration" ; fi # workaround
cb0806413220 TravisCI: fix linux + clang compile
Chocobo1 <Chocobo1@users.noreply.github.com>
parents: 1244
diff changeset
53
1566
3fc0e9a0978b add fuzzers to travis
Matt Johnston <matt@ucc.asn.au>
parents: 1486
diff changeset
54 install:
1578
fdadac70ee67 add -fsanitize=address for fuzz test again
Matt Johnston <matt@ucc.asn.au>
parents: 1572
diff changeset
55 - autoconf
fdadac70ee67 add -fsanitize=address for fuzz test again
Matt Johnston <matt@ucc.asn.au>
parents: 1572
diff changeset
56 - autoheader
1579
8c1f762c6e9d print config.log on failure
Matt Johnston <matt@ucc.asn.au>
parents: 1578
diff changeset
57 - ./configure $CONFIGURE_FLAGS CFLAGS="-O2 -Wall -Wno-pointer-sign $WEXTRAFLAGS $EXTRACFLAGS" --prefix="$HOME/inst" || (cat config.log; exit 1)
1262
71698088bdac TravisCI: re-enable MULTI=1 & NOWRITEV=1 builds on OSX, fixes d416a9b
Chocobo1 <Chocobo1@users.noreply.github.com>
parents: 1245
diff changeset
58 - if [ "$NOWRITEV" = "1" ]; then sed -i -e s/HAVE_WRITEV/DONT_HAVE_WRITEV/ config.h ; fi
1680
5e763ad6e2e0 run linter
Matt Johnston <matt@ucc.asn.au>
parents: 1659
diff changeset
59 - make lint
1291
4a4e5d823cf6 Avoid osx "install" race
Matt Johnston <matt@ucc.asn.au>
parents: 1262
diff changeset
60 - make -j3
1578
fdadac70ee67 add -fsanitize=address for fuzz test again
Matt Johnston <matt@ucc.asn.au>
parents: 1572
diff changeset
61 - test -z $DO_FUZZ || make fuzzstandalone
1291
4a4e5d823cf6 Avoid osx "install" race
Matt Johnston <matt@ucc.asn.au>
parents: 1262
diff changeset
62 # avoid concurrent install, osx/freebsd is racey (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=208093)
4a4e5d823cf6 Avoid osx "install" race
Matt Johnston <matt@ucc.asn.au>
parents: 1262
diff changeset
63 - make install
1240
87a43bf49e37 TravisCI: modify to run builds in container
Chocobo1 <Chocobo1@users.noreply.github.com>
parents: 1142
diff changeset
64
1566
3fc0e9a0978b add fuzzers to travis
Matt Johnston <matt@ucc.asn.au>
parents: 1486
diff changeset
65 script:
915
ca46fb43679d Add some tests for multi
Matt Johnston <matt@ucc.asn.au>
parents: 914
diff changeset
66 - ~/inst/bin/dropbearkey -t rsa -f testrsa
ca46fb43679d Add some tests for multi
Matt Johnston <matt@ucc.asn.au>
parents: 914
diff changeset
67 - ~/inst/bin/dropbearkey -t dss -f testdss
ca46fb43679d Add some tests for multi
Matt Johnston <matt@ucc.asn.au>
parents: 914
diff changeset
68 - ~/inst/bin/dropbearkey -t ecdsa -f testec256 -s 256
ca46fb43679d Add some tests for multi
Matt Johnston <matt@ucc.asn.au>
parents: 914
diff changeset
69 - ~/inst/bin/dropbearkey -t ecdsa -f testec384 -s 384
ca46fb43679d Add some tests for multi
Matt Johnston <matt@ucc.asn.au>
parents: 914
diff changeset
70 - ~/inst/bin/dropbearkey -t ecdsa -f testec521 -s 521
1659
d32bcb5c557d Add Ed25519 support (#91)
Vladislav Grishenko <themiron@users.noreply.github.com>
parents: 1583
diff changeset
71 - ~/inst/bin/dropbearkey -t ed25519 -f tested25519
1566
3fc0e9a0978b add fuzzers to travis
Matt Johnston <matt@ucc.asn.au>
parents: 1486
diff changeset
72 - test -z $DO_FUZZ || ./fuzzers_test.sh
1486
cf43bbb6b8ff limit travis branches
Matt Johnston <matt@ucc.asn.au>
parents: 1485
diff changeset
73
cf43bbb6b8ff limit travis branches
Matt Johnston <matt@ucc.asn.au>
parents: 1485
diff changeset
74 branches:
cf43bbb6b8ff limit travis branches
Matt Johnston <matt@ucc.asn.au>
parents: 1485
diff changeset
75 only:
cf43bbb6b8ff limit travis branches
Matt Johnston <matt@ucc.asn.au>
parents: 1485
diff changeset
76 - master
cf43bbb6b8ff limit travis branches
Matt Johnston <matt@ucc.asn.au>
parents: 1485
diff changeset
77 - coverity
cf43bbb6b8ff limit travis branches
Matt Johnston <matt@ucc.asn.au>
parents: 1485
diff changeset
78