mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-25 15:06:14 +01:00
various tests: do not provoke SIGTRAP with -m no-undefined
Some of the GLib tests deliberately provoke warnings (or even fatal errors) in a forked child. Normally, this is fine, but under valgrind it's somewhat undesirable. We do want to follow fork(), so we can check for leaks in child processes that exit gracefully; but we don't want to be told about "leaks" in processes that are crashing, because there'd be no point in cleaning those up anyway. https://bugzilla.gnome.org/show_bug.cgi?id=666116
This commit is contained in:
parent
5cb29d7909
commit
fa4792c35e
@ -62,12 +62,15 @@ test_basic (void)
|
||||
g_action_activate (G_ACTION (action), NULL);
|
||||
g_assert (!a.did_run);
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
g_action_activate (G_ACTION (action), g_variant_new_string ("xxx"));
|
||||
exit (0);
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
g_action_activate (G_ACTION (action), g_variant_new_string ("xxx"));
|
||||
exit (0);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
g_object_unref (action);
|
||||
g_assert (!a.did_run);
|
||||
@ -87,13 +90,16 @@ test_basic (void)
|
||||
g_variant_unref (a.params);
|
||||
a.did_run = FALSE;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
g_action_activate (G_ACTION (action), NULL);
|
||||
exit (0);
|
||||
}
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
g_action_activate (G_ACTION (action), NULL);
|
||||
exit (0);
|
||||
}
|
||||
|
||||
g_test_trap_assert_failed ();
|
||||
g_test_trap_assert_failed ();
|
||||
}
|
||||
|
||||
g_object_unref (action);
|
||||
g_assert (!a.did_run);
|
||||
@ -250,12 +256,15 @@ test_stateful (void)
|
||||
g_assert_cmpstr (g_variant_get_string (state, NULL), ==, "hihi");
|
||||
g_variant_unref (state);
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
g_simple_action_set_state (action, g_variant_new_int32 (123));
|
||||
exit (0);
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
g_simple_action_set_state (action, g_variant_new_int32 (123));
|
||||
exit (0);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
g_simple_action_set_state (action, g_variant_new_string ("hello"));
|
||||
state = g_action_get_state (G_ACTION (action));
|
||||
@ -265,12 +274,17 @@ test_stateful (void)
|
||||
g_object_unref (action);
|
||||
|
||||
action = g_simple_action_new ("foo", NULL);
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
g_simple_action_set_state (action, g_variant_new_int32 (123));
|
||||
exit (0);
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
g_simple_action_set_state (action, g_variant_new_int32 (123));
|
||||
exit (0);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
g_object_unref (action);
|
||||
}
|
||||
|
||||
@ -339,27 +353,30 @@ test_entries (void)
|
||||
g_assert (bar_activated);
|
||||
g_assert (!foo_activated);
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
const GActionEntry bad_type = {
|
||||
"bad-type", NULL, "ss"
|
||||
};
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
const GActionEntry bad_type = {
|
||||
"bad-type", NULL, "ss"
|
||||
};
|
||||
|
||||
g_simple_action_group_add_entries (actions, &bad_type, 1, NULL);
|
||||
exit (0);
|
||||
g_simple_action_group_add_entries (actions, &bad_type, 1, NULL);
|
||||
exit (0);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
const GActionEntry bad_state = {
|
||||
"bad-state", NULL, NULL, "flse"
|
||||
};
|
||||
|
||||
g_simple_action_group_add_entries (actions, &bad_state, 1, NULL);
|
||||
exit (0);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
const GActionEntry bad_state = {
|
||||
"bad-state", NULL, NULL, "flse"
|
||||
};
|
||||
|
||||
g_simple_action_group_add_entries (actions, &bad_state, 1, NULL);
|
||||
exit (0);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
state = g_action_group_get_action_state (G_ACTION_GROUP (actions), "volume");
|
||||
g_assert_cmpint (g_variant_get_int32 (state), ==, 0);
|
||||
|
@ -572,26 +572,32 @@ test_expected_interface (GDBusProxy *proxy)
|
||||
test_bogus_property (proxy);
|
||||
*/
|
||||
|
||||
/* Also check that we complain if setting a cached property of the wrong type */
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
g_dbus_proxy_set_cached_property (proxy, "y", g_variant_new_string ("error_me_out!"));
|
||||
/* Also check that we complain if setting a cached property of the wrong type */
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
g_dbus_proxy_set_cached_property (proxy, "y", g_variant_new_string ("error_me_out!"));
|
||||
}
|
||||
g_test_trap_assert_stderr ("*Trying to set property y of type s but according to the expected interface the type is y*");
|
||||
g_test_trap_assert_failed();
|
||||
}
|
||||
g_test_trap_assert_stderr ("*Trying to set property y of type s but according to the expected interface the type is y*");
|
||||
g_test_trap_assert_failed();
|
||||
|
||||
/* this should work, however (since the type is correct) */
|
||||
g_dbus_proxy_set_cached_property (proxy, "y", g_variant_new_byte (42));
|
||||
|
||||
/* Try to get the value of a property where the type we expect is different from
|
||||
* what we have in our cache (e.g. what the service returned)
|
||||
*/
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
value = g_dbus_proxy_get_cached_property (proxy, "i");
|
||||
/* Try to get the value of a property where the type we expect is different from
|
||||
* what we have in our cache (e.g. what the service returned)
|
||||
*/
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
value = g_dbus_proxy_get_cached_property (proxy, "i");
|
||||
}
|
||||
g_test_trap_assert_stderr ("*Trying to get property i with type i but according to the expected interface the type is u*");
|
||||
g_test_trap_assert_failed();
|
||||
}
|
||||
g_test_trap_assert_stderr ("*Trying to get property i with type i but according to the expected interface the type is u*");
|
||||
g_test_trap_assert_failed();
|
||||
|
||||
/* Even if a property does not exist in expected_interface, looking it
|
||||
* up, or setting it, should never fail. Because it could be that the
|
||||
|
@ -53,7 +53,7 @@ test_basic (void)
|
||||
g_free (str);
|
||||
str = NULL;
|
||||
|
||||
if (!backend_set)
|
||||
if (!backend_set && g_test_undefined ())
|
||||
{
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
@ -85,6 +85,9 @@ test_basic (void)
|
||||
static void
|
||||
test_unknown_key (void)
|
||||
{
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
GSettings *settings;
|
||||
@ -107,6 +110,9 @@ test_unknown_key (void)
|
||||
static void
|
||||
test_no_schema (void)
|
||||
{
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
GSettings *settings;
|
||||
@ -126,6 +132,9 @@ test_no_schema (void)
|
||||
static void
|
||||
test_wrong_type (void)
|
||||
{
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
GSettings *settings;
|
||||
@ -156,6 +165,9 @@ test_wrong_type (void)
|
||||
static void
|
||||
test_wrong_path (void)
|
||||
{
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
GSettings *settings G_GNUC_UNUSED;
|
||||
@ -170,6 +182,9 @@ test_wrong_path (void)
|
||||
static void
|
||||
test_no_path (void)
|
||||
{
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
GSettings *settings G_GNUC_UNUSED;
|
||||
@ -1233,6 +1248,9 @@ test_directional_binding (void)
|
||||
static void
|
||||
test_typesafe_binding (void)
|
||||
{
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
TestObject *obj;
|
||||
@ -1356,18 +1374,21 @@ test_no_change_binding (void)
|
||||
static void
|
||||
test_no_read_binding (void)
|
||||
{
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
TestObject *obj;
|
||||
GSettings *settings;
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
TestObject *obj;
|
||||
GSettings *settings;
|
||||
|
||||
settings = g_settings_new ("org.gtk.test.binding");
|
||||
obj = test_object_new ();
|
||||
settings = g_settings_new ("org.gtk.test.binding");
|
||||
obj = test_object_new ();
|
||||
|
||||
g_settings_bind (settings, "string", obj, "no-read", 0);
|
||||
g_settings_bind (settings, "string", obj, "no-read", 0);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
g_test_trap_assert_stderr ("*property*is not readable*");
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
g_test_trap_assert_stderr ("*property*is not readable*");
|
||||
|
||||
if (g_test_trap_fork (0, 0))
|
||||
{
|
||||
@ -1390,18 +1411,21 @@ test_no_read_binding (void)
|
||||
static void
|
||||
test_no_write_binding (void)
|
||||
{
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
TestObject *obj;
|
||||
GSettings *settings;
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
TestObject *obj;
|
||||
GSettings *settings;
|
||||
|
||||
settings = g_settings_new ("org.gtk.test.binding");
|
||||
obj = test_object_new ();
|
||||
settings = g_settings_new ("org.gtk.test.binding");
|
||||
obj = test_object_new ();
|
||||
|
||||
g_settings_bind (settings, "string", obj, "no-write", 0);
|
||||
g_settings_bind (settings, "string", obj, "no-write", 0);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
g_test_trap_assert_stderr ("*property*is not writable*");
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
g_test_trap_assert_stderr ("*property*is not writable*");
|
||||
|
||||
if (g_test_trap_fork (0, 0))
|
||||
{
|
||||
@ -1562,7 +1586,7 @@ test_enums (void)
|
||||
settings = g_settings_new ("org.gtk.test.enums");
|
||||
direct = g_settings_new ("org.gtk.test.enums.direct");
|
||||
|
||||
if (!backend_set)
|
||||
if (g_test_undefined () && !backend_set)
|
||||
{
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
g_settings_get_enum (direct, "test");
|
||||
@ -1620,7 +1644,7 @@ test_flags (void)
|
||||
settings = g_settings_new ("org.gtk.test.enums");
|
||||
direct = g_settings_new ("org.gtk.test.enums.direct");
|
||||
|
||||
if (!backend_set)
|
||||
if (g_test_undefined () && !backend_set)
|
||||
{
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
g_settings_get_flags (direct, "test");
|
||||
@ -1690,7 +1714,7 @@ test_range (void)
|
||||
settings = g_settings_new ("org.gtk.test.range");
|
||||
direct = g_settings_new ("org.gtk.test.range.direct");
|
||||
|
||||
if (!backend_set)
|
||||
if (g_test_undefined () && !backend_set)
|
||||
{
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
g_settings_set_int (settings, "val", 45);
|
||||
|
@ -3,6 +3,9 @@
|
||||
static void
|
||||
test_overwrite (void)
|
||||
{
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
GError *error;
|
||||
|
@ -2831,6 +2831,9 @@ do_failed_test (const gchar *pattern)
|
||||
static void
|
||||
test_invalid_varargs (void)
|
||||
{
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
if (do_failed_test ("*GVariant format string*"))
|
||||
{
|
||||
g_variant_new ("z");
|
||||
@ -3871,22 +3874,25 @@ test_parse_positional (void)
|
||||
check_and_free (value, "[('one', 1), ('two', 2), ('three', 3)]");
|
||||
check_and_free (g_variant_new_parsed ("{%s:%i}", "one", 1), "{'one': 1}");
|
||||
|
||||
if (do_failed_test ("*GVariant format string*"))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
g_variant_new_parsed ("%z");
|
||||
abort ();
|
||||
}
|
||||
if (do_failed_test ("*GVariant format string*"))
|
||||
{
|
||||
g_variant_new_parsed ("%z");
|
||||
abort ();
|
||||
}
|
||||
|
||||
if (do_failed_test ("*can not parse as*"))
|
||||
{
|
||||
g_variant_new_parsed ("uint32 %i", 2);
|
||||
abort ();
|
||||
}
|
||||
if (do_failed_test ("*can not parse as*"))
|
||||
{
|
||||
g_variant_new_parsed ("uint32 %i", 2);
|
||||
abort ();
|
||||
}
|
||||
|
||||
if (do_failed_test ("*expected GVariant of type `i'*"))
|
||||
{
|
||||
g_variant_new_parsed ("%@i", g_variant_new_uint32 (2));
|
||||
abort ();
|
||||
if (do_failed_test ("*expected GVariant of type `i'*"))
|
||||
{
|
||||
g_variant_new_parsed ("%@i", g_variant_new_uint32 (2));
|
||||
abort ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,9 @@
|
||||
static void
|
||||
test_warnings (void)
|
||||
{
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
g_warn_if_reached ();
|
||||
@ -62,29 +65,32 @@ test_set_handler (void)
|
||||
static void
|
||||
test_default_handler (void)
|
||||
{
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
g_error ("message1");
|
||||
exit (0);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
g_test_trap_assert_stderr ("*ERROR*message1*");
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
g_error ("message1");
|
||||
exit (0);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
g_test_trap_assert_stderr ("*ERROR*message1*");
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
g_critical ("message2");
|
||||
exit (0);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
g_test_trap_assert_stderr ("*CRITICAL*message2*");
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
g_critical ("message2");
|
||||
exit (0);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
g_test_trap_assert_stderr ("*CRITICAL*message2*");
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
g_warning ("message3");
|
||||
exit (0);
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
g_warning ("message3");
|
||||
exit (0);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
g_test_trap_assert_stderr ("*WARNING*message3*");
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
g_test_trap_assert_stderr ("*WARNING*message3*");
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
@ -146,6 +152,9 @@ test_fatal_log_mask (void)
|
||||
{
|
||||
GLogLevelFlags flags;
|
||||
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
flags = g_log_set_fatal_mask ("bu", G_LOG_LEVEL_INFO);
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT))
|
||||
g_log ("bu", G_LOG_LEVEL_INFO, "fatal");
|
||||
@ -233,6 +242,9 @@ test_handler (const gchar *log_domain,
|
||||
static void
|
||||
bug653052 (void)
|
||||
{
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
g_test_bug ("653052");
|
||||
|
||||
g_test_log_set_fatal_handler (good_failure_handler, fail_str);
|
||||
|
@ -197,6 +197,9 @@ static GMarkupParser cleanup_parser = {
|
||||
static void
|
||||
test_cleanup (void)
|
||||
{
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
GMarkupParseContext *context;
|
||||
|
@ -73,7 +73,18 @@ mem_overflow (void)
|
||||
#undef CHECK_FAIL
|
||||
#undef CHECK_PASS
|
||||
|
||||
#define CHECK_FAIL(P) if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) { p = (P); exit (0); } g_test_trap_assert_failed();
|
||||
#define CHECK_FAIL(P) do { \
|
||||
if (g_test_undefined ()) \
|
||||
{ \
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) \
|
||||
{ \
|
||||
p = (P); \
|
||||
exit (0); \
|
||||
} \
|
||||
\
|
||||
g_test_trap_assert_failed(); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define CHECK_PASS(P) do { \
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) \
|
||||
|
@ -2077,6 +2077,9 @@ test_error_hook (void)
|
||||
static void
|
||||
flag_reverse_string (void)
|
||||
{
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
GOptionContext *context;
|
||||
@ -2108,6 +2111,9 @@ flag_reverse_string (void)
|
||||
static void
|
||||
flag_optional_int (void)
|
||||
{
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
GOptionContext *context;
|
||||
|
@ -3,6 +3,9 @@
|
||||
static void
|
||||
test_slice_config (void)
|
||||
{
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
if (g_test_trap_fork (1000000, G_TEST_TRAP_SILENCE_STDERR))
|
||||
g_slice_set_config (G_SLICE_CONFIG_ALWAYS_MALLOC, TRUE);
|
||||
|
||||
|
@ -327,19 +327,22 @@ test_strcanon (void)
|
||||
{
|
||||
gchar *str;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
str = g_strcanon (NULL, "ab", 'y');
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
str = g_strcanon (NULL, "ab", 'y');
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
str = g_strdup ("abxabxab");
|
||||
str = g_strcanon (str, NULL, 'y');
|
||||
g_free (str);
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
str = g_strdup ("abxabxab");
|
||||
str = g_strcanon (str, NULL, 'y');
|
||||
g_free (str);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
str = g_strdup ("abxabxab");
|
||||
str = g_strcanon (str, "ab", 'y');
|
||||
@ -355,18 +358,21 @@ test_strcompress_strescape (void)
|
||||
gchar *tmp;
|
||||
|
||||
/* test compress */
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
str = g_strcompress (NULL);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
str = g_strcompress (NULL);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
/* trailing slashes are not allowed */
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
str = g_strcompress ("abc\\");
|
||||
/* trailing slashes are not allowed */
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
str = g_strcompress ("abc\\");
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
str = g_strcompress ("abc\\\\\\\"\\b\\f\\n\\r\\t\\003\\177\\234\\313\\12345z");
|
||||
g_assert (str != NULL);
|
||||
@ -374,11 +380,14 @@ test_strcompress_strescape (void)
|
||||
g_free (str);
|
||||
|
||||
/* test escape */
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
str = g_strescape (NULL, NULL);
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
str = g_strescape (NULL, NULL);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
str = g_strescape ("abc\\\"\b\f\n\r\t\003\177\234\313", NULL);
|
||||
g_assert (str != NULL);
|
||||
@ -405,17 +414,20 @@ test_ascii_strcasecmp (void)
|
||||
{
|
||||
gboolean res;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
res = g_ascii_strcasecmp ("foo", NULL);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
res = g_ascii_strcasecmp ("foo", NULL);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
res = g_ascii_strcasecmp (NULL, "foo");
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
res = g_ascii_strcasecmp (NULL, "foo");
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
res = g_ascii_strcasecmp ("FroboZZ", "frobozz");
|
||||
g_assert_cmpint (res, ==, 0);
|
||||
@ -478,11 +490,14 @@ do_test_strchug (const gchar *str, const gchar *expected)
|
||||
static void
|
||||
test_strchug (void)
|
||||
{
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
g_strchug (NULL);
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
g_strchug (NULL);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
do_test_strchug ("", "");
|
||||
do_test_strchug (" ", "");
|
||||
@ -511,11 +526,14 @@ do_test_strchomp (const gchar *str, const gchar *expected)
|
||||
static void
|
||||
test_strchomp (void)
|
||||
{
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
g_strchomp (NULL);
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
g_strchomp (NULL);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
do_test_strchomp ("", "");
|
||||
do_test_strchomp (" ", "");
|
||||
@ -532,11 +550,14 @@ test_strreverse (void)
|
||||
gchar *str;
|
||||
gchar *p;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
str = g_strreverse (NULL);
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
str = g_strreverse (NULL);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
str = p = g_strdup ("abcde");
|
||||
str = g_strreverse (str);
|
||||
@ -626,17 +647,20 @@ test_has_prefix (void)
|
||||
{
|
||||
gboolean res;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
res = g_str_has_prefix ("foo", NULL);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
res = g_str_has_prefix ("foo", NULL);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
res = g_str_has_prefix (NULL, "foo");
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
res = g_str_has_prefix (NULL, "foo");
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
res = g_str_has_prefix ("foo", "bar");
|
||||
g_assert_cmpint (res, ==, FALSE);
|
||||
@ -665,17 +689,20 @@ test_has_suffix (void)
|
||||
{
|
||||
gboolean res;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
res = g_str_has_suffix ("foo", NULL);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
res = g_str_has_suffix ("foo", NULL);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
res = g_str_has_suffix (NULL, "foo");
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
res = g_str_has_suffix (NULL, "foo");
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
res = g_str_has_suffix ("foo", "bar");
|
||||
g_assert_cmpint (res, ==, FALSE);
|
||||
@ -844,11 +871,14 @@ test_strv_length (void)
|
||||
gchar **strv;
|
||||
guint l;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
l = g_strv_length (NULL);
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
l = g_strv_length (NULL);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
|
||||
strv = g_strsplit ("1,2,3,4", ",", -1);
|
||||
l = g_strv_length (strv);
|
||||
|
@ -46,19 +46,22 @@ test_assertions (void)
|
||||
g_assert_cmpstr ("fzz", >, "faa");
|
||||
g_assert_cmpstr ("fzz", ==, "fzz");
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
if (g_test_undefined ())
|
||||
{
|
||||
g_assert_cmpstr ("fzz", !=, "fzz");
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
g_test_trap_assert_stderr ("*assertion failed*");
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
g_assert_cmpstr ("fzz", !=, "fzz");
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
g_test_trap_assert_stderr ("*assertion failed*");
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
g_assert_cmpint (4, !=, 4);
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
g_assert_cmpint (4, !=, 4);
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
g_test_trap_assert_stderr ("*assertion failed*");
|
||||
}
|
||||
g_test_trap_assert_failed ();
|
||||
g_test_trap_assert_stderr ("*assertion failed*");
|
||||
}
|
||||
|
||||
/* test g_test_timer* API */
|
||||
@ -80,6 +83,9 @@ test_timer (void)
|
||||
static void
|
||||
test_fork_fail (void)
|
||||
{
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
g_assert_not_reached();
|
||||
@ -107,6 +113,9 @@ test_fork_patterns (void)
|
||||
static void
|
||||
test_fork_timeout (void)
|
||||
{
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
/* allow child to run for only a fraction of a second */
|
||||
if (g_test_trap_fork (0.11 * 1000000, 0))
|
||||
{
|
||||
@ -217,6 +226,9 @@ fatal_handler (const gchar *log_domain,
|
||||
static void
|
||||
test_fatal_log_handler (void)
|
||||
{
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
g_test_log_set_fatal_handler (fatal_handler, NULL);
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
|
||||
{
|
||||
|
@ -615,6 +615,9 @@ base2_object_init (Base2Object *object)
|
||||
static void
|
||||
test_not_overridden (void)
|
||||
{
|
||||
if (!g_test_undefined ())
|
||||
return;
|
||||
|
||||
g_test_bug ("637738");
|
||||
|
||||
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT|G_TEST_TRAP_SILENCE_STDERR))
|
||||
|
Loading…
Reference in New Issue
Block a user