Commit 3445fa2e authored by Kamil Dudka's avatar Kamil Dudka
Browse files

tests: break busy loops in tests 502, 555, and 573

parent 5a45dc4a
Loading
Loading
Loading
Loading
+21 −2
Original line number Original line Diff line number Diff line
@@ -73,6 +73,10 @@ int test(char *URL)
  mp_start = tutil_tvnow();
  mp_start = tutil_tvnow();


  while (running) {
  while (running) {
    static struct timeval timeout = /* 100 ms */ { 0, 100000L };
    fd_set fdread, fdwrite, fdexcep;
    int maxfd = -1;

    res = (int)curl_multi_perform(m, &running);
    res = (int)curl_multi_perform(m, &running);
    if (tutil_tvdiff(tutil_tvnow(), mp_start) >
    if (tutil_tvdiff(tutil_tvnow(), mp_start) >
        MULTI_PERFORM_HANG_TIMEOUT) {
        MULTI_PERFORM_HANG_TIMEOUT) {
@@ -83,11 +87,26 @@ int test(char *URL)
      fprintf(stderr, "nothing left running.\n");
      fprintf(stderr, "nothing left running.\n");
      break;
      break;
    }
    }

    FD_ZERO(&fdread);
    FD_ZERO(&fdwrite);
    FD_ZERO(&fdexcep);
    curl_multi_fdset(m, &fdread, &fdwrite, &fdexcep, &maxfd);

    /* In a real-world program you OF COURSE check the return code of the
       function calls.  On success, the value of maxfd is guaranteed to be
       greater or equal than -1.  We call select(maxfd + 1, ...), specially in
       case of (maxfd == -1), we call select(0, ...), which is basically equal
       to sleep. */

    if (select(maxfd + 1, &fdread, &fdwrite, &fdexcep, &timeout) == -1) {
      res = ~CURLM_OK;
      break;
    }
  }
  }


  if (mp_timedout) {
  if (mp_timedout) {
    if (mp_timedout) fprintf(stderr, "mp_timedout\n");
    fprintf(stderr, "mp_timedout\nABORTING TEST, since it seems "
    fprintf(stderr, "ABORTING TEST, since it seems "
            "that it would have run forever.\n");
            "that it would have run forever.\n");
    res = TEST_ERR_RUNS_FOREVER;
    res = TEST_ERR_RUNS_FOREVER;
  }
  }
+21 −2
Original line number Original line Diff line number Diff line
@@ -135,6 +135,10 @@ int test(char *URL)
  mp_start = tutil_tvnow();
  mp_start = tutil_tvnow();


  while (running) {
  while (running) {
    static struct timeval timeout = /* 100 ms */ { 0, 100000L };
    fd_set fdread, fdwrite, fdexcep;
    int maxfd = -1;

    res = (int)curl_multi_perform(m, &running);
    res = (int)curl_multi_perform(m, &running);
    if (tutil_tvdiff(tutil_tvnow(), mp_start) >
    if (tutil_tvdiff(tutil_tvnow(), mp_start) >
        MULTI_PERFORM_HANG_TIMEOUT) {
        MULTI_PERFORM_HANG_TIMEOUT) {
@@ -148,11 +152,26 @@ int test(char *URL)
      fprintf(stderr, "nothing left running.\n");
      fprintf(stderr, "nothing left running.\n");
      break;
      break;
    }
    }

    FD_ZERO(&fdread);
    FD_ZERO(&fdwrite);
    FD_ZERO(&fdexcep);
    curl_multi_fdset(m, &fdread, &fdwrite, &fdexcep, &maxfd);

    /* In a real-world program you OF COURSE check the return code of the
       function calls.  On success, the value of maxfd is guaranteed to be
       greater or equal than -1.  We call select(maxfd + 1, ...), specially in
       case of (maxfd == -1), we call select(0, ...), which is basically equal
       to sleep. */

    if (select(maxfd + 1, &fdread, &fdwrite, &fdexcep, &timeout) == -1) {
      res = ~CURLM_OK;
      break;
    }
  }
  }


  if (mp_timedout) {
  if (mp_timedout) {
    if (mp_timedout) fprintf(stderr, "mp_timedout\n");
    fprintf(stderr, "mp_timedout\nABORTING TEST, since it seems "
    fprintf(stderr, "ABORTING TEST, since it seems "
            "that it would have run forever.\n");
            "that it would have run forever.\n");
    res = TEST_ERR_RUNS_FOREVER;
    res = TEST_ERR_RUNS_FOREVER;
  }
  }
+21 −2
Original line number Original line Diff line number Diff line
@@ -76,6 +76,10 @@ int test(char *URL)
  mp_start = tutil_tvnow();
  mp_start = tutil_tvnow();


  while (running) {
  while (running) {
    static struct timeval timeout = /* 100 ms */ { 0, 100000L };
    fd_set fdread, fdwrite, fdexcep;
    int maxfd = -1;

    res = (int)curl_multi_perform(m, &running);
    res = (int)curl_multi_perform(m, &running);
    if (tutil_tvdiff(tutil_tvnow(), mp_start) >
    if (tutil_tvdiff(tutil_tvnow(), mp_start) >
        MULTI_PERFORM_HANG_TIMEOUT) {
        MULTI_PERFORM_HANG_TIMEOUT) {
@@ -86,11 +90,26 @@ int test(char *URL)
      fprintf(stderr, "nothing left running.\n");
      fprintf(stderr, "nothing left running.\n");
      break;
      break;
    }
    }

    FD_ZERO(&fdread);
    FD_ZERO(&fdwrite);
    FD_ZERO(&fdexcep);
    curl_multi_fdset(m, &fdread, &fdwrite, &fdexcep, &maxfd);

    /* In a real-world program you OF COURSE check the return code of the
       function calls.  On success, the value of maxfd is guaranteed to be
       greater or equal than -1.  We call select(maxfd + 1, ...), specially in
       case of (maxfd == -1), we call select(0, ...), which is basically equal
       to sleep. */

    if (select(maxfd + 1, &fdread, &fdwrite, &fdexcep, &timeout) == -1) {
      res = ~CURLM_OK;
      break;
    }
  }
  }


  if (mp_timedout) {
  if (mp_timedout) {
    if (mp_timedout) fprintf(stderr, "mp_timedout\n");
    fprintf(stderr, "mp_timedout\nABORTING TEST, since it seems "
    fprintf(stderr, "ABORTING TEST, since it seems "
            "that it would have run forever.\n");
            "that it would have run forever.\n");
    res = TEST_ERR_RUNS_FOREVER;
    res = TEST_ERR_RUNS_FOREVER;
  }
  }