]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Merge pull request #10678 from evverx/more-travis-tweaks
authorEvgeny Vereshchagin <evvers@ya.ru>
Thu, 8 Nov 2018 22:43:57 +0000 (01:43 +0300)
committerGitHub <noreply@github.com>
Thu, 8 Nov 2018 22:43:57 +0000 (01:43 +0300)
travis: also rebuild everything with ASan and UBSan and install dependencies necessary for running parse-hwdb.py

.travis.yml
src/test/test-sd-hwdb.c
travis-ci/managers/fedora.sh

index 724504568eb8c973ba8296e16b528fe6bc75743e..ce5d099660a7fdb84adb96868edbe4ae1294034c 100644 (file)
@@ -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:
index b67a8537bf34ea27087d12ca230ef9deb2a4cb49..17ca6a0e279861e5305f595a6dfa1d41b16846df 100644 (file)
@@ -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;
index 3ee11050676b46bb5e7e7ccbfbfc5f34abc68556..742b7c94a47fccd6954186ed28dafb1e9ed7dd1d 100755 (executable)
@@ -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