gtestutils: add g_test_trap_subprocess(), deprecate g_test_trap_fork()

g_test_trap_fork() doesn't work on Windows and is potentially flaky on
unix anyway given the fork-but-don't-exec. Replace it with
g_test_trap_subprocess(), which re-spawns the same program with
arguments telling it to run a specific (otherwise-ignored) test case.

Make the existing g_test_trap_fork() unit tests be unix-only (they
never passed on Windows anyway), and add a parallel set of
g_test_trap_subprocess() tests.

https://bugzilla.gnome.org/show_bug.cgi?id=679683
This commit is contained in:
Dan Winship
2012-11-24 15:58:27 -05:00
committed by Matthias Clasen
parent 79fab3e647
commit e3a29184d5
6 changed files with 488 additions and 78 deletions

View File

@@ -2888,6 +2888,7 @@ g_test_perf
g_test_verbose
g_test_undefined
g_test_quiet
g_test_subprocess
g_test_run
GTestFunc
g_test_add_func
@@ -2895,6 +2896,7 @@ GTestDataFunc
g_test_add_data_func
g_test_add_data_func_full
g_test_add
g_test_case_exists
g_test_fail
g_test_message
@@ -2915,7 +2917,7 @@ g_test_expect_message
g_test_assert_expected_messages
GTestTrapFlags
g_test_trap_fork
g_test_trap_subprocess
g_test_trap_has_passed
g_test_trap_reached_timeout
g_test_trap_assert_passed
@@ -2924,6 +2926,7 @@ g_test_trap_assert_stdout
g_test_trap_assert_stdout_unmatched
g_test_trap_assert_stderr
g_test_trap_assert_stderr_unmatched
g_test_trap_fork
g_test_rand_bit
g_test_rand_int