From b8366c5497b405d777edf1759dbe18d0a463b913 Mon Sep 17 00:00:00 2001 From: Evgeny Vereshchagin Date: Sun, 2 Dec 2018 07:39:18 +0100 Subject: [PATCH 1/2] travis: also run the tests built with clang under ASan+UBsan --- .travis.yml | 18 ++++++++++++++++++ travis-ci/managers/fedora.sh | 9 ++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0bb2808972..f2128ea1a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -72,6 +72,24 @@ jobs: after_script: - $CI_MANAGERS/fedora.sh CLEANUP + - name: Fedora Latest (clang ASan+UBSan) + language: bash + env: + - FEDORA_RELEASE="latest" + - CONT_NAME="systemd-fedora-$FEDORA_RELEASE" + - DOCKER_EXEC="docker exec -ti $CONT_NAME" + before_install: + - sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce + - docker --version + install: + - $CI_MANAGERS/fedora.sh SETUP + script: + - set -e + - $CI_MANAGERS/fedora.sh RUN_CLANG_ASAN + - set +e + after_script: + - $CI_MANAGERS/fedora.sh CLEANUP + - stage: Coverity language: bash env: diff --git a/travis-ci/managers/fedora.sh b/travis-ci/managers/fedora.sh index 1faf5b9225..dc9d93efdb 100755 --- a/travis-ci/managers/fedora.sh +++ b/travis-ci/managers/fedora.sh @@ -57,9 +57,12 @@ for phase in "${PHASES[@]}"; do $DOCKER_EXEC ninja -v -C build $DOCKER_EXEC ninja -C build test ;; - RUN_ASAN) - $DOCKER_EXEC git clean -dxff - $DOCKER_EXEC meson --werror -Dtests=unsafe -Db_sanitize=address,undefined build + RUN_ASAN|RUN_CLANG_ASAN) + if [[ "$phase" = "RUN_CLANG_ASAN" ]]; then + ENV_VARS="-e CC=clang -e CXX=clang++" + MESON_ARGS="-Db_lundef=false" # See https://github.com/mesonbuild/meson/issues/764 + fi + docker exec $ENV_VARS -it $CONT_NAME meson --werror -Dtests=unsafe -Db_sanitize=address,undefined $MESON_ARGS build $DOCKER_EXEC ninja -v -C build # Never remove halt_on_error from UBSAN_OPTIONS. See https://github.com/systemd/systemd/commit/2614d83aa06592aedb. From 05b36f1f65b5da639fe372beb0308751a55d6d8a Mon Sep 17 00:00:00 2001 From: Evgeny Vereshchagin Date: Sun, 2 Dec 2018 07:56:03 +0100 Subject: [PATCH 2/2] travis: install llvm to get llvm-symbolizer See https://clang.llvm.org/docs/AddressSanitizer.html#symbolizing-the-reports --- travis-ci/managers/fedora.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/travis-ci/managers/fedora.sh b/travis-ci/managers/fedora.sh index dc9d93efdb..760ed5b1ea 100755 --- a/travis-ci/managers/fedora.sh +++ b/travis-ci/managers/fedora.sh @@ -15,7 +15,7 @@ CONT_NAME="${CONT_NAME:-fedora-$FEDORA_RELEASE-$RANDOM}" DOCKER_EXEC="${DOCKER_EXEC:-docker exec -it $CONT_NAME}" DOCKER_RUN="${DOCKER_RUN:-docker run}" REPO_ROOT="${REPO_ROOT:-$PWD}" -ADDITIONAL_DEPS=(dnf-plugins-core python2 iputils hostname libasan python3-pyparsing python3-evdev libubsan clang) +ADDITIONAL_DEPS=(dnf-plugins-core python2 iputils hostname libasan python3-pyparsing python3-evdev libubsan clang llvm) function info() { echo -e "\033[33;1m$1\033[0m"