From 8efcec45c604a0487edba04b468258ee0db7e8d4 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Sun, 25 Sep 2011 20:57:48 +0200 Subject: curl: sync with f16 --- 0006-curl-7.21.7-3445fa2.patch | 146 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 0006-curl-7.21.7-3445fa2.patch (limited to '0006-curl-7.21.7-3445fa2.patch') 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 +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 + -- cgit