diff options
author | Jonas Fonseca <jonas.fonseca@gmail.com> | 2018-05-18 18:16:22 -0400 |
---|---|---|
committer | Jonas Fonseca <jonas.fonseca@gmail.com> | 2018-05-18 18:43:29 -0400 |
commit | bfd1927955b12c9908ad108aa1748c1480d339f5 (patch) | |
tree | 259c33be02e47d3a1e16371d16a53b8bf4006027 | |
parent | 72a01d83f51274e2de85f14c682bf440cb4c160c (diff) |
Test address sanitizer in a separate build
-rw-r--r-- | .travis.yml | 18 | ||||
-rwxr-xr-x | tools/travis.sh | 39 |
2 files changed, 37 insertions, 20 deletions
diff --git a/.travis.yml b/.travis.yml index 687d6f2d..ed5cd021 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,5 @@ language: c - -# LeakSanitizer requires ptrace capabilities -# https://github.com/travis-ci/travis-ci/issues/9033 -sudo: required +sudo: false addons: apt: @@ -12,10 +9,8 @@ addons: - valgrind env: - global: - matrix: - - TRAVIS_TIG=autoconf - - TRAVIS_TIG=config + - TIG_BUILD=autoconf + - TIG_BUILD=config.make compiler: - gcc @@ -25,6 +20,13 @@ script: tools/travis.sh matrix: include: + - env: TIG_BUILD=address-sanitizer + compiler: clang + os: linux + # LeakSanitizer requires ptrace capabilities + # https://github.com/travis-ci/travis-ci/issues/9033 + sudo: required + script: tools/travis.sh - if: branch = master os: osx env: diff --git a/tools/travis.sh b/tools/travis.sh index 7c9df1c1..02dc306e 100755 --- a/tools/travis.sh +++ b/tools/travis.sh @@ -3,35 +3,50 @@ set -euo pipefail IFS=$'\n\t' -build_config () { +build_config_make() { cp contrib/config.make . make all-debug make update-docs && git diff --exit-code make test make test TEST_OPTS=valgrind - if [ $CC = clang ]; then make test-address-sanitizer; fi - make DESTDIR=/tmp/bare-destdir install install-doc - make DESTDIR=/tmp/bare-destdir uninstall - test ! -d /tmp/bare-destdir + make prefix=/tmp/bare-prefix install install-doc /tmp/bare-prefix/bin/tig --version make prefix=/tmp/bare-prefix uninstall test ! -d /tmp/bare-prefix + make distclean } -build_autoconf () { +build_autoconf() { make dist ./configure --prefix=/tmp/conf-prefix - make V=1 TEST_SHELL=bash all test install install-doc + make V=1 TEST_SHELL=bash all test + + make install install-doc /tmp/conf-prefix/bin/tig --version make uninstall test ! -d /tmp/conf-prefix + + make DESTDIR=/tmp/bare-destdir install install-doc + /tmp/bare-destdir/tmp/conf-prefix/bin/tig --version + make DESTDIR=/tmp/bare-destdir uninstall + test ! -d /tmp/bare-destdir + make clean } -if [[ $TRAVIS_TIG = config ]]; then - build_config -elif [[ $TRAVIS_TIG = autoconf ]]; then - build_autoconf -fi +build_address_sanitizer() { + cp contrib/config.make . + make test-address-sanitizer +} + +case "$TIG_BUILD" in + config.make) build_config_make ;; + autoconf) build_autoconf ;; + address-sanitizer) build_address_sanitizer ;; + + *) + echo "Unknown config: $TIG_BUILD" + exit 1 +esac |