From b8123db0df7f1d358bcd2a1cc984095f4091fe61 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 15 Mar 2019 10:23:25 +1000 Subject: [PATCH] meson.build: make valgrind optional Now that we're providing the test suite as installed option, distributions will likely include it as a test package. valgrind is only used for the meson-specifc test setup. So let's make it optional. Signed-off-by: Peter Hutterer --- .gitlab-ci.yml | 8 +++++--- meson.build | 30 +++++++++++++++++------------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 306c1f6..cd826c7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -42,9 +42,9 @@ variables: # See the documentation here: # # https://wayland.freedesktop.org/libinput/doc/latest/building_libinput.html # ############################################################################### - FEDORA_RPMS: 'git gcc gcc-c++ pkgconf-pkg-config meson check-devel libudev-devel libevdev-devel doxygen graphviz python3-sphinx python3-recommonmark valgrind libwacom-devel cairo-devel gtk3-devel glib2-devel mtdev-devel' - UBUNTU_DEBS: 'git gcc g++ pkg-config meson check libudev-dev libevdev-dev doxygen graphviz python3-sphinx python3-recommonmark python3-sphinx-rtd-theme valgrind libwacom-dev libcairo2-dev libgtk-3-dev libglib2.0-dev libmtdev-dev' - ARCH_PKGS: 'git gcc pkgconfig meson check libsystemd libevdev doxygen graphviz python-sphinx python-recommonmark valgrind libwacom gtk3 mtdev diffutils' + FEDORA_RPMS: 'git gcc gcc-c++ pkgconf-pkg-config meson check-devel libudev-devel libevdev-devel doxygen graphviz python3-sphinx python3-recommonmark libwacom-devel cairo-devel gtk3-devel glib2-devel mtdev-devel' + UBUNTU_DEBS: 'git gcc g++ pkg-config meson check libudev-dev libevdev-dev doxygen graphviz python3-sphinx python3-recommonmark python3-sphinx-rtd-theme libwacom-dev libcairo2-dev libgtk-3-dev libglib2.0-dev libmtdev-dev' + ARCH_PKGS: 'git gcc pkgconfig meson check libsystemd libevdev doxygen graphviz python-sphinx python-recommonmark libwacom gtk3 mtdev diffutils' FREEBSD_BUILD_PKGS: 'meson' FREEBSD_PKGS: 'libepoll-shim libudev-devd libevdev libwacom gtk3 libmtdev ' ############################ end of package lists ############################# @@ -598,6 +598,8 @@ fedora:29@valgrind: extends: .fedora-build@template variables: FEDORA_VERSION: 29 + before_script: + - dnf install -y valgrind # note: we override the default_build here by providing a new script script: - rm -rf "$MESON_BUILDDIR" diff --git a/meson.build b/meson.build index 6e1e559..cb3218b 100644 --- a/meson.build +++ b/meson.build @@ -665,7 +665,6 @@ endif # dependencies if get_option('tests') dep_check = dependency('check', version : '>= 0.9.10') - valgrind = find_program('valgrind') leftover_rules = find_program('test/check-leftover-udev-rules.sh') test('leftover-rules', leftover_rules, is_parallel : false) @@ -865,18 +864,23 @@ if get_option('tests') libinput_test_runner, args: ['--filter-deviceless']) - valgrind_env = environment() - valgrind_env.set('CK_FORK', 'no') - valgrind_env.set('USING_VALGRIND', '1') - valgrind_suppressions_file = join_paths(dir_src_test, 'valgrind.suppressions') - add_test_setup('valgrind', - exe_wrapper : [ valgrind, - '--leak-check=full', - '--gen-suppressions=all', - '--error-exitcode=3', - '--suppressions=' + valgrind_suppressions_file ], - env : valgrind_env, - timeout_multiplier : 100) + valgrind = find_program('valgrind', required : false) + if valgrind.found() + valgrind_env = environment() + valgrind_env.set('CK_FORK', 'no') + valgrind_env.set('USING_VALGRIND', '1') + valgrind_suppressions_file = join_paths(dir_src_test, 'valgrind.suppressions') + add_test_setup('valgrind', + exe_wrapper : [ valgrind, + '--leak-check=full', + '--gen-suppressions=all', + '--error-exitcode=3', + '--suppressions=' + valgrind_suppressions_file ], + env : valgrind_env, + timeout_multiplier : 100) + else + message('valgrind not found, disabling valgrind test suite') + endif configure_file(output : 'litest-config.h', install : false, configuration : litest_config_h) -- 2.7.4