gtestutils: move "/subprocess" path special-casing

https://bugzilla.gnome.org/show_bug.cgi?id=754284
This commit is contained in:
Dan Winship 2014-03-14 14:57:51 -04:00
parent 91ff2ba844
commit 51c91ed53d

View File

@ -2076,28 +2076,6 @@ test_case_run (GTestCase *tc)
old_free_list = test_filename_free_list;
test_filename_free_list = &filename_free_list;
if (strstr (test_run_name, "/subprocess"))
{
GSList *iter;
gboolean found = FALSE;
for (iter = test_paths; iter; iter = iter->next)
{
if (!strcmp (test_run_name, iter->data))
{
found = TRUE;
break;
}
}
if (!found)
{
if (g_test_verbose ())
g_print ("GTest: skipping: %s\n", test_run_name);
goto out;
}
}
if (++test_run_count <= test_startup_skip_count)
g_test_log (G_TEST_LOG_SKIP_CASE, test_run_name, NULL, 0, NULL);
else if (test_run_list)
@ -2144,7 +2122,6 @@ test_case_run (GTestCase *tc)
g_timer_destroy (test_run_timer);
}
out:
g_slist_free_full (filename_free_list, g_free);
test_filename_free_list = old_free_list;
g_free (test_uri_base);
@ -2165,6 +2142,23 @@ path_has_prefix (const char *path,
path[prefix_len] == '/'));
}
static gboolean
test_should_run (const char *test_path,
const char *cmp_path)
{
if (strstr (test_run_name, "/subprocess"))
{
if (g_strcmp0 (test_path, cmp_path) == 0)
return TRUE;
if (g_test_verbose ())
g_print ("GTest: skipping: %s\n", test_run_name);
return FALSE;
}
return !cmp_path || path_has_prefix (test_path, cmp_path);
}
/* Recurse through @suite, running tests matching @path (or all tests
* if @path is %NULL).
*/
@ -2185,7 +2179,7 @@ g_test_run_suite_internal (GTestSuite *suite,
GTestCase *tc = iter->data;
test_run_name = g_build_path ("/", old_name, tc->name, NULL);
if (!path || path_has_prefix (test_run_name, path))
if (test_should_run (test_run_name, path))
{
if (!test_case_run (tc))
n_bad++;