[glib/fix-refcount-macro-non-gcc] glib/tests/refcount.c: Only expect saturation tests to pass on GCC
- From: Chun-wei Fan <fanchunwei src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib/fix-refcount-macro-non-gcc] glib/tests/refcount.c: Only expect saturation tests to pass on GCC
- Date: Fri, 14 Jun 2019 09:12:11 +0000 (UTC)
commit 3aa957e317427383dae0e664dcaaf09bcb86a126
Author: Chun-wei Fan <fanchunwei src gnome org>
Date: Fri Jun 14 17:05:09 2019 +0800
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 | 39 ++++++++++++++++++++-------------------
1 file changed, 20 insertions(+), 19 deletions(-)
---
diff --git a/glib/tests/refcount.c b/glib/tests/refcount.c
index dfccc92c7..5cd62b78e 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)
@@ -97,18 +98,18 @@ test_grefcount_saturation (void)
exit (0);
}
- g_test_trap_subprocess (NULL, 0, 0);
+ g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_INHERIT_STDOUT);
-#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_success ();
+#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
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]