glib/tests: use g_test_expect_message()

Replace some tests that used to use g_test_trap_fork() with
g_test_expect_message() instead.

https://bugzilla.gnome.org/show_bug.cgi?id=679556
This commit is contained in:
Dan Winship 2012-07-30 16:38:30 -04:00
parent 25ac137c0a
commit cc24dac3c8
6 changed files with 152 additions and 130 deletions

View File

@ -3,6 +3,7 @@ include $(top_srcdir)/Makefile.decl
INCLUDES = \ INCLUDES = \
-g \ -g \
$(glib_INCLUDES) \ $(glib_INCLUDES) \
-DG_LOG_DOMAIN=\"GLib\" \
-DSRCDIR=\""$(srcdir)"\" \ -DSRCDIR=\""$(srcdir)"\" \
$(GLIB_DEBUG_FLAGS) $(GLIB_DEBUG_FLAGS)

View File

@ -3,28 +3,35 @@
static void static void
test_overwrite (void) test_overwrite (void)
{ {
GError *error, *dest, *src;
if (!g_test_undefined ()) if (!g_test_undefined ())
return; return;
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) error = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_EMPTY, "bla");
{
GError *error; g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING,
error = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_EMPTY, "bla"); "*set over the top*");
g_set_error_literal (&error, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE, "bla"); g_set_error_literal (&error, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE, "bla");
} g_test_assert_expected_messages ();
g_test_trap_assert_failed ();
g_test_trap_assert_stderr ("*set over the top*"); g_assert_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_EMPTY);
g_error_free (error);
dest = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_EMPTY, "bla");
src = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE, "bla");
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING,
"*set over the top*");
g_propagate_error (&dest, src);
g_test_assert_expected_messages ();
g_assert_error (dest, G_MARKUP_ERROR, G_MARKUP_ERROR_EMPTY);
g_assert_error (src, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE);
g_error_free (dest);
g_error_free (src);
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
{
GError *dest;
GError *src;
dest = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_EMPTY, "bla");
src = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE, "bla");
g_propagate_error (&dest, src);
}
g_test_trap_assert_failed ();
g_test_trap_assert_stderr ("*set over the top*");
} }
static void static void

View File

@ -2832,28 +2832,36 @@ do_failed_test (const gchar *pattern)
static void static void
test_invalid_varargs (void) test_invalid_varargs (void)
{ {
GVariant *value;
const gchar *end;
if (!g_test_undefined ()) if (!g_test_undefined ())
return; return;
if (do_failed_test ("*GVariant format string*")) g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
{ "*GVariant format string*");
g_variant_new ("z"); g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
abort (); "*valid_format_string*");
} value = g_variant_new ("z");
g_test_assert_expected_messages ();
g_assert (value == NULL);
if (do_failed_test ("*valid GVariant format string as a prefix*")) g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
{ "*valid GVariant format string as a prefix*");
const gchar *end; g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
"*valid_format_string*");
value = g_variant_new_va ("z", &end, NULL);
g_test_assert_expected_messages ();
g_assert (value == NULL);
g_variant_new_va ("z", &end, NULL); value = g_variant_new ("y", 'a');
abort (); g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
} "*type of `q' but * has a type of `y'*");
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
if (do_failed_test ("*type of `q' but * has a type of `y'*")) "*valid_format_string*");
{ g_variant_get (value, "q");
g_variant_get (g_variant_new ("y", 'a'), "q"); g_test_assert_expected_messages ();
abort (); g_variant_unref (value);
}
} }
static void static void
@ -3133,12 +3141,10 @@ test_varargs (void)
g_free (str); g_free (str);
} }
if (do_failed_test ("*NULL has already been returned*")) g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
{ "*NULL has already been returned*");
g_variant_iter_next_value (&iter); g_variant_iter_next_value (&iter);
abort (); g_test_assert_expected_messages ();
}
while (g_variant_iter_loop (i3, "*", &sub)) while (g_variant_iter_loop (i3, "*", &sub))
{ {

View File

@ -87,9 +87,18 @@ test_maincontext_basic (void)
g_assert (g_source_get_context (source) == ctx); g_assert (g_source_get_context (source) == ctx);
g_assert (g_main_context_find_source_by_id (ctx, id) == NULL); g_assert (g_main_context_find_source_by_id (ctx, id) == NULL);
g_source_unref (source);
g_main_context_unref (ctx); g_main_context_unref (ctx);
if (g_test_undefined ())
{
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
"*assertion*source->context != NULL*failed*");
g_assert (g_source_get_context (source) == NULL);
g_test_assert_expected_messages ();
}
g_source_unref (source);
ctx = g_main_context_default (); ctx = g_main_context_default ();
source = g_source_new (&funcs, sizeof (GSource)); source = g_source_new (&funcs, sizeof (GSource));
g_source_set_funcs (source, &funcs); g_source_set_funcs (source, &funcs);

View File

@ -238,22 +238,20 @@ static GMarkupParser cleanup_parser = {
static void static void
test_cleanup (void) test_cleanup (void)
{ {
GMarkupParseContext *context;
if (!g_test_undefined ()) if (!g_test_undefined ())
return; return;
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) context = g_markup_parse_context_new (&cleanup_parser, 0, NULL, NULL);
{ g_markup_parse_context_parse (context, XML, -1, NULL);
GMarkupParseContext *context;
context = g_markup_parse_context_new (&cleanup_parser, 0, NULL, NULL); g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
g_markup_parse_context_parse (context, XML, -1, NULL); "assertion `context->state != STATE_ERROR' failed");
g_markup_parse_context_end_parse (context, NULL); g_markup_parse_context_end_parse (context, NULL);
g_markup_parse_context_free (context); g_test_assert_expected_messages ();
exit (0); g_markup_parse_context_free (context);
}
g_test_trap_assert_failed ();
g_test_trap_assert_stderr ("*assertion `context->state != STATE_ERROR' failed*");
} }
int int

