travis: Use Clang 4.0 instead of 3.9 due to va_start() warnings
[strongswan.git] / .travis.yml
1 language: c
2
3 sudo: required
4 dist: trusty
5
6 compiler:
7   - gcc
8   - clang
9
10 before_install:
11   - ./scripts/test.sh deps
12   - ./scripts/test.sh pydeps
13   # use clang 4.0 instead of 3.9 due to unnecessary va_start() warnings
14   - echo $TRAVIS_OS_NAME
15   - echo $CC
16   - echo $(clang --version)
17   - if [ "$TRAVIS_OS_NAME" == "linux" -a "$CC" == "clang" ]; then
18       if [[ "$(clang --version)" =~ 3\.9\.[0-9] ]]; then
19         curl http://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -;
20         echo "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-4.0 main" | sudo tee -a /etc/apt/sources.list;
21         sudo apt-get update -qq;
22         sudo apt-get install -qq clang-4.0;
23         CC=clang-4.0;
24       fi;
25     fi
26
27 before_script:
28   - sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0 || true
29
30 script:
31   - ./scripts/test.sh
32
33 after_success:
34   if [ "$TEST" == "coverage" ]; then
35     bash <(curl -s https://codecov.io/bash);
36   fi
37
38 after_failure:
39   - cat config.log
40
41 env:
42   global:
43     - TESTS_REDUCED_KEYLENGTHS=yes
44     - LEAK_DETECTIVE=no
45     - MONOLITHIC=no
46   matrix:
47     - TEST=default
48     - TEST=default MONOLITHIC=yes
49     - TEST=default LEAK_DETECTIVE=yes
50     - TEST=openssl
51     - TEST=openssl LEAK_DETECTIVE=yes
52     - TEST=gcrypt
53     - TEST=gcrypt LEAK_DETECTIVE=yes
54     # we can't test Vstr as negative int args are not properly passed to CBs
55     - TEST=printf-builtin
56     - TEST=printf-builtin LEAK_DETECTIVE=yes
57     - TEST=all
58     - TEST=all MONOLITHIC=yes
59     - TEST=all LEAK_DETECTIVE=yes
60
61 matrix:
62   include:
63     - compiler: gcc
64       env: TEST=dist
65     - compiler: gcc
66       env: TEST=apidoc
67     - compiler: gcc
68       env: TEST=coverage
69     - compiler: gcc
70       env: TEST=win64 MONOLITHIC=yes
71     # this does not work on 14.04 due to a missing @4 decoration for
72     # TryAcquireSRWLockExclusive in MinGW 3.1.0
73     - compiler: gcc
74       env: TEST=win32 MONOLITHIC=yes
75       dist: precise
76     - compiler: clang
77       env: TEST=fuzzing MONOLITHIC=yes
78     - compiler: clang
79       os: osx
80       env: TEST=osx