1
0
Fork 0
mutter-performance-source/tests/conform/test-conform-common.c

64 lines
2 KiB
C
Raw Normal View History

#include <clutter/clutter.h>
#include "test-conform-common.h"
/**
* test_conform_simple_fixture_setup:
*
* Initialise stuff before each test is run
*/
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;
/* 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");
}
/**
* test_conform_simple_fixture_teardown:
*
* Cleanup stuff after each test has finished
*/
void
test_conform_simple_fixture_teardown (TestConformSimpleFixture *fixture,
gconstpointer data)
{
/* const TestConformSharedState *shared_state = data; */
}