meson.build: add the valgrind test setup, exclude python tests
authorPeter Hutterer <peter.hutterer@who-t.net>
Wed, 22 Jul 2020 23:04:10 +0000 (09:04 +1000)
committerRan Benita <ran@unusedvar.com>
Sat, 25 Jul 2020 08:01:49 +0000 (11:01 +0300)
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>
.github/workflows/main.yml
meson.build

index 5c56dbb..f23e77a 100644 (file)
@@ -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
index 7f566e8..df86c7c 100644 (file)
@@ -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)