diff --git a/.travis.yml b/.travis.yml index d0a41b85..e2010c80 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,10 +7,24 @@ matrix: sudo: required services: - docker + - os: linux + dist: trusty + sudo: required + env: + - TSAN=1 + services: + - docker + - os: linux + dist: trusty + sudo: required + env: + - ASAN=1 + services: + - docker - os: osx compiler: - - gcc + - clang before_install: - if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo mkdir -p /etc/docker && echo '{"ipv6":true,"fixed-cidr-v6":"2001:db8:1::/64"}' | sudo tee /etc/docker/daemon.json && sudo service docker restart; fi @@ -19,4 +33,4 @@ before_install: script: - if [ "$TRAVIS_OS_NAME" = "osx" ]; then ci/build-travis.sh "/usr/local/opt/qt5/lib/cmake/Qt5"; fi - - if [ "$TRAVIS_OS_NAME" = "linux" ]; then docker run -v $TRAVIS_BUILD_DIR:/workspace lukealonso/raiblocks-ci:latest /bin/bash -c "cd /workspace && ./ci/build-travis.sh /usr/lib/x86_64-linux-gnu/cmake/Qt5 ${PWD}"; fi + - if [ "$TRAVIS_OS_NAME" = "linux" ]; then docker run -v $TRAVIS_BUILD_DIR:/workspace lukealonso/raiblocks-ci:latest /bin/bash -c "cd /workspace && ASAN=${ASAN} TSAN=${TSAN} ./ci/build-travis.sh /usr/lib/x86_64-linux-gnu/cmake/Qt5 ${PWD}"; fi diff --git a/ci/build-travis.sh b/ci/build-travis.sh index 1908456c..a81f3404 100755 --- a/ci/build-travis.sh +++ b/ci/build-travis.sh @@ -3,13 +3,26 @@ qt_dir=${1} src_dir=${2} -set -e +set -o errexit +set -o nounset +set -o xtrace OS=`uname` mkdir build pushd build +if [[ ${ASAN_INT-0} -eq 1 ]]; then + SANITIZERS="-DRAIBLOCKS_ASAN_INT=ON" +elif [[ ${ASAN-0} -eq 1 ]]; then + SANITIZERS="-DRAIBLOCKS_ASAN=ON" +elif [[ ${TSAN-0} -eq 1 ]]; then + SANITIZERS="-DRAIBLOCKS_TSAN=ON" +else + SANITIZERS="" +fi + cmake \ + -G'Unix Makefiles' \ -DACTIVE_NETWORK=rai_test_network \ -DRAIBLOCKS_TEST=ON \ -DRAIBLOCKS_GUI=ON \ @@ -17,13 +30,14 @@ cmake \ -DCMAKE_VERBOSE_MAKEFILE=ON \ -DBOOST_ROOT=/usr/local \ -DQt5_DIR=${qt_dir} \ + ${SANITIZERS} \ .. if [[ "$OS" == 'Linux' ]]; then - make -j2 + cmake --build ${PWD} -- -j2 else - sudo make -j2 + sudo cmake --build ${PWD} -- -j2 fi popd @@ -33,4 +47,4 @@ if [[ "$OSTYPE" == "darwin"* ]]; then else TRUE_CMD=true fi -./ci/test.sh ./build || ${TRUE} +./ci/test.sh ./build || ${TRUE_CMD}