From 5e7a7aeaf1dba3c81e2c67fd5316d3271fda4827 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Sun, 9 Feb 2014 16:38:10 +0000 Subject: [PATCH] check: add support for blacklisting checks via GST_CHECKS_IGNORE --- libs/gst/check/gstcheck.c | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/libs/gst/check/gstcheck.c b/libs/gst/check/gstcheck.c index e7135ff..92ad5a8 100644 --- a/libs/gst/check/gstcheck.c +++ b/libs/gst/check/gstcheck.c @@ -697,18 +697,26 @@ gst_check_run_suite (Suite * suite, const gchar * name, const gchar * fname) return nf; } -gboolean -_gst_check_run_test_func (const gchar * func_name) +static gboolean +gst_check_have_checks_list (const gchar * env_var_name) +{ + const gchar *env_val; + + env_val = g_getenv (env_var_name); + return (env_val != NULL && *env_val != '\0'); +} + +static gboolean +gst_check_func_is_in_list (const gchar * env_var, const gchar * func_name) { const gchar *gst_checks; gboolean res = FALSE; gchar **funcs, **f; - gst_checks = g_getenv ("GST_CHECKS"); + gst_checks = g_getenv (env_var); - /* no filter specified => run all checks */ if (gst_checks == NULL || *gst_checks == '\0') - return TRUE; + return FALSE; /* only run specified functions */ funcs = g_strsplit (gst_checks, ",", -1); @@ -722,6 +730,21 @@ _gst_check_run_test_func (const gchar * func_name) return res; } +gboolean +_gst_check_run_test_func (const gchar * func_name) +{ + /* if we have a whitelist, run it only if it's in the whitelist */ + if (gst_check_have_checks_list ("GST_CHECKS")) + return gst_check_func_is_in_list ("GST_CHECKS", func_name); + + /* if we have a blacklist, run it only if it's not in the blacklist */ + if (gst_check_have_checks_list ("GST_CHECKS_IGNORE")) + return !gst_check_func_is_in_list ("GST_CHECKS_IGNORE", func_name); + + /* no filter specified => run all checks */ + return TRUE; +} + /** * gst_check_setup_events_with_stream_id: * @srcpad: The src #GstPad to push on -- 2.7.4