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>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
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)