gtestutils: pass open file descriptors to subprocess

The subprocess needs to access the test_log_fd.  If the file descriptors
are not left open, functions such as g_test_message may stomp on file
descriptors open by the subprocess and cause bad behavior of the test.

(Tweaked by Philip Withnall <bugzilla@tecnocode.co.uk> to fix review
comments.)
This commit is contained in:
Paolo Bonzini 2018-11-27 19:24:35 +01:00 committed by Philip Withnall
parent c9f883b221
commit 69a48333c2

View File

@ -3431,6 +3431,8 @@ g_test_trap_subprocess (const char *test_path,
g_ptr_array_add (argv, NULL);
flags = G_SPAWN_DO_NOT_REAP_CHILD;
if (test_log_fd != -1)
flags |= G_SPAWN_LEAVE_DESCRIPTORS_OPEN;
if (test_flags & G_TEST_TRAP_INHERIT_STDIN)
flags |= G_SPAWN_CHILD_INHERITS_STDIN;