1sudo: false 2dist: xenial 3 4language: c 5 6compiler: 7 - gcc 8 - clang-3.8 9 10branches: 11 only: 12 - master 13 - coveralls-text 14 15env: 16 - RUNTIME=libicu 17 - RUNTIME=libidn2 18 - RUNTIME=libidn 19 - RUNTIME=no 20 21addons: 22 apt: 23 packages: 24 - automake 25 - autoconf 26 - autopoint 27 - libtool 28 - gtk-doc-tools 29 - gettext 30 - libidn11-dev 31 - libidn2-0-dev 32 - libicu-dev 33 - libunistring-dev 34 - lcov 35 - clang-3.8 36 - llvm-3.8-dev 37 - llvm-dev 38 - valgrind 39 40script: 41 - set -e 42 - sed -i 's/dist-lzip//g' configure.ac 43 - ./autogen.sh 44# CFI doesn't work out on Ubuntu 14.04 (Trusty). They don't include LLVMgold.so for clang-3.8. 45# clang-3.4 doesn't know CFI yet. 46# The only chance with Travis-CI is to switch to docker and use Ubuntu 16.04 or whatever. 47# - if [[ $CC == "gcc" ]]; then CFI=""; else CFI="--enable-cfi"; fi 48 - if [[ $CC == "clang-3.8" ]]; then UBSAN="--enable-ubsan"; fi 49 - ./configure $CFI --enable-asan $UBSAN && make -j4 && make check -j4 50 - ./configure $CFI --enable-runtime=$RUNTIME --enable-builtin=libicu --enable-asan $UBSAN && make clean && make -j4 && make check -j4 51 - ./configure $CFI --enable-runtime=$RUNTIME --enable-builtin=libidn2 --enable-asan $UBSAN && make clean && make -j4 && make check -j4 52 - ./configure $CFI --enable-runtime=$RUNTIME --enable-builtin=libidn --enable-asan $UBSAN && make clean && make -j4 && make check -j4 53 - ./configure $CFI --enable-runtime=$RUNTIME --disable-builtin --enable-asan $UBSAN && make clean && make -j4 && make check -j4 54# libidn2 0.9.0 on Trusty has bugs, valgrinding the fuzz corpora fails 55# so we use libicu here 56 - if [[ $RUNTIME == "libicu" ]]; then VALGRIND="--enable-valgrind-tests"; fi 57 - ./configure --enable-runtime=$RUNTIME --enable-builtin=libicu --enable-gtk-doc $VALGRIND && make clean && make -j4 && make check -j4 || cat fuzz/*_fuzzer.log 58 - make distcheck 59 - if [[ $CC == "gcc" && $RUNTIME == "libicu" ]]; then ./.travis_coveralls.sh; fi 60