From b24c96189df25df19a164cd477ea634cf41b45d9 Mon Sep 17 00:00:00 2001 From: Robert Bragg Date: Wed, 7 Jul 2010 13:31:35 +0100 Subject: [PATCH] tests: no longer clean up state between tests Since we now run every test in a separate process there is no need to try and avoid state leakage between tests. This removes the code to cleanup all children of the stage and disconnect handlers from the stage paint signal. We now explicitly print a warning if the users tries to run multiple tests in one process. --- tests/conform/test-conform-common.c | 43 ++++++----------------------- 1 file changed, 9 insertions(+), 34 deletions(-) diff --git a/tests/conform/test-conform-common.c b/tests/conform/test-conform-common.c index fade7047e..d64c72f74 100644 --- a/tests/conform/test-conform-common.c +++ b/tests/conform/test-conform-common.c @@ -11,41 +11,16 @@ void test_conform_simple_fixture_setup (TestConformSimpleFixture *fixture, gconstpointer data) { - /* const TestConformSharedState *shared_state = data; */ - ClutterActor *stage = clutter_stage_get_default (); - GList *actors = clutter_container_get_children (CLUTTER_CONTAINER (stage)); - GList *tmp; - guint paint_handler; - guint paint_signal; - guint n_paint_handlers = 0; + static int counter = 0; - /* To help reduce leakage between unit tests, we destroy all children of the stage */ - for (tmp = actors; tmp != NULL; tmp = tmp->next) - { - ClutterActor *leaked_actor = tmp->data; - - if (g_test_verbose ()) - g_print ("Freeing leaked actor %p\n", leaked_actor); - clutter_actor_destroy (leaked_actor); - } - - /* Some of the tests leave the paint signal connected to the default - stage which causes problems for subsequent tests. This forcibly - disconnects all paint handlers. We can't use - g_signal_handlers_disconnect_matched because for some reason that - doesn't let you pass just G_SIGNAL_MATCH_ID. */ - paint_signal = g_signal_lookup ("paint", CLUTTER_TYPE_ACTOR); - while ((paint_handler = g_signal_handler_find (stage, - G_SIGNAL_MATCH_ID, - paint_signal, - 0, NULL, NULL, NULL))) - { - g_signal_handler_disconnect (stage, paint_handler); - n_paint_handlers++; - } - if (g_test_verbose () && n_paint_handlers > 0) - g_print ("Disconnecting %i leaked paint handler%s\n", - n_paint_handlers, n_paint_handlers == 1 ? "" : "s"); + if (counter != 0) + g_critical ("We don't support running more than one test at a time\n" + "in a single test run due to the state leakage that often\n" + "causes subsequent tests to fail.\n" + "\n" + "If you want to run all the tests you should run\n" + "$ make test-report"); + counter++; }