]> granicus.if.org Git - curl/commitdiff
Fixed test 553 to pass the torture test.
authorDan Fandrich <dan@coneharvesters.com>
Fri, 11 Jul 2008 18:23:06 +0000 (18:23 +0000)
committerDan Fandrich <dan@coneharvesters.com>
Fri, 11 Jul 2008 18:23:06 +0000 (18:23 +0000)
CHANGES
tests/libtest/lib552.c
tests/libtest/lib553.c

diff --git a/CHANGES b/CHANGES
index 82e3d5a61fd1803efa0b7a05ce10bc5f87f39813..a9bc57cf3d09ed243d6365756a7a7b6bbdaa237e 100644 (file)
--- 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
index 5a0eb1c68260f1f4aecd65aa7f2d4951e04c74bf..1c6e23455111d488ed6de157bb3e8686da60eeb7 100644 (file)
@@ -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;
 }
index 7af25e5bbc943d6e85926739485782ada317f827..0603b3fd5ec927f3294f04ebc1f26b8b6dc6be4b 100644 (file)
@@ -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;
 }