From: Simon McVittie Date: Wed, 31 Oct 2018 15:19:19 +0000 (+0000) Subject: test_incomplete: Add function X-Git-Tag: dbus-1.13.8~38^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2a2c6e6790a25e96210115ef04b21c332fb4effa;p=thirdparty%2Fdbus.git test_incomplete: Add function This is a wrapper for g_test_incomplete(), which works around bugs in that function prior to GLib 2.57.3. I originally wrote it for librsvg. Signed-off-by: Simon McVittie --- diff --git a/test/test-utils-glib.c b/test/test-utils-glib.c index 3b447fe81..930b87dfc 100644 --- a/test/test-utils-glib.c +++ b/test/test-utils-glib.c @@ -863,3 +863,30 @@ test_store_result_cb (GObject *source_object G_GNUC_UNUSED, g_assert_null (*result_p); *result_p = g_object_ref (result); } + +/* + * Report that a test should have failed, but we are tolerating the + * failure because it represents a known bug or missing feature. + * + * This is the same as g_test_incomplete(), but with a workaround for + * GLib bug 1474 so that we don't fail tests on older GLib. + */ +void +test_incomplete (const gchar *message) +{ + if (glib_check_version (2, 57, 3)) + { + /* In GLib >= 2.57.3, g_test_incomplete() behaves as intended: + * the test result is reported as an expected failure and the + * overall test exits 0 */ + g_test_incomplete (message); + } + else + { + /* In GLib < 2.57.3, g_test_incomplete() reported the wrong TAP + * result (an unexpected success) and the overall test exited 1, + * which would break "make check". g_test_skip() is the next + * best thing available. */ + g_test_skip (message); + } +} diff --git a/test/test-utils-glib.h b/test/test-utils-glib.h index d36f43015..7cfc87856 100644 --- a/test/test-utils-glib.h +++ b/test/test-utils-glib.h @@ -127,4 +127,6 @@ void test_store_result_cb (GObject *source_object, GAsyncResult *result, gpointer user_data); +void test_incomplete (const gchar *message); + #endif