diff --git a/CHANGES b/CHANGES index 82e3d5a61..a9bc57cf3 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,9 @@ Changelog +Daniel Fandrich (11 Jul 2008) +- Fixed test 553 to pass the torture test. + Daniel Stenberg (11 Jul 2008) - Daniel Fandrich found out we didn't pass on the user-agent properly when doing "proxy-tunnels" with non-HTTP prototols and that was simply because diff --git a/tests/libtest/lib552.c b/tests/libtest/lib552.c index 5a0eb1c68..1c6e23455 100644 --- a/tests/libtest/lib552.c +++ b/tests/libtest/lib552.c @@ -146,10 +146,10 @@ static curlioerr ioctl_callback(CURL * handle, int cmd, void *clientp) int test(char *URL) { CURL *curl; - CURLcode res; + CURLcode res = CURLE_OUT_OF_MEMORY; struct data config; size_t i; - char fill[] = "test data"; + static const char fill[] = "test data"; config.trace_ascii = 1; /* enable ascii tracing */ @@ -190,5 +190,6 @@ int test(char *URL) /* always cleanup */ curl_easy_cleanup(curl); } - return 0; + curl_global_cleanup(); + return (int)res; } diff --git a/tests/libtest/lib553.c b/tests/libtest/lib553.c index 7af25e5bb..0603b3fd5 100644 --- a/tests/libtest/lib553.c +++ b/tests/libtest/lib553.c @@ -39,36 +39,47 @@ static size_t myreadfunc(void *ptr, size_t size, size_t nmemb, void *stream) #define SIZE_HEADERS 5000 static char buf[SIZE_HEADERS + 100]; + int test(char *URL) { CURL *curl; CURLcode res; int i; - struct curl_slist *headerlist=NULL; + struct curl_slist *headerlist=NULL, *hl; curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); - for (i = 0; i < NUM_HEADERS; i++) { - int len; - len = sprintf(buf, "Header%d: ", i); - memset(&buf[len], 'A', SIZE_HEADERS); - buf[len + SIZE_HEADERS]=0; /* zero terminate */ - headerlist = curl_slist_append(headerlist, buf); + if(curl) { + for (i = 0; i < NUM_HEADERS; i++) { + int len = sprintf(buf, "Header%d: ", i); + memset(&buf[len], 'A', SIZE_HEADERS); + buf[len + SIZE_HEADERS]=0; /* zero terminate */ + hl = curl_slist_append(headerlist, buf); + if (!hl) + goto errout; + headerlist = hl; + } + hl = curl_slist_append(headerlist, "Expect: "); + if (!hl) + goto errout; + headerlist = hl; + + curl_easy_setopt(curl, CURLOPT_URL, URL); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist); + curl_easy_setopt(curl, CURLOPT_POST, 1L); + curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long)POSTLEN); + curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); + curl_easy_setopt(curl, CURLOPT_HEADER, 1L); + curl_easy_setopt(curl, CURLOPT_READFUNCTION, myreadfunc); + res = curl_easy_perform(curl); + +errout: + curl_easy_cleanup(curl); + + curl_slist_free_all(headerlist); } - headerlist = curl_slist_append(headerlist, "Expect: "); - - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist); - curl_easy_setopt(curl, CURLOPT_POST, 1L); - curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long)POSTLEN); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - curl_easy_setopt(curl, CURLOPT_HEADER, 1L); - curl_easy_setopt(curl, CURLOPT_READFUNCTION, myreadfunc); - res = curl_easy_perform(curl); - curl_easy_cleanup(curl); - - curl_slist_free_all(headerlist); + curl_global_cleanup(); return (int)res; }