Revert "tests: port from g_test_trap_subprocess() to g_test_trap_fork()"
[platform/upstream/glib.git] / glib / tests / logging.c
index 66d31ca..f90dc74 100644 (file)
@@ -5,15 +5,19 @@
 static void
 test_warnings (void)
 {
-  g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING,
-                         "*test_warnings*should not be reached*");
-  g_warn_if_reached ();
-  g_test_assert_expected_messages ();
-
-  g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING,
-                         "*test_warnings*runtime check failed*");
-  g_warn_if_fail (FALSE);
-  g_test_assert_expected_messages ();
+  if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
+    {
+      g_warn_if_reached ();
+    }
+  g_test_trap_assert_failed();
+  g_test_trap_assert_stderr ("*WARNING*test_warnings*should not be reached*");
+
+  if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
+    {
+      g_warn_if_fail (FALSE);
+    }
+  g_test_trap_assert_failed();
+  g_test_trap_assert_stderr ("*WARNING*test_warnings*runtime check failed*");
 }
 
 static guint log_count = 0;
@@ -40,153 +44,113 @@ test_set_handler (void)
 
   id = g_log_set_handler ("bu", G_LOG_LEVEL_INFO, log_handler, NULL);
 
-  g_log ("bu", G_LOG_LEVEL_DEBUG, "message");
-  g_log ("ba", G_LOG_LEVEL_DEBUG, "message");
-  g_log ("bu", G_LOG_LEVEL_INFO, "message");
-  g_log ("ba", G_LOG_LEVEL_INFO, "message");
+  if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT))
+    {
+      g_log ("bu", G_LOG_LEVEL_DEBUG, "message");
+      g_log ("ba", G_LOG_LEVEL_DEBUG, "message");
+      g_log ("bu", G_LOG_LEVEL_INFO, "message");
+      g_log ("ba", G_LOG_LEVEL_INFO, "message");
 
-  g_assert_cmpint (log_count, ==, 1);
+      g_assert_cmpint (log_count, ==, 1);
+      exit (0);
+    }
+  g_test_trap_assert_passed ();
 
   g_log_remove_handler ("bu", id);
 }
 
 static void
-test_default_handler_error (void)
-{
-  g_error ("message1");
-  exit (0);
-}
-
-static void
-test_default_handler_critical (void)
-{
-  g_critical ("message2");
-  exit (0);
-}
-
-static void
-test_default_handler_warning (void)
-{
-  g_warning ("message3");
-  exit (0);
-}
-
-static void
-test_default_handler_message (void)
-{
-  g_message ("message4");
-  exit (0);
-}
-
-static void
-test_default_handler_info (void)
-{
-  g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "message5");
-  exit (0);
-}
-
-static void
-test_default_handler_bar_info (void)
-{
-  g_setenv ("G_MESSAGES_DEBUG", "foo bar baz", TRUE);
-
-  g_log ("bar", G_LOG_LEVEL_INFO, "message5");
-  exit (0);
-}
-
-static void
-test_default_handler_baz_debug (void)
-{
-  g_setenv ("G_MESSAGES_DEBUG", "foo bar baz", TRUE);
-
-  g_log ("baz", G_LOG_LEVEL_DEBUG, "message6");
-  exit (0);
-}
-
-static void
-test_default_handler_debug (void)
-{
-  g_setenv ("G_MESSAGES_DEBUG", "all", TRUE);
-
-  g_log ("foo", G_LOG_LEVEL_DEBUG, "6");
-  g_log ("bar", G_LOG_LEVEL_DEBUG, "6");
-  g_log ("baz", G_LOG_LEVEL_DEBUG, "6");
-  exit (0);
-}
-
-static void
-test_default_handler_0x400 (void)
-{
-  g_log (G_LOG_DOMAIN, 1<<10, "message7");
-  exit (0);
-}
-
-static void
 test_default_handler (void)
 {
-  g_test_trap_subprocess ("/logging/default-handler:error",
-                          0, G_TEST_TRAP_SILENCE_STDERR);
+  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*");
 
-  g_test_trap_subprocess ("/logging/default-handler:critical",
-                          0, G_TEST_TRAP_SILENCE_STDERR);
+  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*");
 
-  g_test_trap_subprocess ("/logging/default-handler:warning",
-                          0, G_TEST_TRAP_SILENCE_STDERR);
+  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_subprocess ("/logging/default-handler:message",
-                          0, G_TEST_TRAP_SILENCE_STDERR);
+  if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
+    {
+      g_message ("message4");
+      exit (0);
+    }
   g_test_trap_assert_passed ();
   g_test_trap_assert_stderr ("*Message*message4*");
 
-  g_test_trap_subprocess ("/logging/default-handler:info",
-                          0, G_TEST_TRAP_SILENCE_STDOUT);
+  if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT))
+    {
+      g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "message5");
+      exit (0);
+    }
   g_test_trap_assert_passed ();
   g_test_trap_assert_stdout_unmatched ("*INFO*message5*");
 
