From 0bba27eea981e90f3a16045c97355ebcabad9602 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Wed, 21 Sep 2022 11:13:39 +0100 Subject: [PATCH] gobject/tests: Exercise a floating object reaching last-unref This was previously exercised (probably by mistake) in gobject/tests/type.c, but without making any assertions about what happened, and the test would fail under G_ENABLE_DIAGNOSTIC if GLib was compiled with debug enabled. Signed-off-by: Simon McVittie --- gobject/tests/reference.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gobject/tests/reference.c b/gobject/tests/reference.c index c7afc8abd..92080b7ff 100644 --- a/gobject/tests/reference.c +++ b/gobject/tests/reference.c @@ -336,6 +336,20 @@ test_initially_unowned (void) g_assert_cmpint (obj->ref_count, ==, 1); g_object_unref (obj); + + if (g_test_undefined ()) + { + obj = g_object_new (G_TYPE_INITIALLY_UNOWNED, NULL); + +#ifdef G_ENABLE_DEBUG + g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, + "A floating object GInitiallyUnowned * was finalized*"); +#endif + g_object_unref (obj); +#ifdef G_ENABLE_DEBUG + g_test_assert_expected_messages (); +#endif + } } static void @@ -945,6 +959,8 @@ main (int argc, char **argv) { g_test_init (&argc, &argv, NULL); + g_setenv ("G_ENABLE_DIAGNOSTIC", "1", TRUE); + g_test_add_func ("/type/fundamentals", test_fundamentals); g_test_add_func ("/type/qdata", test_type_qdata); g_test_add_func ("/type/query", test_type_query);