GLib.test_trap_fork
function test_trap_fork(usec_timeout: Number(guint64), test_trap_flags: GLib.TestTrapFlags): Boolean {
// Gjs wrapper for g_test_trap_fork()
}
Fork the current test program to execute a test case that might not return or that might abort.
If usec_timeout is non-0, the forked test case is aborted and considered failing if its run time exceeds it.
The forking behavior can be configured with the GLib.TestTrapFlags flags.
In the following example, the test code forks, the forked child process produces some sample output and exits successfully. The forking parent process then asserts successful child program termination and validates child program outputs.
|[<!-- language="C" --> static void test_fork_patterns (void) { if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR)) { g_print ("some stdout text: somagic17\n"); g_printerr ("some stderr text: semagic43\n"); exit (0); // successful test run } g_test_trap_assert_passed (); g_test_trap_assert_stdout ("*somagic17*"); g_test_trap_assert_stderr ("*semagic43*"); } ]|
Since 2.16
- usec_timeout
Timeout for the forked test in micro seconds.
- test_trap_flags
Flags to modify forking behaviour.
- Returns
true for the forked child and false for the executing parent process.