aboutsummaryrefslogtreecommitdiffstats
path: root/.travis.yml
blob: 35c9932f77cab8e7b57a11f9aabafcf26c20d1a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
language: c

sudo: required
dist: trusty

compiler:
  - gcc
  - clang

before_install:
  - ./scripts/test.sh deps
  - ./scripts/test.sh pydeps
  # use clang 4.0 instead of 3.9 due to unnecessary va_start() warnings
  - echo $TRAVIS_OS_NAME
  - echo $CC
  - echo $(clang --version)
  - if [ "$TRAVIS_OS_NAME" == "linux" -a "$CC" == "clang" ]; then
      if [[ "$(clang --version)" =~ 3\.9\.[0-9] ]]; then
        curl http://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -;
        echo "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-4.0 main" | sudo tee -a /etc/apt/sources.list;
        sudo apt-get update -qq;
        sudo apt-get install -qq clang-4.0;
        CC=clang-4.0;
      fi;
    fi

before_script:
  - sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0 || true

script:
  - ./scripts/test.sh

after_success:
  if [ "$TEST" == "coverage" ]; then
    bash <(curl -s https://codecov.io/bash);
  fi

after_failure:
  - cat config.log

env:
  global:
    - TESTS_REDUCED_KEYLENGTHS=yes
    - LEAK_DETECTIVE=no
    - MONOLITHIC=no
  matrix:
    - TEST=default
    - TEST=default MONOLITHIC=yes
    - TEST=default LEAK_DETECTIVE=yes
    - TEST=openssl
    - TEST=openssl LEAK_DETECTIVE=yes
    - TEST=gcrypt
    - TEST=gcrypt LEAK_DETECTIVE=yes
    # we can't test Vstr as negative int args are not properly passed to CBs
    - TEST=printf-builtin
    - TEST=printf-builtin LEAK_DETECTIVE=yes
    - TEST=all
    - TEST=all MONOLITHIC=yes
    - TEST=all LEAK_DETECTIVE=yes

matrix:
  include:
    - compiler: gcc
      env: TEST=dist
    - compiler: gcc
      env: TEST=apidoc
    - compiler: gcc
      env: TEST=coverage
    - compiler: gcc
      env: TEST=win64 MONOLITHIC=yes
    # this does not work on 14.04 due to a missing @4 decoration for
    # TryAcquireSRWLockExclusive in MinGW 3.1.0
    - compiler: gcc
      env: TEST=win32 MONOLITHIC=yes
      dist: precise
    - compiler: clang
      env: TEST=fuzzing MONOLITHIC=yes
    - compiler: clang
      os: osx
      env: TEST=osx