[pacman-dev] [PATCH] pactest: add environment option to run tests with valgrind

Eli Schwartz eschwartz at archlinux.org
Tue Nov 26 00:26:44 UTC 2019


In autotools, if we wanted to run tests with valgrind, we used some Make
magic which passed arguments to pactest.py, but that doesn't work in
meson, because all arguments are encoded at configure time. Instead,
let's short-circuit the build runner logic entirely, and teach pactest
to default to running valgrind, when it detects an environment variable
set independent of the build system.

To run the tests with valgrind, we can now use:

PACTEST_VALGRIND=1 meson test -C builddir/

or

PACTEST_VALGRIND=1 make check

It is also possible, but confusing/inconsistent, to use

make check PY_LOG_FLAGS=--valgrind

We *could* add a meson option -Dvalgrind=true, but that is annoying to
reconfigure between test runs, and overall the consensus is it seems
simpler to opt in each time we want to run valgrind, as was already the
case.

Signed-off-by: Eli Schwartz <eschwartz at archlinux.org>
---
 test/pacman/pactest.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/test/pacman/pactest.py b/test/pacman/pactest.py
index a5891d17..3414f4cc 100755
--- a/test/pacman/pactest.py
+++ b/test/pacman/pactest.py
@@ -96,7 +96,7 @@ def create_parser():
                       dest = "gdb", default = False,
                       help = "use gdb while calling pacman")
     parser.add_option("--valgrind", action = "store_true",
-                      dest = "valgrind", default = False,
+                      dest = "valgrind", default = os.getenv('PACTEST_VALGRIND'),
                       help = "use valgrind while calling pacman")
     parser.add_option("--manual-confirm", action = "store_true",
                       dest = "manualconfirm", default = False,
-- 
2.24.0


More information about the pacman-dev mailing list