函数
GLibtest_trap_fork
已弃用:未知 自:2.16
声明 [src]
gboolean
g_test_trap_fork (
guint64 usec_timeout,
GTestTrapFlags test_trap_flags
)
说明 [src]
为当前测试程序 fork,以执行可能不会返回或可能中止的测试用例。
如果 usec_timeout
非 0,则在 fork 的测试用例运行时间超过 usec_timeout
时,会中止测试用例并认为测试用例失败。
可以使用 GTestTrapFlags
标志配置 fork 行为。
在以下示例中,测试代码执行 fork,fork 的子进程会生成一些示例输出并成功退出。然后,fork 的父进程断言子程序成功终止,并验证子程序输出。
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
");
g_printerr ("some stderr text: semagic43
");
exit (0); // successful test run
}
g_test_trap_assert_passed ();
g_test_trap_assert_stdout ("*somagic17*");
g_test_trap_assert_stderr ("*semagic43*");
}
自版本 2.16 起提供
自版本未知起弃用
此函数仅在 Unix 平台中实现,且由于 fork-without-exec 中固有的问题而并非总是可靠,并且在文件描述符上不会设置 close-on-exec 标志。请改用 [email protected]_trap_subprocess] 。
参数
usec_timeout
-
类型:
guint64
以微秒为单位的 fork 测试超时时间。
test_trap_flags
-
类型:
GTestTrapFlags
用于修改 fork 行为的标志。