+2012-01-29 Chuanchang Jia <chuanchang.jia@gmail.com> (tiny change)
+ Bruno Haible <bruno@clisp.org>
+
+ poll tests: Make test more robust.
+ * tests/test-poll.c: Include macros.h.
+ (test_accept_first, test_pair, test_socket_pair, test_pipe): Verify
+ return value of various I/O operations.
+ * modules/poll-tests (Files): Add tests/macros.h.
+
2012-01-29 Bruno Haible <bruno@clisp.org>
sys_stat: Fix support for mingw64 and MSVC.
#include <sys/ioctl.h>
#include <errno.h>
+#include "macros.h"
+
#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
# define WINDOWS_NATIVE
#endif
{
addrlen = sizeof (ia);
c = accept (s, (struct sockaddr *) &ia, &addrlen);
+ ASSERT (c >= 0);
close (s);
- write (c, "foo", 3);
- read (c, buf, 3);
+ ASSERT (write (c, "foo", 3) == 3);
+ ASSERT (read (c, buf, 3) == 3);
shutdown (c, SHUT_RD);
close (c);
exit (0);
{
close (s);
c = connect_to_socket (true);
+ ASSERT (c >= 0);
if (poll1_nowait (c, POLLOUT | POLLWRNORM | POLLRDBAND)
!= (POLLOUT | POLLWRNORM))
failed ("cannot write after blocking connect");
- write (c, "foo", 3);
+ ASSERT (write (c, "foo", 3) == 3);
wait (&pid);
if (poll1_wait (c, POLLIN) != POLLIN)
failed ("cannot read data left in the socket by closed process");
- read (c, buf, 3);
- write (c, "foo", 3);
+ ASSERT (read (c, buf, 3) == 3);
+ ASSERT (write (c, "foo", 3) == 3);
if ((poll1_wait (c, POLLIN | POLLOUT) & (POLLHUP | POLLERR)) == 0)
failed ("expecting POLLHUP after shutdown");
close (c);
!= POLLWRNORM)
failed ("expecting POLLWRNORM before writing");
- write (wd, "foo", 3);
+ ASSERT (write (wd, "foo", 3) == 3);
if (poll1_wait (rd, POLLIN | POLLRDNORM) != (POLLIN | POLLRDNORM))
failed ("expecting POLLIN | POLLRDNORM after writing");
if (poll1_nowait (rd, POLLIN) != POLLIN)
if (poll1_nowait (rd, POLLRDNORM) != POLLRDNORM)
failed ("expecting POLLRDNORM after writing");
- read (rd, buf, 3);
+ ASSERT (read (rd, buf, 3) == 3);
}
int s = open_server_socket ();
int c1 = connect_to_socket (false);
int c2 = accept (s, (struct sockaddr *) &ia, &addrlen);
+ ASSERT (s >= 0);
+ ASSERT (c1 >= 0);
+ ASSERT (c2 >= 0);
close (s);
test_pair (c1, c2);
close (c1);
- write (c2, "foo", 3);
+ ASSERT (write (c2, "foo", 3) == 3);
if ((poll1_nowait (c2, POLLIN | POLLOUT) & (POLLHUP | POLLERR)) == 0)
failed ("expecting POLLHUP after shutdown");
{
int fd[2];
- pipe (fd);
+ ASSERT (pipe (fd) >= 0);
test_pair (fd[0], fd[1]);
close (fd[0]);
if ((poll1_wait (fd[1], POLLIN | POLLOUT) & (POLLHUP | POLLERR)) == 0)