gtestutils: Error out if /dev/null stdin redirection fails

https://bugzilla.gnome.org/show_bug.cgi?id=730189
This commit is contained in:
Philip Withnall 2014-05-16 23:08:10 +01:00
parent 570b27b9ac
commit d3fd88ddd5

View File

@ -2680,7 +2680,11 @@ g_test_trap_fork (guint64 usec_timeout,
close (stdout_pipe[0]); close (stdout_pipe[0]);
close (stderr_pipe[0]); close (stderr_pipe[0]);
if (!(test_trap_flags & G_TEST_TRAP_INHERIT_STDIN)) if (!(test_trap_flags & G_TEST_TRAP_INHERIT_STDIN))
{
fd0 = g_open ("/dev/null", O_RDONLY, 0); fd0 = g_open ("/dev/null", O_RDONLY, 0);
if (fd0 < 0)
g_error ("failed to open /dev/null for stdin redirection");
}
if (sane_dup2 (stdout_pipe[1], 1) < 0 || sane_dup2 (stderr_pipe[1], 2) < 0 || (fd0 >= 0 && sane_dup2 (fd0, 0) < 0)) if (sane_dup2 (stdout_pipe[1], 1) < 0 || sane_dup2 (stderr_pipe[1], 2) < 0 || (fd0 >= 0 && sane_dup2 (fd0, 0) < 0))
g_error ("failed to dup2() in forked test program: %s", g_strerror (errno)); g_error ("failed to dup2() in forked test program: %s", g_strerror (errno));
if (fd0 >= 3) if (fd0 >= 3)