diff options
-rw-r--r-- | .travis.yml | 82 |
1 files changed, 76 insertions, 6 deletions
diff --git a/.travis.yml b/.travis.yml index 4efbf2c..94e981b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,7 +23,7 @@ sudo: false ## Commands before installing before_install: - if [ $(git rev-list --count HEAD ^master) -gt 50 ] ; then exit 1; fi - - export CC=${REAL_CC} CXX=${REAL_CXX} + - export CC="${REAL_CC} ${REAL_EXTRA}" CXX="${REAL_CXX} ${REAL_EXTRA}" install: - make --version @@ -31,29 +31,45 @@ install: - cd build - git init - ../configure --build=x86_64-linux-gnu --dev CPPFLAGS=-DQUIET `! [[ $CXX =~ clang* ]] || echo --disable-abi` $EXTRA_CONFIGURE_ARGS + - sed -n '/One Makefile/q;p' Makefile ## Main test script script: - make -R -k -j2 - - make -R -k -j2 test TESTER='valgrind --error-exitcode=1 --track-fds=yes' - -## Do something after the main test script -after_success: + # Use - instead of :- to allow forcing an empty one + - make -R -k -j2 test TESTER="${FORCE_TESTER-${DEFAULT_TESTER}}" - make -R -k -j2 format - git --git-dir=../.git --work-tree=.. diff --exit-code - make -R -k -j2 dist bindist ### The rest of the file creates a build matrix - +env: + global: + - DEFAULT_TESTER='valgrind --error-exitcode=1 --track-fds=yes' matrix: fast-finish: true include: - compiler: clang + env: REAL_CC=clang-3.5 REAL_CXX=clang++-3.5 + addons: + apt: + sources: + - llvm-toolchain-precise-3.5 + # needed for libstdc++ headers + - ubuntu-toolchain-r-test + packages: + - clang-3.5 + - libstdc++6-4.6-dbg + - libgtest-dev + - valgrind + - gdb + - compiler: clang env: REAL_CC=clang-3.6 REAL_CXX=clang++-3.6 addons: apt: sources: - llvm-toolchain-precise-3.6 + # needed for libstdc++ headers - ubuntu-toolchain-r-test packages: - clang-3.6 @@ -67,6 +83,7 @@ matrix: apt: sources: - llvm-toolchain-precise-3.7 + # needed for libstdc++ headers - ubuntu-toolchain-r-test packages: - clang-3.7 @@ -75,6 +92,30 @@ matrix: - valgrind - gdb - compiler: gcc + env: REAL_CC=gcc-4.7 REAL_CXX=g++-4.7 + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-4.7 + - libstdc++6-4.7-dbg + - libgtest-dev + - valgrind + - gdb + - compiler: gcc + env: REAL_CC=gcc-4.8 REAL_CXX=g++-4.8 + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-4.8 + - libstdc++6-4.8-dbg + - libgtest-dev + - valgrind + - gdb + - compiler: gcc env: REAL_CC=gcc-4.9 REAL_CXX=g++-4.9 addons: apt: @@ -98,6 +139,35 @@ matrix: - libgtest-dev - valgrind - gdb + # Can't use valgrind and asan at the same time. + # Should probably fix the test leaks though. + - compiler: gcc + env: REAL_CC=gcc-5 REAL_CXX=g++-5 REAL_EXTRA=-fsanitize=address FORCE_TESTER='' ASAN_OPTIONS=detect_leaks=0 + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-5 + - libstdc++6-5-dbg + - libgtest-dev + # - valgrind + - gdb + # LTO is buggy. + - compiler: gcc + env: REAL_CC=gcc-5 REAL_CXX=g++-5 REAL_EXTRA=-flto + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-5 + - libstdc++6-5-dbg + - libgtest-dev + - valgrind + - gdb + allow_failures: + - env: REAL_CC=gcc-5 REAL_CXX=g++-5 REAL_EXTRA=-flto # everything that was pushed to stable was already on 'master', except # the version change and some doc changes. |