# HG changeset patch # User Timo Sirainen # Date 1507224329 -10800 # Node ID c6c9c24d618207bf8fc30ede7ca6e8abb23b6af3 # Parent 707ae9de38126077a723bb1c17bd035cf2cd1f4f lib: iostream-multiplex tests - Fix hangs by setting the pipe fds non-blocking diff -r 707ae9de3812 -r c6c9c24d6182 src/lib/test-istream-multiplex.c --- a/src/lib/test-istream-multiplex.c Thu Oct 05 20:24:11 2017 +0300 +++ b/src/lib/test-istream-multiplex.c Thu Oct 05 20:25:29 2017 +0300 @@ -2,6 +2,7 @@ #include "test-lib.h" #include "ioloop.h" +#include "fd-set-nonblock.h" #include "str.h" #include "crc32.h" #include "randgen.h" @@ -284,6 +285,8 @@ int fds[2]; test_assert(pipe(fds) == 0); + fd_set_nonblock(fds[0], TRUE); + fd_set_nonblock(fds[1], TRUE); struct ostream *os = o_stream_create_fd(fds[1], (size_t)-1, FALSE); struct istream *is = i_stream_create_fd(fds[0], 10 + rand() % 10, FALSE); diff -r 707ae9de3812 -r c6c9c24d6182 src/lib/test-multiplex.c --- a/src/lib/test-multiplex.c Thu Oct 05 20:24:11 2017 +0300 +++ b/src/lib/test-multiplex.c Thu Oct 05 20:25:29 2017 +0300 @@ -3,6 +3,7 @@ #include "test-lib.h" #include "ioloop.h" #include "str.h" +#include "fd-set-nonblock.h" #include "istream.h" #include "istream-multiplex.h" #include "ostream.h" @@ -83,6 +84,8 @@ channel->io = io_add_istream(is, test_istream_multiplex_stream_read, channel); test_assert(pipe(channel->fds) == 0); + fd_set_nonblock(channel->fds[0], TRUE); + fd_set_nonblock(channel->fds[1], TRUE); channel->in_alt = i_stream_create_fd(channel->fds[0], (size_t)-1, FALSE); channel->out_alt = o_stream_create_fd(channel->fds[1], IO_BLOCK_SIZE, FALSE); channel->io_alt = io_add_istream(channel->in_alt, test_istream_read_alt, @@ -119,6 +122,8 @@ int fds[2]; test_assert(pipe(fds) == 0); + fd_set_nonblock(fds[0], TRUE); + fd_set_nonblock(fds[1], TRUE); struct ostream *os = o_stream_create_fd(fds[1], (size_t)-1, FALSE); struct istream *is = i_stream_create_fd(fds[0], (size_t)-1, FALSE); diff -r 707ae9de3812 -r c6c9c24d6182 src/lib/test-ostream-multiplex.c --- a/src/lib/test-ostream-multiplex.c Thu Oct 05 20:24:11 2017 +0300 +++ b/src/lib/test-ostream-multiplex.c Thu Oct 05 20:25:29 2017 +0300 @@ -3,6 +3,7 @@ #include "test-lib.h" #include "randgen.h" #include "ioloop.h" +#include "fd-set-nonblock.h" #include "str.h" #include "istream.h" #include "ostream-private.h" @@ -108,6 +109,8 @@ int fds[2]; test_assert(pipe(fds) == 0); + fd_set_nonblock(fds[0], TRUE); + fd_set_nonblock(fds[1], TRUE); struct ostream *os = o_stream_create_fd(fds[1], (size_t)-1, FALSE); struct istream *is = i_stream_create_fd(fds[0], (size_t)-1, FALSE);