From 0cd3d5741b9208747c974ce990a29dcdd25367e7 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 24 Mar 2016 18:59:54 +0100 Subject: [PATCH] gio/tests/task: Ensure that g_task_had_error doesn't forget the error https://bugzilla.gnome.org/show_bug.cgi?id=764163 --- gio/tests/task.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gio/tests/task.c b/gio/tests/task.c index 66221a9d3..60ca2847a 100644 --- a/gio/tests/task.c +++ b/gio/tests/task.c @@ -78,6 +78,8 @@ basic_callback (GObject *object, *result_out = g_task_propagate_int (G_TASK (result), &error); g_assert_no_error (error); + g_assert (!g_task_had_error (G_TASK (result))); + g_main_loop_quit (loop); } @@ -143,6 +145,8 @@ error_callback (GObject *object, g_assert_error (error, G_IO_ERROR, G_IO_ERROR_FAILED); g_error_free (error); + g_assert (g_task_had_error (G_TASK (result))); + g_main_loop_quit (loop); } @@ -223,6 +227,8 @@ same_callback (GObject *object, *result_out = g_task_propagate_boolean (G_TASK (result), &error); g_assert_no_error (error); + g_assert (!g_task_had_error (G_TASK (result))); + g_main_loop_quit (loop); } @@ -284,6 +290,8 @@ toplevel_callback (GObject *object, *result_out = g_task_propagate_boolean (G_TASK (result), &error); g_assert_no_error (error); + g_assert (!g_task_had_error (G_TASK (result))); + g_main_loop_quit (loop); } @@ -340,6 +348,8 @@ anon_callback (GObject *object, *result_out = g_task_propagate_int (G_TASK (result), &error); g_assert_no_error (error); + g_assert (!g_task_had_error (G_TASK (result))); + g_main_loop_quit (loop); } @@ -413,6 +423,8 @@ wrong_callback (GObject *object, *result_out = g_task_propagate_int (G_TASK (result), &error); g_assert_no_error (error); + g_assert (!g_task_had_error (G_TASK (result))); + g_main_loop_quit (loop); } @@ -515,6 +527,8 @@ report_callback (GObject *object, g_assert_cmpint (ret, ==, -1); g_error_free (error); + g_assert (g_task_had_error (G_TASK (result))); + *weak_pointer = result; g_object_add_weak_pointer (G_OBJECT (result), weak_pointer); g_signal_connect (result, "notify::completed", @@ -559,6 +573,8 @@ priority_callback (GObject *object, g_task_propagate_boolean (G_TASK (result), &error); g_assert_no_error (error); + g_assert (!g_task_had_error (G_TASK (result))); + *ret_out = ++counter; if (counter == 3) @@ -699,6 +715,8 @@ return_if_cancelled_callback (GObject *object, g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CANCELLED); g_clear_error (&error); + g_assert (g_task_had_error (G_TASK (result))); + g_main_loop_quit (loop); } @@ -780,6 +798,8 @@ run_in_thread_callback (GObject *object, g_assert_no_error (error); g_assert_cmpint (ret, ==, magic); + g_assert (!g_task_had_error (G_TASK (result))); + *done = TRUE; g_main_loop_quit (loop); } @@ -901,6 +921,8 @@ test_run_in_thread_sync (void) g_assert_no_error (error); g_assert_cmpint (ret, ==, magic); + g_assert (!g_task_had_error (task)); + g_object_unref (task); } @@ -929,6 +951,8 @@ quit_main_loop_callback (GObject *object, g_assert_no_error (error); g_assert_cmpint (ret, ==, TRUE); + g_assert (!g_task_had_error (G_TASK (result))); + g_main_loop_quit (loop); } @@ -1221,6 +1245,8 @@ return_on_cancel_callback (GObject *object, g_clear_error (&error); g_assert_cmpint (ret, ==, -1); + g_assert (g_task_had_error (G_TASK (result))); + *callback_ran = TRUE; g_main_loop_quit (loop); } @@ -1541,6 +1567,8 @@ return_on_cancel_atomic_callback (GObject *object, g_clear_error (&error); g_assert_cmpint (ret, ==, -1); + g_assert (g_task_had_error (G_TASK (result))); + *callback_ran = TRUE; g_main_loop_quit (loop); } @@ -1805,6 +1833,8 @@ keepalive_callback (GObject *object, *result_out = g_task_propagate_int (G_TASK (result), &error); g_assert_no_error (error); + g_assert (!g_task_had_error (G_TASK (result))); + g_main_loop_quit (loop); }