Commit c3d42390f7b3a432cfff351c4296d1244691e0b5

Peter Hutterer 2020-07-23T09:04:10

meson.build: add the valgrind test setup, exclude python tests This way we can invoke the expected setup with meson test --setup=valgrind And because we don't care about valgrinding python script, mark that test as part of the "python-tests" suite and skip it during our CI valgrind run. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Ran Benita <ran@unusedvar.com>

diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 5c56dbb..f23e77a 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -34,7 +34,7 @@ jobs:
           meson compile -C build
       - name: Test
         run:
-          meson test -C build --print-errorlogs --wrapper="valgrind --leak-check=full --track-origins=yes --error-exitcode=99"
+          meson test -C build --print-errorlogs --setup=valgrind --no-suite python-tests
 
   macos:
     runs-on: macos-10.15
diff --git a/meson.build b/meson.build
index 7f566e8..df86c7c 100644
--- a/meson.build
+++ b/meson.build
@@ -480,6 +480,7 @@ test(
     'symbols-leak-test',
     find_program('test/symbols-leak-test.py'),
     env: test_env,
+    suite: ['python-tests'],
 )
 if get_option('enable-x11')
     test(
@@ -501,6 +502,20 @@ if get_option('enable-xkbregistry')
     )
 endif
 
+valgrind = find_program('valgrind', required: false)
+if valgrind.found()
+    add_test_setup('valgrind',
+        exe_wrapper: [valgrind,
+                       '--leak-check=full',
+                       '--track-origins=yes',
+                       '--gen-suppressions=all',
+                       '--error-exitcode=99'],
+        timeout_multiplier : 10)
+else
+    message('valgrind not found, disabling valgrind test setup')
+endif
+
+
 # Fuzzing target programs.
 executable('fuzz-keymap', 'fuzz/keymap/target.c', dependencies: test_dep)
 executable('fuzz-compose', 'fuzz/compose/target.c', dependencies: test_dep)