Commit 885d6507 authored by Philip Withnall's avatar Philip Withnall
Browse files

tests: Only run g_error_new_valist() programmer error test on Linux



On FreeBSD it always crashes due to the platform’s `vasprintf()`
implementation being less forgiving than Linux’s. That’s fine.
Signed-off-by: Philip Withnall's avatarPhilip Withnall <pwithnall@endlessos.org>
parent 5000193c
Pipeline #244693 passed with stages
in 20 minutes and 42 seconds
...@@ -100,6 +100,12 @@ static void ...@@ -100,6 +100,12 @@ static void
test_new_valist_invalid_va (gpointer dummy, test_new_valist_invalid_va (gpointer dummy,
...) ...)
{ {
#ifdef __linux__
/* Only worth testing this on Linux; if other platforms regress on this legacy
* behaviour, we don’t 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 Linux’s. That’s fine: it’s a programmer error in
* either case. */
const struct const struct
{ {
GQuark domain; GQuark domain;
...@@ -119,6 +125,8 @@ test_new_valist_invalid_va (gpointer dummy, ...@@ -119,6 +125,8 @@ test_new_valist_invalid_va (gpointer dummy,
GError *error = NULL, *error_copy = NULL; GError *error = NULL, *error_copy = NULL;
va_list ap; va_list ap;
g_test_message ("Test %" G_GSIZE_FORMAT, i);
va_start (ap, dummy); va_start (ap, dummy);
#pragma GCC diagnostic push #pragma GCC diagnostic push
...@@ -145,6 +153,9 @@ test_new_valist_invalid_va (gpointer dummy, ...@@ -145,6 +153,9 @@ test_new_valist_invalid_va (gpointer dummy,
va_end (ap); 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 static void
......
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