sudo: required dist: trusty language: cpp before_install: - "if [ ${TRAVIS_OS_NAME} = 'linux' ]; then ./travis_ci_before_install_linux.sh; fi" - "if [ ${TRAVIS_OS_NAME} = 'osx' ]; then ./travis_ci_before_install_osx.sh; fi" install: - export CC="${MY_CC}" - export CXX="${MY_CXX}" - "echo CXX version: $($CXX --version)" - "echo C++ Standard library location: $(echo '#include ' | g++ -x c++ -E - | grep 'vector\"' | awk '{print $3}' | sed 's@/vector@@;s@\"@@g' | head -n 1)" - "echo Normalized C++ Standard library location: $(readlink -f $(echo '#include ' | g++ -x c++ -E - | grep 'vector\"' | awk '{print $3}' | sed 's@/vector@@;s@\"@@g' | head -n 1))" - "if [ ${TRAVIS_OS_NAME} = 'linux' ]; then ./travis_ci_install_linux.sh; fi" - "if [ ${TRAVIS_OS_NAME} = 'osx' ]; then ./travis_ci_install_osx.sh; fi" script: - export CC="${MY_CC}" - export CXX="${MY_CXX}" - '[ "$NO_ASAN" == 1 ] || ./postsubmit.sh DebugAsan' - '[ "$NO_VALGRIND" == 1 ] || ./postsubmit.sh DebugValgrind' - '[ "$NO_ASAN" != 1 ] || [ "$NO_VALGRIND" != 1 ] || ./postsubmit.sh DebugPlain' - '[ "$NO_VALGRIND" != 1 ] || ./postsubmit.sh ReleasePlain' - '[ "$NO_VALGRIND" == 1 ] || ./postsubmit.sh ReleaseValgrind' branches: only: - master matrix: # Report an error as soon as the first matrix entry fails. fast_finish: true include: - os: linux compiler: gcc # ASAN (aka '-fsanitize=undefined,address') is not supported in GCC 4.8. env: MY_CC=gcc-4.8 MY_CXX=g++-4.8 NO_ASAN=1 - os: linux compiler: gcc env: MY_CC=gcc-4.9 MY_CXX=g++-4.9 - os: linux compiler: gcc env: MY_CC=gcc-5 MY_CXX=g++-5 - os: linux compiler: clang env: MY_CC=clang-3.5 MY_CXX=clang++-3.5 STL=libstdc++ - os: linux compiler: clang env: MY_CC=clang-3.6 MY_CXX=clang++-3.6 STL=libstdc++ - os: linux compiler: clang env: MY_CC=clang-3.7 MY_CXX=clang++-3.7 STL=libstdc++ - os: linux compiler: clang env: MY_CC=clang-3.5 MY_CXX=clang++-3.5 STL=libc++ - os: linux compiler: clang env: MY_CC=clang-3.6 MY_CXX=clang++-3.6 STL=libc++ - os: linux compiler: clang env: MY_CC=clang-3.7 MY_CXX=clang++-3.7 STL=libc++ # TODO: Run OS X tests under Valgrind too, once it works. # We already run a couple under Valgrind, to see the result. - os: osx compiler: gcc env: MY_CC=gcc MY_CXX=g++ STL=libstdc++ - os: osx compiler: gcc # ASAN (aka '-fsanitize=undefined,address') is not supported in GCC 4.8. env: MY_CC=gcc-4.8 MY_CXX=g++-4.8 NO_VALGRIND=1 NO_ASAN=1 - os: osx compiler: gcc env: MY_CC=gcc-4.9 MY_CXX=g++-4.9 NO_VALGRIND=1 - os: osx compiler: gcc env: MY_CC=gcc-5 MY_CXX=g++-5 - os: osx compiler: clang env: MY_CC=clang MY_CXX=clang++ STL=libstdc++ - os: osx compiler: clang env: MY_CC=clang-3.5 MY_CXX=clang++-3.5 STL=libstdc++ NO_VALGRIND=1 - os: osx compiler: clang env: MY_CC=clang-3.6 MY_CXX=clang++-3.6 STL=libstdc++ - os: osx compiler: clang env: MY_CC=clang MY_CXX=clang++ STL=libc++ - os: osx compiler: clang env: MY_CC=clang-3.5 MY_CXX=clang++-3.5 STL=libc++ NO_VALGRIND=1 - os: osx compiler: clang env: MY_CC=clang-3.6 MY_CXX=clang++-3.6 STL=libc++ allow_failures: - os: osx