summaryrefslogtreecommitdiffstats
path: root/0006-curl-7.21.7-3445fa2.patch
diff options
context:
space:
mode:
Diffstat (limited to '0006-curl-7.21.7-3445fa2.patch')
-rw-r--r--0006-curl-7.21.7-3445fa2.patch146
1 files changed, 146 insertions, 0 deletions
diff --git a/0006-curl-7.21.7-3445fa2.patch b/0006-curl-7.21.7-3445fa2.patch
new file mode 100644
index 0000000..fe9cf74
--- /dev/null
+++ b/0006-curl-7.21.7-3445fa2.patch
@@ -0,0 +1,146 @@
+From 3445fa2e3f28b359a3acd2a884f4e119b11e0a57 Mon Sep 17 00:00:00 2001
+From: Kamil Dudka <kdudka@redhat.com>
+Date: Fri, 26 Aug 2011 11:10:58 +0200
+Subject: [PATCH] tests: break busy loops in tests 502, 555, and 573
+
+---
+ tests/libtest/lib502.c | 23 +++++++++++++++++++++--
+ tests/libtest/lib555.c | 23 +++++++++++++++++++++--
+ tests/libtest/lib573.c | 23 +++++++++++++++++++++--
+ 3 files changed, 63 insertions(+), 6 deletions(-)
+
+diff --git a/tests/libtest/lib502.c b/tests/libtest/lib502.c
+index 9ade12a..9040b2b 100644
+--- a/tests/libtest/lib502.c
++++ b/tests/libtest/lib502.c
+@@ -73,6 +73,10 @@ int test(char *URL)
+ mp_start = tutil_tvnow();
+
+ 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);
+ if (tutil_tvdiff(tutil_tvnow(), mp_start) >
+ MULTI_PERFORM_HANG_TIMEOUT) {
+@@ -83,11 +87,26 @@ int test(char *URL)
+ fprintf(stderr, "nothing left running.\n");
+ 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) fprintf(stderr, "mp_timedout\n");
+- fprintf(stderr, "ABORTING TEST, since it seems "
++ fprintf(stderr, "mp_timedout\nABORTING TEST, since it seems "
+ "that it would have run forever.\n");
+ res = TEST_ERR_RUNS_FOREVER;
+ }
+diff --git a/tests/libtest/lib555.c b/tests/libtest/lib555.c
+index c675015..1e73a5a 100644
+--- a/tests/libtest/lib555.c
++++ b/tests/libtest/lib555.c
+@@ -135,6 +135,10 @@ int test(char *URL)
+ mp_start = tutil_tvnow();
+
+ 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);
+ if (tutil_tvdiff(tutil_tvnow(), mp_start) >
+ MULTI_PERFORM_HANG_TIMEOUT) {
+@@ -148,11 +152,26 @@ int test(char *URL)
+ fprintf(stderr, "nothing left running.\n");
+ 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) fprintf(stderr, "mp_timedout\n");
+- fprintf(stderr, "ABORTING TEST, since it seems "
++ fprintf(stderr, "mp_timedout\nABORTING TEST, since it seems "
+ "that it would have run forever.\n");
+ res = TEST_ERR_RUNS_FOREVER;
+ }
+diff --git a/tests/libtest/lib573.c b/tests/libtest/lib573.c
+index 4661858..b5fafe1 100644
+--- a/tests/libtest/lib573.c
++++ b/tests/libtest/lib573.c
+@@ -76,6 +76,10 @@ int test(char *URL)
+ mp_start = tutil_tvnow();
+
+ 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);
+ if (tutil_tvdiff(tutil_tvnow(), mp_start) >
+ MULTI_PERFORM_HANG_TIMEOUT) {
+@@ -86,11 +90,26 @@ int test(char *URL)
+ fprintf(stderr, "nothing left running.\n");
+ 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) fprintf(stderr, "mp_timedout\n");
+- fprintf(stderr, "ABORTING TEST, since it seems "
++ fprintf(stderr, "mp_timedout\nABORTING TEST, since it seems "
+ "that it would have run forever.\n");
+ res = TEST_ERR_RUNS_FOREVER;
+ }
+--
+1.7.4.4
+