]> Savannah Git Hosting - gnulib.git/commitdiff
select tests: Avoid test failure on Cygwin.
authorBruno Haible <bruno@clisp.org>
Thu, 13 Dec 2018 21:17:50 +0000 (22:17 +0100)
committerBruno Haible <bruno@clisp.org>
Thu, 13 Dec 2018 21:17:50 +0000 (22:17 +0100)
* tests/test-select.h (test_bad_fd): Use an fd < FD_SETSIZE.

ChangeLog
tests/test-select.h

index db004ee935aad909d2bee355549b8ce16d3c15fb..e3c929b52704d5b1b80fb577fb6a7a36f6a124e9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2018-12-13  Bruno Haible  <bruno@clisp.org>
+
+       select tests: Avoid test failure on Cygwin.
+       * tests/test-select.h (test_bad_fd): Use an fd < FD_SETSIZE.
+
 2018-12-13  Bruno Haible  <bruno@clisp.org>
 
        localtime-buffer: Avoid endless recursion in localtime and gmtime.
index eae26b0d15d547907c56424a3fff9d48daac6025..b0f17f30c00c31a99b72d2c162acc8d0c69334a8 100644 (file)
@@ -242,9 +242,11 @@ test_bad_nfd (select_fn my_select)
   /* Can't test FD_SETSIZE + 1 for EINVAL, since some systems allow
      dynamically larger set size by redefining FD_SETSIZE anywhere up
      to the actual maximum fd.  */
-  /* if (do_select_bad_nfd_nowait (FD_SETSIZE + 1, my_select) != -1 */
-  /*     || errno != EINVAL) */
-  /*   failed ("invalid errno after bogus nfds"); */
+#if 0
+  if (do_select_bad_nfd_nowait (FD_SETSIZE + 1, my_select) != -1
+      || errno != EINVAL)
+    failed ("invalid errno after bogus nfds");
+#endif
 }
 
 /* Test select(2) on invalid file descriptors.  */
@@ -294,6 +296,11 @@ test_bad_fd (select_fn my_select)
 # else
   fd = 99;
 # endif
+  /* Even on the best POSIX compliant platforms, values of fd >= FD_SETSIZE
+     require an nfds argument that is > FD_SETSIZE and thus may lead to EINVAL,
+     not EBADF.  */
+  if (fd >= FD_SETSIZE)
+    fd = FD_SETSIZE - 1;
   close (fd);
 
   if (do_select_bad_fd_nowait (fd, SEL_IN, my_select) == 0 || errno != EBADF)