From ae7a213628ffdde8d117e50efef27986b496e77d Mon Sep 17 00:00:00 2001 From: Mathieu Duponchelle Date: Thu, 12 Apr 2018 18:50:35 +0200 Subject: [PATCH] valgrind suppressions: ignore XInitThreads leaks As we load that symbol dynamically, valgrind gets confused when it leaks and reports the leak against an unrelated library and an unknown (??) symbol. To address that, put the loading and calling of that symbol in a separate function, and ignore any malloc leak happening in that function. --- tests/check/generic/states.c | 21 ++++++++++++++++----- tests/check/gst-plugins-base.supp | 9 +++++++++ 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/tests/check/generic/states.c b/tests/check/generic/states.c index 11679164c0..bd33b4126b 100644 --- a/tests/check/generic/states.c +++ b/tests/check/generic/states.c @@ -203,12 +203,14 @@ GST_START_TEST (test_state_changes_down_seq) GST_END_TEST; - -static Suite * -states_suite (void) +/* Separate function because XInitThreads leaks, but valgrind + * gets confused when a dynamically loaded symbol leaks, and + * shows it as a ??? symbol in an unrelated library, making + * it awkward to ignore in the suppression files + */ +static void +call_xinitthreads (void) { - Suite *s = suite_create ("states_base"); - TCase *tc_chain = tcase_create ("general"); GModule *libx11; libx11 = @@ -220,6 +222,15 @@ states_suite (void) } g_module_close (libx11); } +} + +static Suite * +states_suite (void) +{ + Suite *s = suite_create ("states_base"); + TCase *tc_chain = tcase_create ("general"); + + call_xinitthreads (); suite_add_tcase (s, tc_chain); tcase_add_checked_fixture (tc_chain, setup, teardown); diff --git a/tests/check/gst-plugins-base.supp b/tests/check/gst-plugins-base.supp index 3e923c8b76..0c92fbccf2 100644 --- a/tests/check/gst-plugins-base.supp +++ b/tests/check/gst-plugins-base.supp @@ -569,3 +569,12 @@ fun:glXChooseFBConfig fun:gst_gl_context_glx_choose_format } +{ + + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + ... + fun:call_xinitthreads + fun:states_suite +}