Commit bad67830 authored by Yang Tse's avatar Yang Tse
Browse files

skip test on platforms on which we use select() instead

of poll() and select() happens to be bound by FD_SETSIZE
parent db22c830
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -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 */

+27 −0
Original line number Diff line number Diff line
@@ -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 */