X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=glib%2Ftests%2Ftesting.c;h=85acb4a03339f8e130dbe0fe3ad29f4f4a1a9261;hb=49b59e5ac4428a6a99a85d699c3662f96efc4e9d;hp=189223a04a3c987c3f7bcde0846804140eceb5d2;hpb=8c188fc9e55cc9e24000271f6ad8a47ffdcb62d7;p=platform%2Fupstream%2Fglib.git diff --git a/glib/tests/testing.c b/glib/tests/testing.c index 189223a..85acb4a 100644 --- a/glib/tests/testing.c +++ b/glib/tests/testing.c @@ -20,6 +20,12 @@ * if advised of the possibility of such damage. */ +/* We want to distinguish between messages originating from libglib + * and messages originating from this program. + */ +#undef G_LOG_DOMAIN +#define G_LOG_DOMAIN "testing" + #include #include @@ -380,7 +386,7 @@ static void test_expected_messages_expect_error (void) { /* make sure we can't try to expect a g_error() */ - g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, "*G_LOG_LEVEL_ERROR*"); + g_test_expect_message ("GLib", G_LOG_LEVEL_CRITICAL, "*G_LOG_LEVEL_ERROR*"); g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, "this won't work"); g_test_assert_expected_messages (); } @@ -433,7 +439,7 @@ test_expected_messages (void) g_test_trap_subprocess ("/misc/expected-messages/subprocess/wrong-warning", 0, 0); g_test_trap_assert_failed (); g_test_trap_assert_stderr_unmatched ("*should not be reached*"); - g_test_trap_assert_stderr ("*Did not see expected message CRITICAL*should not be *WARNING*This is a * warning*"); + g_test_trap_assert_stderr ("*GLib-CRITICAL*Did not see expected message testing-CRITICAL*should not be *WARNING*This is a * warning*"); g_test_trap_subprocess ("/misc/expected-messages/subprocess/expected", 0, 0); g_test_trap_assert_passed (); @@ -449,7 +455,7 @@ test_expected_messages (void) g_test_trap_subprocess ("/misc/expected-messages/subprocess/unexpected-extra-warning", 0, 0); g_test_trap_assert_failed (); - g_test_trap_assert_stderr ("*Did not see expected message CRITICAL*nope*"); + g_test_trap_assert_stderr ("*GLib:ERROR*Did not see expected message testing-CRITICAL*nope*"); } static void @@ -581,10 +587,125 @@ test_skip (void) g_test_skip ("Skipped should count as passed, not failed"); } +static void +test_pass (void) +{ +} + +static void +test_fail (void) +{ + if (g_test_subprocess ()) + { + g_test_fail (); + g_assert (g_test_failed ()); + return; + } + g_test_trap_subprocess (NULL, 0, 0); + g_test_trap_assert_failed (); +} + +static void +test_incomplete (void) +{ + if (g_test_subprocess ()) + { + g_test_incomplete ("not done"); + g_assert (g_test_failed ()); + return; + } + g_test_trap_subprocess (NULL, 0, 0); + g_test_trap_assert_failed (); +} + +static void +test_subprocess_timed_out (void) +{ + if (g_test_subprocess ()) + { + g_usleep (1000000); + return; + } + g_test_trap_subprocess (NULL, 50000, 0); + g_assert (g_test_trap_reached_timeout ()); +} + +static const char *argv0; + +static void +test_skip_all (void) +{ + GPtrArray *argv; + GError *error = NULL; + int status; + + argv = g_ptr_array_new (); + g_ptr_array_add (argv, (char *) argv0); + g_ptr_array_add (argv, "--GTestSubprocess"); + g_ptr_array_add (argv, "-p"); + g_ptr_array_add (argv, "/misc/skip"); + g_ptr_array_add (argv, NULL); + + g_spawn_sync (NULL, (char **) argv->pdata, NULL, + G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL, + NULL, NULL, NULL, NULL, &status, + &error); + g_assert_no_error (error); + + g_spawn_check_exit_status (status, &error); + g_assert_error (error, G_SPAWN_EXIT_ERROR, 77); + g_clear_error (&error); + + g_ptr_array_set_size (argv, 0); + g_ptr_array_add (argv, (char *) argv0); + g_ptr_array_add (argv, "--GTestSubprocess"); + g_ptr_array_add (argv, "-p"); + g_ptr_array_add (argv, "/misc/skip"); + g_ptr_array_add (argv, "-p"); + g_ptr_array_add (argv, "/misc/skip-all/subprocess/skip1"); + g_ptr_array_add (argv, "-p"); + g_ptr_array_add (argv, "/misc/skip-all/subprocess/skip2"); + g_ptr_array_add (argv, NULL); + + g_spawn_sync (NULL, (char **) argv->pdata, NULL, + G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL, + NULL, NULL, NULL, NULL, &status, + &error); + g_assert_no_error (error); + + g_spawn_check_exit_status (status, &error); + g_assert_error (error, G_SPAWN_EXIT_ERROR, 77); + g_clear_error (&error); + + g_ptr_array_set_size (argv, 0); + g_ptr_array_add (argv, (char *) argv0); + g_ptr_array_add (argv, "--GTestSubprocess"); + g_ptr_array_add (argv, "-p"); + g_ptr_array_add (argv, "/misc/skip"); + g_ptr_array_add (argv, "-p"); + g_ptr_array_add (argv, "/misc/skip-all/subprocess/pass"); + g_ptr_array_add (argv, "-p"); + g_ptr_array_add (argv, "/misc/skip-all/subprocess/skip1"); + g_ptr_array_add (argv, NULL); + + g_spawn_sync (NULL, (char **) argv->pdata, NULL, + G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL, + NULL, NULL, NULL, NULL, &status, + &error); + g_assert_no_error (error); + + g_spawn_check_exit_status (status, &error); + g_assert_no_error (error); + + g_ptr_array_unref (argv); +} + int main (int argc, char *argv[]) { + argv0 = argv[0]; + g_test_init (&argc, &argv, NULL); g_test_add_func ("/random-generator/rand-1", test_rand1); @@ -640,6 +761,13 @@ main (int argc, g_test_add_func ("/misc/nonfatal", test_nonfatal); g_test_add_func ("/misc/skip", test_skip); + g_test_add_func ("/misc/skip-all", test_skip_all); + g_test_add_func ("/misc/skip-all/subprocess/skip1", test_skip); + g_test_add_func ("/misc/skip-all/subprocess/skip2", test_skip); + g_test_add_func ("/misc/skip-all/subprocess/pass", test_pass); + g_test_add_func ("/misc/fail", test_fail); + g_test_add_func ("/misc/incomplete", test_incomplete); + g_test_add_func ("/misc/timeout", test_subprocess_timed_out); return g_test_run(); }