Commit 2a2c6e67 authored by Simon McVittie's avatar Simon McVittie

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's avatarSimon McVittie <smcv@collabora.com>
parent d30188a1
......@@ -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);
}
}
......@@ -127,4 +127,6 @@ void test_store_result_cb (GObject *source_object,
GAsyncResult *result,
gpointer user_data);
void test_incomplete (const gchar *message);
#endif
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment