Blame SOURCES/0036-tests-Add-setup-mode-to-run-tests-using-valgrind.patch

73b847
From 47cb10a9c1e15b2782f1efd4b7d27bd0481324b6 Mon Sep 17 00:00:00 2001
73b847
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
73b847
Date: Tue, 26 Nov 2019 18:50:18 +0100
73b847
Subject: [PATCH 036/181] tests: Add setup mode to run tests using valgrind
73b847
73b847
In such case we need to ignore the python errors, so including a suppression
73b847
file when using --setup=valgrind.
73b847
---
73b847
 tests/meson.build          | 16 +++++++++++
73b847
 tests/valgrind-python.supp | 55 ++++++++++++++++++++++++++++++++++++++
73b847
 2 files changed, 71 insertions(+)
73b847
 create mode 100644 tests/valgrind-python.supp
73b847
73b847
diff --git a/tests/meson.build b/tests/meson.build
73b847
index 1645028..0fe8096 100644
73b847
--- a/tests/meson.build
73b847
+++ b/tests/meson.build
73b847
@@ -54,3 +54,19 @@ if gdb.found()
73b847
                 gdb.path())
73b847
         ])
73b847
 endif
73b847
+
73b847
+valgrind = find_program('valgrind', required: false)
73b847
+if valgrind.found()
73b847
+    glib_share = glib_dep.get_pkgconfig_variable('prefix') / 'share' / glib_dep.name()
73b847
+    glib_suppressions = glib_share + '/valgrind/glib.supp'
73b847
+    python_suppressions = '@0@/@1@'.format(meson.source_root(),
73b847
+        files('valgrind-python.supp')[0])
73b847
+    add_test_setup('valgrind',
73b847
+        timeout_multiplier: 10,
73b847
+        env: [
73b847
+            'G_SLICE=always-malloc',
73b847
+            ('LIBFPRINT_TEST_WRAPPER=@0@ --tool=memcheck --leak-check=full ' +
73b847
+             '--suppressions=@1@ --suppressions=@2@').format(
73b847
+                valgrind.path(), glib_suppressions, python_suppressions)
73b847
+        ])
73b847
+endif
73b847
diff --git a/tests/valgrind-python.supp b/tests/valgrind-python.supp
73b847
new file mode 100644
73b847
index 0000000..395e801
73b847
--- /dev/null
73b847
+++ b/tests/valgrind-python.supp
73b847
@@ -0,0 +1,55 @@
73b847
+{
73b847
+   ignore_py_cond
73b847
+   Memcheck:Cond
73b847
+   ...
73b847
+   fun:Py*
73b847
+}
73b847
+
73b847
+{
73b847
+   ignore__py_cond
73b847
+   Memcheck:Cond
73b847
+   ...
73b847
+   fun:_Py*
73b847
+}
73b847
+
73b847
+{
73b847
+   ignore_py_value8
73b847
+   Memcheck:Value8
73b847
+   ...
73b847
+   fun:Py*
73b847
+}
73b847
+
73b847
+{
73b847
+   ignore__py_value8
73b847
+   Memcheck:Value8
73b847
+   ...
73b847
+   fun:_Py*
73b847
+}
73b847
+
73b847
+{
73b847
+   ignore_py_addr4
73b847
+   Memcheck:Addr4
73b847
+   ...
73b847
+   fun:Py*
73b847
+}
73b847
+
73b847
+{
73b847
+   ignore__py_addr4
73b847
+   Memcheck:Addr4
73b847
+   ...
73b847
+   fun:_Py*
73b847
+}
73b847
+
73b847
+{
73b847
+   ignore_py_leaks
73b847
+   Memcheck:Leak
73b847
+   ...
73b847
+   fun:Py*
73b847
+}
73b847
+
73b847
+{
73b847
+   ignore__py_leaks
73b847
+   Memcheck:Leak
73b847
+   ...
73b847
+   fun:_Py*
73b847
+}
73b847
-- 
73b847
2.24.1
73b847