Add asan, tsan to CI (#421)

* Use ASAN for CI

* Add TSAN
This commit is contained in:
androm3da 2018-01-06 16:42:27 -06:00 committed by GitHub
commit e89d3bfc99
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 6 deletions

View file

@ -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

View file

@ -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}