mirror of https://github.com/c-ares/c-ares.git
Cover Linux & OSX on the container infrastructure, but install a later G++ to satisfy the tests' need for C++11. Use a build matrix to include a variety of build variants: - ASAN - UBSAN - LSAN - Coverage via coveralls.io test: invoke ASAN and coverage in Travis build Also shift to use explicit build matrix test: Use coveralls.io for coverage tracking test: Add a build with UBSAN Also expand and re-order the setting of environment variables for easier modification. test: Add LSAN build to Travis configpull/34/head
parent
af3ee9a8ba
commit
4a4f875c5a
1 changed files with 83 additions and 0 deletions
@ -0,0 +1,83 @@ |
||||
language: c++ |
||||
sudo: false |
||||
addons: |
||||
apt: |
||||
sources: |
||||
- ubuntu-toolchain-r-test |
||||
packages: |
||||
- gcc-4.8 |
||||
- g++-4.8 |
||||
- lcov |
||||
matrix: |
||||
include: |
||||
- os: linux |
||||
compiler: gcc |
||||
env: BUILD_TYPE=normal |
||||
- os: linux |
||||
compiler: clang |
||||
env: BUILD_TYPE=normal |
||||
- os: linux |
||||
compiler: gcc |
||||
env: BUILD_TYPE=coverage |
||||
- os: linux |
||||
compiler: clang |
||||
env: BUILD_TYPE=ubsan |
||||
- os: linux |
||||
compiler: clang |
||||
env: BUILD_TYPE=asan |
||||
- os: linux |
||||
compiler: clang |
||||
env: BUILD_TYPE=lsan |
||||
# - os: linux |
||||
# compiler: clang |
||||
# env: BUILD_TYPE=analyse |
||||
- os: osx |
||||
compiler: gcc |
||||
env: BUILD_TYPE=normal |
||||
- os: osx |
||||
compiler: clang |
||||
env: BUILD_TYPE=normal |
||||
install: |
||||
- pip install --user 'requests[security]' |
||||
- pip install --user cpp-coveralls |
||||
before_script: |
||||
- | |
||||
if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$CXX" = "g++" ]; then |
||||
export CXX="g++-4.8" |
||||
export CC="gcc-4.8" |
||||
fi |
||||
- | |
||||
if [ "$BUILD_TYPE" = "coverage" ]; then |
||||
export CONFIG_OPTS="--enable-debug --disable-shared --enable-code-coverage" |
||||
fi |
||||
- | |
||||
if [ "$BUILD_TYPE" = "asan" ]; then |
||||
export CONFIG_OPTS=--enable-debug |
||||
export CFLAGS=-fsanitize=address |
||||
export CXXFLAGS=-fsanitize=address |
||||
export LDFLAGS=-fsanitize=address |
||||
fi |
||||
- | |
||||
if [ "$BUILD_TYPE" = "lsan" ]; then |
||||
export CONFIG_OPTS=--enable-debug |
||||
export CFLAGS=-fsanitize=leak |
||||
export CXXFLAGS=-fsanitize=leak |
||||
export LDFLAGS=-fsanitize=leak |
||||
fi |
||||
- | |
||||
if [ "$BUILD_TYPE" = "ubsan" ]; then |
||||
export CFLAGS="-fsanitize=undefined -fno-sanitize-recover" |
||||
export LDFLAGS="-fsanitize=undefined" |
||||
fi |
||||
- | |
||||
if [ "$BUILD_TYPE" = "analyse" ]; then |
||||
export SCAN_WRAP="scan-build" |
||||
export CONFIG_OPTS="--enable-debug" |
||||
fi |
||||
script: |
||||
- ./buildconf && $SCAN_WRAP ./configure --disable-symbol-hiding --enable-expose-statics $CONFIG_OPTS && $SCAN_WRAP make |
||||
- cd test && autoreconf -iv && ./configure $CONFIG_OPTS && make && ./arestest -v && cd .. |
||||
- | |
||||
if [ "$BUILD_TYPE" = "coverage" ]; then |
||||
coveralls --gcov /usr/bin/gcov-4.8 --gcov-options '\-lp' |
||||
fi |
Loading…
Reference in new issue