Base code merged to SPIN 2.4
[platform/upstream/curl.git] / tests / libtest / lib506.c
index 4a3ec5a..4dad0d9 100644 (file)
@@ -175,11 +175,14 @@ int test(char *URL)
 {
   int res;
   CURLSHcode scode = CURLSHE_OK;
+  CURLcode code = CURLE_OK;
   char *url = NULL;
   struct Tdata tdata;
   CURL *curl;
   CURLSH *share;
   struct curl_slist *headers = NULL;
+  struct curl_slist *cookies = NULL;
+  struct curl_slist *next_cookie = NULL;
   int i;
   struct userdata user;
 
@@ -296,6 +299,55 @@ int test(char *URL)
   printf( "PERFORM\n" );
   curl_easy_perform( curl );
 
+  printf( "CLEANUP\n" );
+  curl_easy_cleanup( curl );
+  curl_free(url);
+  curl_slist_free_all( headers );
+
+  /* load cookies */
+  if ((curl = curl_easy_init()) == NULL) {
+    fprintf(stderr, "curl_easy_init() failed\n");
+    curl_share_cleanup(share);
+    curl_global_cleanup();
+    return TEST_ERR_MAJOR_BAD;
+  }
+  url = suburl( URL, i );
+  headers = sethost( NULL );
+  test_setopt( curl, CURLOPT_HTTPHEADER, headers );
+  test_setopt( curl, CURLOPT_URL,        url );
+  printf( "CURLOPT_SHARE\n" );
+  test_setopt( curl, CURLOPT_SHARE,      share );
+  printf( "CURLOPT_COOKIELIST ALL\n" );
+  test_setopt( curl, CURLOPT_COOKIELIST, "ALL" );
+  printf( "CURLOPT_COOKIEJAR\n" );
+  test_setopt( curl, CURLOPT_COOKIEFILE, JAR );
+  printf( "CURLOPT_COOKIELIST RELOAD\n" );
+  test_setopt( curl, CURLOPT_COOKIELIST, "RELOAD" );
+
+  code = curl_easy_getinfo(curl, CURLINFO_COOKIELIST, &cookies);
+  if ( code != CURLE_OK )
+  {
+    fprintf(stderr, "curl_easy_getinfo() failed\n");
+    res = TEST_ERR_MAJOR_BAD;
+    goto test_cleanup;
+  }
+  printf("loaded cookies:\n");
+  if ( !cookies )
+  {
+    fprintf(stderr, "  reloading cookies from '%s' failed\n", JAR);
+    res = TEST_ERR_MAJOR_BAD;
+    goto test_cleanup;
+  }
+  printf("-----------------\n");
+  next_cookie = cookies;
+  while ( next_cookie )
+  {
+    printf( "  %s\n", next_cookie->data );
+    next_cookie = next_cookie->next;
+  }
+  printf("-----------------\n");
+  curl_slist_free_all( cookies );
+
   /* try to free share, expect to fail because share is in use*/
   printf( "try SHARE_CLEANUP...\n" );
   scode = curl_share_cleanup( share );
@@ -312,12 +364,8 @@ test_cleanup:
   /* clean up last handle */
   printf( "CLEANUP\n" );
   curl_easy_cleanup( curl );
-
-  if ( headers )
-    curl_slist_free_all( headers );
-
-  if ( url )
-    curl_free(url);
+  curl_slist_free_all( headers );
+  curl_free(url);
 
   /* free share */
   printf( "SHARE_CLEANUP\n" );