From bf40b7c746889c6529107995229754322ed6eca1 Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Fri, 14 Jun 2019 17:05:09 +0800 Subject: [PATCH] glib/tests/refcount.c: Only expect saturation tests to pass on GCC From grefcount.h, in order to disable warnings when G_DISABLE_CHECKS is defined, we need to make use of the GCC-isque-only __extension__ for it to work. This means that in the saturation tests, we can only expect no warnings to show if we are building on GCC-isque compilers with G_DISABLE_CHECKS defined. This will fix the refcount-macro test on Visual Studio builds at least. --- glib/tests/refcount.c | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/glib/tests/refcount.c b/glib/tests/refcount.c index dfccc92c7..e19a2d7ef 100644 --- a/glib/tests/refcount.c +++ b/glib/tests/refcount.c @@ -76,7 +76,8 @@ test_grefcount (void) /* test_grefcount_saturation: Saturating a grefcount counter * does not cause an overflow; additionally, if we're building - * with checks enabled, it'll cause a warning + * with checks enabled or with non-GCC compilers, it'll cause a + * warning */ static void test_grefcount_saturation (void) @@ -99,16 +100,16 @@ test_grefcount_saturation (void) g_test_trap_subprocess (NULL, 0, 0); -#ifndef G_DISABLE_CHECKS - /* Ensure that we got a warning when building with checks; the - * test will fail because of the critical warning being caught - * by GTest +#if defined (G_DISABLE_CHECKS) && defined (__GNUC__) + /* With checks disabled we don't get any warning */ + g_test_trap_assert_passed (); +#else + /* Ensure that we got a warning when building with checks or with + * non-GCC compilers; the test will fail because of the critical + * warning being caught by GTest */ g_test_trap_assert_failed (); g_test_trap_assert_stderr ("*saturation*"); -#else - /* With checks disabled we don't get any warning */ - g_test_trap_assert_passed (); #endif } @@ -167,9 +168,9 @@ test_gatomicrefcount (void) g_assert_true (g_atomic_ref_count_dec (&a)); } -/* test_grefcount_saturation: Saturating a gatomicrefcount counter - * does not cause an overflow; additionally, if we're building - * with checks enabled, it'll cause a warning +/* test_gatomicrefcount_saturation: Saturating a gatomicrefcount counter + * does not cause an overflow; additionally, if we're building with + * checks enabled or with non-GCC compilers, it'll cause a warning */ static void test_gatomicrefcount_saturation (void) @@ -192,16 +193,16 @@ test_gatomicrefcount_saturation (void) g_test_trap_subprocess (NULL, 0, 0); -#ifndef G_DISABLE_CHECKS - /* Ensure that we got a warning when building with checks; the - * test will fail because of the critical warning being caught - * by GTest +#if defined (G_DISABLE_CHECKS) && defined (__GNUC__) + /* With checks disabled we don't get any warning */ + g_test_trap_assert_passed (); +#else + /* Ensure that we got a warning when building with checks or with + * non-GCC compilers; the test will fail because of the critical + * warning being caught by GTest */ g_test_trap_assert_failed (); g_test_trap_assert_stderr ("*saturation*"); -#else - /* With checks disabled we don't get any warning */ - g_test_trap_assert_passed (); #endif }