From fe3169182c3757e0cc795d783676f8939ae5e45d Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 4 Jul 2017 14:27:45 +1000 Subject: [PATCH] meson: fix valgrind setup The previous approach had no effect, it wasn't doing things correctly. Add a proper valgrind setup, run with: mesontest --setup=valgrind Signed-off-by: Peter Hutterer [fixed rebase conflict] Signed-off-by: Benjamin Tissoires --- circle.yml | 4 ++-- meson.build | 25 +++++++++++++++++-------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/circle.yml b/circle.yml index 8fb6c33a..37450f2f 100644 --- a/circle.yml +++ b/circle.yml @@ -38,7 +38,7 @@ fedora_settings: &fedora_settings steps: - run: name: Install prerequisites - command: dnf install -y tree git gcc gcc-c++ meson check-devel libudev-devel libevdev-devel doxygen graphviz + command: dnf install -y tree git gcc gcc-c++ meson check-devel libudev-devel libevdev-devel doxygen graphviz valgrind - checkout - *build_and_test - *install @@ -56,7 +56,7 @@ ubuntu_settings: &ubuntu_settings apt-get install -y software-properties-common add-apt-repository universe apt-get update - apt-get install -y tree git gcc g++ pkg-config meson check libudev-dev libevdev-dev libsystemd-dev doxygen graphviz + apt-get install -y tree git gcc g++ pkg-config meson check libudev-dev libevdev-dev libsystemd-dev doxygen graphviz valgrind - checkout - *build_and_test - *install diff --git a/meson.build b/meson.build index 4e5cfe5b..c6021758 100644 --- a/meson.build +++ b/meson.build @@ -301,11 +301,8 @@ if enable_tests dep_check = dependency('check', version: '>= 0.9.10') config_h.set('BUILD_TESTS', '1') - env_test = ['RATBAG_TEST=1'] - valgrind_args = [ '--leak-check=full', - '--quiet', - '--error-exitcode=3', - '--suppressions=@0@/test/valgrind.suppressions'.format(meson.current_source_dir()) ] + env_test = environment() + env_test.set('RATBAG_TEST', '1') test_context = executable('test-context', ['test/test-context.c'], @@ -324,9 +321,21 @@ if enable_tests dep_libutil], include_directories : include_directories('src'), install : false) - test('test-context', test_context, env : env_test, valgrind_args : valgrind_args) - test('test-device', test_device, env : env_test, valgrind_args : valgrind_args) - test('test-iconv-helper', test_iconv_helper, env : env_test, valgrind_args : valgrind_args) + test('test-context', test_context, env : env_test) + test('test-device', test_device, env : env_test) + test('test-iconv-helper', test_iconv_helper, env : env_test) + + valgrind = find_program('valgrind') + valgrind_suppressions_file = join_paths(meson.source_root(), 'test', 'valgrind.suppressions') + add_test_setup('valgrind', + exe_wrapper : [ + valgrind, + '--leak-check=full', + '--quiet', + '--error-exitcode=3', + '--suppressions=' + valgrind_suppressions_file ], + env : env_test, + timeout_multiplier: 100) executable('test-build-cxx', ['test/build-cxx.cc'],