Skip to content
Snippets Groups Projects
Commit bd0218c3 authored by Julian Bouzas's avatar Julian Bouzas
Browse files

tests: base-test-fixure: make sure core is done before destroying it

parent 522d3222
No related branches found
No related tags found
No related merge requests found
...@@ -92,11 +92,32 @@ wp_base_test_fixture_setup (WpBaseTestFixture * self, WpBaseTestFlags flags) ...@@ -92,11 +92,32 @@ wp_base_test_fixture_setup (WpBaseTestFixture * self, WpBaseTestFlags flags)
} }
} }
static void
done_callback (WpCore *core, GAsyncResult *res, WpBaseTestFixture *self)
{
g_autoptr (GError) error = NULL;
g_assert_true (wp_core_sync_finish (core, res, &error));
g_assert_null (error);
g_main_loop_quit (self->loop);
}
static void static void
wp_base_test_fixture_teardown (WpBaseTestFixture * self) wp_base_test_fixture_teardown (WpBaseTestFixture * self)
{ {
g_main_context_pop_thread_default (self->context); /* wait for all client core pending tasks to be done */
if (self->client_core && wp_core_is_connected (self->client_core)) {
wp_core_sync (self->client_core, NULL, (GAsyncReadyCallback) done_callback,
self);
g_main_loop_run (self->loop);
}
/* wait for all core pending tasks to be done */
if (self->core && wp_core_is_connected (self->core)) {
wp_core_sync (self->core, NULL, (GAsyncReadyCallback) done_callback, self);
g_main_loop_run (self->loop);
}
g_main_context_pop_thread_default (self->context);
g_clear_object (&self->client_core); g_clear_object (&self->client_core);
g_clear_object (&self->core); g_clear_object (&self->core);
g_clear_pointer (&self->timeout_source, g_source_unref); g_clear_pointer (&self->timeout_source, g_source_unref);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment