meson.build: make valgrind optional
authorPeter Hutterer <peter.hutterer@who-t.net>
Fri, 15 Mar 2019 00:23:25 +0000 (10:23 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Fri, 15 Mar 2019 04:10:39 +0000 (04:10 +0000)
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 <peter.hutterer@who-t.net>
.gitlab-ci.yml
meson.build

index 306c1f6..cd826c7 100644 (file)
@@ -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"
index 6e1e559..cb3218b 100644 (file)
@@ -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)