-  g_test_trap_subprocess ("/logging/default-handler:bar-info",
-                          0, G_TEST_TRAP_SILENCE_STDOUT);
+  g_setenv ("G_MESSAGES_DEBUG", "foo bar baz", TRUE);
+  if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT))
+    {
+      g_log ("bar", G_LOG_LEVEL_INFO, "message5");
+      exit (0);
+    }
   g_test_trap_assert_passed ();
   g_test_trap_assert_stdout ("*INFO*message5*");
 
-  g_test_trap_subprocess ("/logging/default-handler:baz-debug",
-                          0, G_TEST_TRAP_SILENCE_STDOUT);
+  if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT))
+    {
+      g_log ("baz", G_LOG_LEVEL_DEBUG, "message6");
+      exit (0);
+    }
   g_test_trap_assert_passed ();
   g_test_trap_assert_stdout ("*DEBUG*message6*");
 
-  g_test_trap_subprocess ("/logging/default-handler:debug",
-                          0, G_TEST_TRAP_SILENCE_STDOUT);
+  g_setenv ("G_MESSAGES_DEBUG", "all", TRUE);
+  if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT))
+    {
+      g_log ("foo", G_LOG_LEVEL_DEBUG, "6");
+      g_log ("bar", G_LOG_LEVEL_DEBUG, "6");
+      g_log ("baz", G_LOG_LEVEL_DEBUG, "6");
+      exit (0);
+    }
   g_test_trap_assert_passed ();
   g_test_trap_assert_stdout ("*DEBUG*6*6*6*");
 
-  g_test_trap_subprocess ("/logging/default-handler:0x400",
-                          0, G_TEST_TRAP_SILENCE_STDOUT);
+  g_unsetenv ("G_MESSAGES_DEBUG");
+  if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT))
+    {
+      g_log (G_LOG_DOMAIN, 1<<10, "message7");
+      exit (0);
+    }
   g_test_trap_assert_passed ();
   g_test_trap_assert_stdout ("*LOG-0x400*message7*");
 }
 
 /* test that setting levels as fatal works */
 static void
-test_fatal_log_mask_child (void)
-{
-  g_log_set_fatal_mask ("bu", G_LOG_LEVEL_INFO);
-  g_log ("bu", G_LOG_LEVEL_INFO, "fatal");
-  exit (0);
-}
-
-static void
 test_fatal_log_mask (void)
 {
-  g_test_trap_subprocess ("/logging/fatal-log-mask:child",
-                          0, G_TEST_TRAP_SILENCE_STDOUT);
+  GLogLevelFlags flags;
+
+  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");
   g_test_trap_assert_failed ();
-  /* G_LOG_LEVEL_INFO isn't printed by default */
-  g_test_trap_assert_stdout_unmatched ("*fatal*");
+  g_log_set_fatal_mask ("bu", flags);
 }
 
 static gint my_print_count = 0;
@@ -291,18 +255,8 @@ main (int argc, char *argv[])
   g_test_bug_base ("http://bugzilla.gnome.org/");
 
   g_test_add_func ("/logging/default-handler", test_default_handler);
-  g_test_add_func ("/logging/default-handler:error", test_default_handler_error);
-  g_test_add_func ("/logging/default-handler:critical", test_default_handler_critical);
-  g_test_add_func ("/logging/default-handler:warning", test_default_handler_warning);
-  g_test_add_func ("/logging/default-handler:message", test_default_handler_message);
-  g_test_add_func ("/logging/default-handler:info", test_default_handler_info);
-  g_test_add_func ("/logging/default-handler:bar-info", test_default_handler_bar_info);
-  g_test_add_func ("/logging/default-handler:baz-debug", test_default_handler_baz_debug);
-  g_test_add_func ("/logging/default-handler:debug", test_default_handler_debug);
-  g_test_add_func ("/logging/default-handler:0x400", test_default_handler_0x400);
   g_test_add_func ("/logging/warnings", test_warnings);
   g_test_add_func ("/logging/fatal-log-mask", test_fatal_log_mask);
-  g_test_add_func ("/logging/fatal-log-mask:child", test_fatal_log_mask_child);
   g_test_add_func ("/logging/set-handler", test_set_handler);
   g_test_add_func ("/logging/print-handler", test_print_handler);
   g_test_add_func ("/logging/printerr-handler", test_printerr_handler);