diff --git a/tests/libtest/lib518.c b/tests/libtest/lib518.c index ffe38961ebd6e5d8aa4bb13c746375bdf13c124f..47cea8244128f0ecba9a11da93fb1c07eb6b0341 100644 --- a/tests/libtest/lib518.c +++ b/tests/libtest/lib518.c @@ -344,6 +344,33 @@ static int rlimit(int keep_open) sprintf(strbuff, fmt, num_open.rlim_max); fprintf(stderr, "%s file descriptors open\n", strbuff); +#if !defined(HAVE_POLL_FINE) && \ + !defined(CURL_HAVE_WSAPOLL) && \ + !defined(USE_WINSOCK) && \ + !defined(TPF) + + /* + * when using select() instead of poll() we cannot test + * libcurl functionality with a socket number equal or + * greater than FD_SETSIZE. In any case, macro VERIFY_SOCK + * in lib/select.c enforces this check and protects libcurl + * from a possible crash. The effect of this protection + * is that test 518 will always fail, since the actual + * call to select() never takes place. We skip test 518 + * with an indication that select limit would be exceeded. + */ + + sprintf(strbuff2, fmt, num_open.rlim_max); + sprintf(strbuff, "fds open %s > select limit %d", + strbuff2, FD_SETSIZE); + store_errmsg(strbuff, 0); + fprintf(stderr, "%s\n", msgbuff); + close_file_descriptors(); + free(memchunk); + return -10; + +#endif + /* free the chunk of memory we were reserving so that it becomes becomes available to the test */ diff --git a/tests/libtest/lib537.c b/tests/libtest/lib537.c index ab24b424241fd2543f8f8a8d3e9db9d7edddc207..ebd100e502b448572bd2303d64eb3d95891f0bdb 100644 --- a/tests/libtest/lib537.c +++ b/tests/libtest/lib537.c @@ -340,6 +340,33 @@ static int rlimit(int keep_open) sprintf(strbuff, fmt, num_open.rlim_max); fprintf(stderr, "%s file descriptors open\n", strbuff); +#if !defined(HAVE_POLL_FINE) && \ + !defined(CURL_HAVE_WSAPOLL) && \ + !defined(USE_WINSOCK) && \ + !defined(TPF) + + /* + * when using select() instead of poll() we cannot test + * libcurl functionality with a socket number equal or + * greater than FD_SETSIZE. In any case, macro VERIFY_SOCK + * in lib/select.c enforces this check and protects libcurl + * from a possible crash. The effect of this protection + * is that test 537 will always fail, since the actual + * call to select() never takes place. We skip test 537 + * with an indication that select limit would be exceeded. + */ + + sprintf(strbuff2, fmt, num_open.rlim_max); + sprintf(strbuff, "fds open %s > select limit %d", + strbuff2, FD_SETSIZE); + store_errmsg(strbuff, 0); + fprintf(stderr, "%s\n", msgbuff); + close_file_descriptors(); + free(memchunk); + return -8; + +#endif + /* free the chunk of memory we were reserving so that it becomes becomes available to the test */