From: Tim-Philipp Müller Date: Tue, 28 Oct 2014 00:04:05 +0000 (+0000) Subject: tests: fix fdsrc test corner case X-Git-Tag: 1.6.1~691 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=caed34f45fa028ded4743ce1230d9d26feece003;p=platform%2Fupstream%2Fgstreamer.git tests: fix fdsrc test corner case Make pipe socket non-blocking, so we don't end up being blocked in a write on the pipe while the src is eos and not reading data any more, and thus we never unblock and never notice that we're done. This would happen quite reliably on the rpi. --- diff --git a/tests/check/elements/fdsrc.c b/tests/check/elements/fdsrc.c index 12e9d10..abcf951 100644 --- a/tests/check/elements/fdsrc.c +++ b/tests/check/elements/fdsrc.c @@ -87,9 +87,18 @@ GST_START_TEST (test_num_buffers) GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing"); +#if defined (G_OS_UNIX) && defined (O_NONBLOCK) + { + int flags; + + flags = fcntl (pipe_fd[1], F_GETFL, 0); + fcntl (pipe_fd[1], F_SETFL, flags | O_NONBLOCK); + } +#endif + memset (data, 0, 4096); while (!have_eos) { - fail_if (write (pipe_fd[1], data, 4096) < 0); + write (pipe_fd[1], data, 4096); g_usleep (100); }