From a02a6f2e1dcad63999954bb72825a084800742ae Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Thu, 13 Dec 2018 22:17:50 +0100 Subject: [PATCH] select tests: Avoid test failure on Cygwin. * tests/test-select.h (test_bad_fd): Use an fd < FD_SETSIZE. --- ChangeLog | 5 +++++ tests/test-select.h | 13 ++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index db004ee935..e3c929b527 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2018-12-13 Bruno Haible + + select tests: Avoid test failure on Cygwin. + * tests/test-select.h (test_bad_fd): Use an fd < FD_SETSIZE. + 2018-12-13 Bruno Haible localtime-buffer: Avoid endless recursion in localtime and gmtime. diff --git a/tests/test-select.h b/tests/test-select.h index eae26b0d15..b0f17f30c0 100644 --- a/tests/test-select.h +++ b/tests/test-select.h @@ -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) -- 2.39.5