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