context/test: Add 'run-tests' signal that can replace g_test_run()

For tests that doesn't use g_test_run().

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861>
This commit is contained in:
Jonas Ådahl 2021-03-02 18:51:05 +01:00
parent 03242a4e2a
commit f61c1a1be1

View File

@ -37,6 +37,7 @@
enum
{
BEFORE_TESTS,
RUN_TESTS,
AFTER_TESTS,
N_SIGNALS
};
@ -162,7 +163,15 @@ run_tests_idle (gpointer user_data)
int ret;
g_signal_emit (context, signals[BEFORE_TESTS], 0);
ret = g_test_run ();
if (g_signal_has_handler_pending (context, signals[RUN_TESTS], 0, TRUE))
{
g_signal_emit (context, signals[RUN_TESTS], 0, &ret);
g_assert (ret == 1 || ret == 0);
}
else
{
ret = g_test_run ();
}
g_signal_emit (context, signals[AFTER_TESTS], 0);
if (ret != 0)
@ -246,6 +255,14 @@ meta_context_test_class_init (MetaContextTestClass *klass)
NULL, NULL, NULL,
G_TYPE_NONE,
0);
signals[RUN_TESTS] =
g_signal_new ("run-tests",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST,
0,
NULL, NULL, NULL,
G_TYPE_INT,
0);
signals[AFTER_TESTS] =
g_signal_new ("after-tests",
G_TYPE_FROM_CLASS (klass),