View File

@ -329,19 +329,21 @@ test_strcanon (void)
if (g_test_undefined ()) if (g_test_undefined ())
{ {
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) gchar *ret;
{
str = g_strcanon (NULL, "ab", 'y');
}
g_test_trap_assert_failed ();
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
{ "*assertion*!= NULL*");
str = g_strdup ("abxabxab"); str = g_strcanon (NULL, "ab", 'y');
str = g_strcanon (str, NULL, 'y'); g_test_assert_expected_messages ();
g_free (str); g_assert (str == NULL);
}
g_test_trap_assert_failed (); str = g_strdup ("abxabxab");
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
"*assertion*!= NULL*");
ret = g_strcanon (str, NULL, 'y');
g_test_assert_expected_messages ();
g_assert (ret == NULL);
g_free (str);
} }
str = g_strdup ("abxabxab"); str = g_strdup ("abxabxab");
@ -360,18 +362,19 @@ test_strcompress_strescape (void)
/* test compress */ /* test compress */
if (g_test_undefined ()) if (g_test_undefined ())
{ {
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
{ "*assertion*!= NULL*");
str = g_strcompress (NULL); str = g_strcompress (NULL);
} g_test_assert_expected_messages ();
g_test_trap_assert_failed (); g_assert (str == NULL);
/* trailing slashes are not allowed */ /* trailing slashes are not allowed */
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING,
{ "*trailing \\*");
str = g_strcompress ("abc\\"); str = g_strcompress ("abc\\");
} g_test_assert_expected_messages ();
g_test_trap_assert_failed (); g_assert_cmpstr (str, ==, "abc");
g_free (str);
} }
str = g_strcompress ("abc\\\\\\\"\\b\\f\\n\\r\\t\\v\\003\\177\\234\\313\\12345z"); str = g_strcompress ("abc\\\\\\\"\\b\\f\\n\\r\\t\\v\\003\\177\\234\\313\\12345z");
@ -382,11 +385,11 @@ test_strcompress_strescape (void)
/* test escape */ /* test escape */
if (g_test_undefined ()) if (g_test_undefined ())
{ {
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
{ "*assertion*!= NULL*");
str = g_strescape (NULL, NULL); str = g_strescape (NULL, NULL);
} g_test_assert_expected_messages ();
g_test_trap_assert_failed (); g_assert (str == NULL);
} }
str = g_strescape ("abc\\\"\b\f\n\r\t\v\003\177\234\313", NULL); str = g_strescape ("abc\\\"\b\f\n\r\t\v\003\177\234\313", NULL);
@ -416,17 +419,17 @@ test_ascii_strcasecmp (void)
if (g_test_undefined ()) if (g_test_undefined ())
{ {
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
{ "*assertion*!= NULL*");
res = g_ascii_strcasecmp ("foo", NULL); res = g_ascii_strcasecmp ("foo", NULL);
} g_test_assert_expected_messages ();
g_test_trap_assert_failed (); g_assert (res == FALSE);
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
{ "*assertion*!= NULL*");
res = g_ascii_strcasecmp (NULL, "foo"); res = g_ascii_strcasecmp (NULL, "foo");
} g_test_assert_expected_messages ();
g_test_trap_assert_failed (); g_assert (res == FALSE);
} }
res = g_ascii_strcasecmp ("FroboZZ", "frobozz"); res = g_ascii_strcasecmp ("FroboZZ", "frobozz");
@ -492,11 +495,10 @@ test_strchug (void)
{ {
if (g_test_undefined ()) if (g_test_undefined ())
{ {
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
{ "*assertion*!= NULL*");
g_strchug (NULL); g_strchug (NULL);
} g_test_assert_expected_messages ();
g_test_trap_assert_failed ();
} }
do_test_strchug ("", ""); do_test_strchug ("", "");
@ -528,11 +530,10 @@ test_strchomp (void)
{ {
if (g_test_undefined ()) if (g_test_undefined ())
{ {
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
{ "*assertion*!= NULL*");
g_strchomp (NULL); g_strchomp (NULL);
} g_test_assert_expected_messages ();
g_test_trap_assert_failed ();
} }
do_test_strchomp ("", ""); do_test_strchomp ("", "");
@ -552,11 +553,11 @@ test_strreverse (void)
if (g_test_undefined ()) if (g_test_undefined ())
{ {
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
{ "*assertion*!= NULL*");
str = g_strreverse (NULL); str = g_strreverse (NULL);
} g_test_assert_expected_messages ();
g_test_trap_assert_failed (); g_assert (str == NULL);
} }
str = p = g_strdup ("abcde"); str = p = g_strdup ("abcde");
@ -656,17 +657,17 @@ test_has_prefix (void)
if (g_test_undefined ()) if (g_test_undefined ())
{ {
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
{ "*assertion*!= NULL*");
res = g_str_has_prefix ("foo", NULL); res = g_str_has_prefix ("foo", NULL);
} g_test_assert_expected_messages ();
g_test_trap_assert_failed (); g_assert (res == FALSE);
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
{ "*assertion*!= NULL*");
res = g_str_has_prefix (NULL, "foo"); res = g_str_has_prefix (NULL, "foo");
} g_test_assert_expected_messages ();
g_test_trap_assert_failed (); g_assert (res == FALSE);
} }
res = g_str_has_prefix ("foo", "bar"); res = g_str_has_prefix ("foo", "bar");
@ -698,17 +699,17 @@ test_has_suffix (void)
if (g_test_undefined ()) if (g_test_undefined ())
{ {
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
{ "*assertion*!= NULL*");
res = g_str_has_suffix ("foo", NULL); res = g_str_has_suffix ("foo", NULL);
} g_test_assert_expected_messages ();
g_test_trap_assert_failed (); g_assert (res == FALSE);
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
{ "*assertion*!= NULL*");
res = g_str_has_suffix (NULL, "foo"); res = g_str_has_suffix (NULL, "foo");
} g_test_assert_expected_messages ();
g_test_trap_assert_failed (); g_assert (res == FALSE);
} }
res = g_str_has_suffix ("foo", "bar"); res = g_str_has_suffix ("foo", "bar");
@ -880,11 +881,11 @@ test_strv_length (void)
if (g_test_undefined ()) if (g_test_undefined ())
{ {
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
{ "*assertion*!= NULL*");
l = g_strv_length (NULL); l = g_strv_length (NULL);
} g_test_assert_expected_messages ();
g_test_trap_assert_failed (); g_assert_cmpint (l, ==, 0);
} }
strv = g_strsplit ("1,2,3,4", ",", -1); strv = g_strsplit ("1,2,3,4", ",", -1);