From: Evgeny Vereshchagin Date: Thu, 8 Nov 2018 22:43:57 +0000 (+0300) Subject: Merge pull request #10678 from evverx/more-travis-tweaks X-Git-Tag: v240~377 X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fsystemd.git;a=commitdiff_plain;h=911efe0fbf23ac51b2e8516dc02df3f8973ff758;hp=c2baf11c36441725e1d9abda8dbb2e4098b4f6e2 Merge pull request #10678 from evverx/more-travis-tweaks travis: also rebuild everything with ASan and UBSan and install dependencies necessary for running parse-hwdb.py --- diff --git a/.travis.yml b/.travis.yml index 724504568eb..ce5d099660a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,6 +36,24 @@ jobs: after_script: - $CI_MANAGERS/fedora.sh CLEANUP + - name: Fedora Rawhide (ASan+UBSan) + language: bash + env: + - FEDORA_RELEASE="rawhide" + - 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_ASAN + - set +e + after_script: + - $CI_MANAGERS/fedora.sh CLEANUP + - stage: Coverity language: bash env: diff --git a/src/test/test-sd-hwdb.c b/src/test/test-sd-hwdb.c index b67a8537bf3..17ca6a0e279 100644 --- a/src/test/test-sd-hwdb.c +++ b/src/test/test-sd-hwdb.c @@ -5,7 +5,7 @@ #include "tests.h" static int test_failed_enumerate(void) { - _cleanup_(sd_hwdb_unrefp) sd_hwdb *hwdb; + _cleanup_(sd_hwdb_unrefp) sd_hwdb *hwdb = NULL; const char *key, *value; int r; @@ -29,7 +29,7 @@ static int test_failed_enumerate(void) { "evdev:atkbd:dmi:bvnXXX:bvrYYY:bdZZZ:svnDellXXX:pnYYY" static void test_basic_enumerate(void) { - _cleanup_(sd_hwdb_unrefp) sd_hwdb *hwdb; + _cleanup_(sd_hwdb_unrefp) sd_hwdb *hwdb = NULL; const char *key, *value; size_t len1 = 0, len2 = 0; int r; diff --git a/travis-ci/managers/fedora.sh b/travis-ci/managers/fedora.sh index 3ee11050676..742b7c94a47 100755 --- a/travis-ci/managers/fedora.sh +++ b/travis-ci/managers/fedora.sh @@ -9,13 +9,13 @@ # export CONT_NAME="my-fancy-container" # travis-ci/managers/fedora.sh SETUP RUN CLEANUP -PHASES=(${@:-SETUP RUN CLEANUP}) +PHASES=(${@:-SETUP RUN RUN_ASAN CLEANUP}) FEDORA_RELEASE="${FEDORA_RELEASE:-rawhide}" 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) +ADDITIONAL_DEPS=(dnf-plugins-core python2 iputils hostname libasan python3-pyparsing python3-evdev libubsan) function info() { echo -e "\033[33;1m$1\033[0m" @@ -47,9 +47,17 @@ for phase in "${PHASES[@]}"; do # Build systemd $DOCKER_EXEC meson -Dslow-tests=true build $DOCKER_EXEC ninja -v -C build - # Run 'make check' $DOCKER_EXEC ninja -C build test ;; + RUN_ASAN) + $DOCKER_EXEC git clean -dxff + $DOCKER_EXEC meson -Db_sanitize=address,undefined build + $DOCKER_EXEC ninja -v -C build + $DOCKER_EXEC sh -c "printf '#!/bin/sh\necho The test is failing under ASan, skipping; exit 77' >/build/build/test-capability" + + # Never remove halt_on_error from UBSAN_OPTIONS. See https://github.com/systemd/systemd/commit/2614d83aa06592aedb. + $DOCKER_EXEC sh -c "UBSAN_OPTIONS=print_stacktrace=1:print_summary=1:halt_on_error=1 meson test --timeout-multiplier=3 -C ./build/ --print-errorlogs" + ;; CLEANUP) info "Cleanup phase" docker stop $CONT_NAME