• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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