]> git.mdlowis.com Git - proto/labwc.git/commitdiff
CI: add address sanitizer to Debian runtime tests
authorConsolatis <35009135+Consolatis@users.noreply.github.com>
Tue, 26 Nov 2024 02:08:07 +0000 (03:08 +0100)
committerConsolatis <35009135+Consolatis@users.noreply.github.com>
Tue, 26 Nov 2024 05:12:46 +0000 (06:12 +0100)
.github/workflows/build.yml
scripts/asan_leak_suppressions [new file with mode: 0644]
scripts/ci/smoke-test.sh

index 8f773524398467a72fac9b6f99e94098d0d6a77c..2cc66e3e8d94421ef9ca181b8029a71e118bb5a0 100644 (file)
@@ -186,9 +186,9 @@ jobs:
           echo '
             cd "$GITHUB_WORKSPACE"
             export CC=gcc
-            meson setup build-gcc-ci -Dxwayland=enabled -Db_sanitize=undefined --werror
-            meson compile -C build-gcc-ci
-            scripts/ci/smoke-test.sh build-gcc-ci
+            meson setup build-gcc-gdb -Dxwayland=enabled -Db_sanitize=undefined --werror
+            meson compile -C build-gcc-gdb
+            scripts/ci/smoke-test.sh build-gcc-gdb
           ' | $TARGET
 
       - name: Build with clang - runtime test
@@ -197,9 +197,31 @@ jobs:
           echo '
             cd "$GITHUB_WORKSPACE"
             export CC=clang
-            meson setup build-clang-ci -Dxwayland=enabled -Db_sanitize=undefined --werror
-            meson compile -C build-clang-ci
-            scripts/ci/smoke-test.sh build-clang-ci
+            meson setup build-clang-gdb -Dxwayland=enabled -Db_sanitize=undefined --werror
+            meson compile -C build-clang-gdb
+            scripts/ci/smoke-test.sh build-clang-gdb
+          ' | $TARGET
+
+      - name: Build with gcc - runtime leak test
+        if: matrix.name == 'Debian'
+        run: |
+          echo '
+            cd "$GITHUB_WORKSPACE"
+            export CC=gcc
+            meson setup build-gcc-leak -Dxwayland=enabled -Db_sanitize=address,undefined --werror
+            meson compile -C build-gcc-leak
+            LABWC_LEAK_TEST=1 scripts/ci/smoke-test.sh build-gcc-leak
+          ' | $TARGET
+
+      - name: Build with clang - runtime leak test
+        if: matrix.name == 'Debian'
+        run: |
+          echo '
+            cd "$GITHUB_WORKSPACE"
+            export CC=clang
+            meson setup build-clang-leak -Dxwayland=enabled -Db_sanitize=address,undefined --werror
+            meson compile -C build-clang-leak
+            LABWC_LEAK_TEST=1 scripts/ci/smoke-test.sh build-clang-leak
           ' | $TARGET
 
       # Void-musl doesn't support sanitizer
diff --git a/scripts/asan_leak_suppressions b/scripts/asan_leak_suppressions
new file mode 100644 (file)
index 0000000..6ac2d14
--- /dev/null
@@ -0,0 +1 @@
+leak:libfontconfig.so
index e366ceafdf70f14edc2209305915a80daaa1aaf9..d32ad4843586b82a4946b06bbdb8e621891e731f 100755 (executable)
@@ -1,6 +1,7 @@
 #!/usr/bin/env bash
 
 : ${LABWC_RUNS:=1}
+: ${LABWC_LEAK_TEST:=0}
 
 if ! test -x "$1/labwc"; then
        echo "$1/labwc not found"
@@ -44,6 +45,11 @@ gdb_run() {
 
 echo "Running with LABWC_RUNS=$LABWC_RUNS"
 
+if test "$LABWC_LEAK_TEST" != "0"; then
+       LSAN_OPTIONS=suppressions=scripts/asan_leak_suppressions "${args[@]}"
+       exit $?
+fi
+
 ret=0
 for((i=1; i<=LABWC_RUNS; i++)); do
        printf "Starting run %2s\n" $i