Merge branch 'wip/pwithnall/error-tests-nonliteral' into 'master'

tests: Ignore -Wformat-nonliteral warning in new GError tests

See merge request GNOME/glib!1863
This commit is contained in:
Emmanuele Bassi 2021-01-07 16:48:24 +00:00
commit 673c514e63

View File

@ -100,6 +100,12 @@ static void
test_new_valist_invalid_va (gpointer dummy,
...)
{
#ifdef __linux__
/* Only worth testing this on Linux; if other platforms regress on this legacy
* behaviour, we dont care. In particular, calling g_error_new_valist() with
* a %NULL format will crash on FreeBSD as its implementation of vasprintf()
* is less forgiving than Linuxs. Thats fine: its a programmer error in
* either case. */
const struct
{
GQuark domain;
@ -119,8 +125,13 @@ test_new_valist_invalid_va (gpointer dummy,
GError *error = NULL, *error_copy = NULL;
va_list ap;
g_test_message ("Test %" G_GSIZE_FORMAT, i);
va_start (ap, dummy);
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
g_test_expect_message (G_LOG_DOMAIN,
G_LOG_LEVEL_WARNING,
"*g_error_new_valist: runtime check failed*");
@ -128,6 +139,8 @@ test_new_valist_invalid_va (gpointer dummy,
g_test_assert_expected_messages ();
g_assert_nonnull (error);
#pragma GCC diagnostic pop
g_test_expect_message (G_LOG_DOMAIN,
G_LOG_LEVEL_WARNING,
"*g_error_copy: runtime check failed*");
@ -140,6 +153,9 @@ test_new_valist_invalid_va (gpointer dummy,
va_end (ap);
}
#else /* if !__linux__ */
g_test_skip ("g_error_new_valist() programmer error handling is only relevant on Linux");
#endif /* !__linux__ */
}
static void