summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml82
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.