Commit f764da8a authored by Yang Tse's avatar Yang Tse
Browse files

test case 583: ensure that test failures don't go unnoticed

parent c8ba8740
Loading
Loading
Loading
Loading
+3 −4
Original line number Original line Diff line number Diff line
@@ -35,9 +35,8 @@ sftp://localhost:%SSHPORT%PWD/log/upload583.txt %USER:


# Verify data after the test has been "shot"
# Verify data after the test has been "shot"
<verify>
<verify>
<strip>
<errorcode>
</strip>
0
<protocol>
</errorcode>
</protocol>
</verify>
</verify>
</testcase>
</testcase>
+50 −18
Original line number Original line Diff line number Diff line
@@ -34,43 +34,75 @@


int test(char *URL)
int test(char *URL)
{
{
  CURLMcode retVal;
  int stillRunning;
  int stillRunning;
  CURLM* multiHandle;
  CURLM* multiHandle;
  CURL* curl;
  CURL* curl;
  int res1 = 0;
  int res;
  int res;


  curl_global_init(CURL_GLOBAL_ALL);
  if(curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
    fprintf(stderr, "curl_global_init() failed\n");
    return TEST_ERR_MAJOR_BAD;
  }


  multiHandle = curl_multi_init();
  if((multiHandle = curl_multi_init()) == NULL) {
  curl = curl_easy_init();
    fprintf(stderr, "curl_multi_init() failed\n");
    curl_global_cleanup();
    return TEST_ERR_MAJOR_BAD;
  }

  if((curl = curl_easy_init()) == NULL) {
    fprintf(stderr, "curl_easy_init() failed\n");
    curl_multi_cleanup(multiHandle);
    curl_global_cleanup();
    return TEST_ERR_MAJOR_BAD;
  }


  test_setopt(curl, CURLOPT_USERPWD, libtest_arg2);
  test_setopt(curl, CURLOPT_USERPWD, libtest_arg2);
  test_setopt(curl, CURLOPT_SSH_PUBLIC_KEYFILE, "curl_client_key.pub");
  test_setopt(curl, CURLOPT_SSH_PUBLIC_KEYFILE, "curl_client_key.pub");
  test_setopt(curl, CURLOPT_SSH_PRIVATE_KEYFILE, "curl_client_key");
  test_setopt(curl, CURLOPT_SSH_PRIVATE_KEYFILE, "curl_client_key");


  curl_easy_setopt(curl, CURLOPT_UPLOAD, 1);
  test_setopt(curl, CURLOPT_UPLOAD, 1);
  curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
  test_setopt(curl, CURLOPT_VERBOSE, 1);


  curl_easy_setopt(curl, CURLOPT_URL, URL);
  test_setopt(curl, CURLOPT_URL, URL);
  curl_easy_setopt(curl, CURLOPT_INFILESIZE, (long)5);
  test_setopt(curl, CURLOPT_INFILESIZE, (long)5);


  curl_multi_add_handle(multiHandle, curl);
  if((res = (int)curl_multi_add_handle(multiHandle, curl)) != CURLM_OK) {
  retVal = curl_multi_perform(multiHandle, &stillRunning);
    fprintf(stderr, "curl_multi_add_handle() failed, "
  if (retVal != CURLM_OK)
            "with code %d\n", res);
    fprintf(stderr, "curl_multi_perform() failed!n");
    curl_easy_cleanup(curl);
    curl_multi_cleanup(multiHandle);
    curl_global_cleanup();
    return TEST_ERR_MAJOR_BAD;
  }

  /* this tests if removing an easy handle immediately after multi
     perform has been called succeeds or not. Logged afterwards */
    
  res1 = (int) curl_multi_perform(multiHandle, &stillRunning);
  res  = (int) curl_multi_remove_handle(multiHandle, curl);


  fprintf(stderr, "curl_multi_remove_handle()!\n");
  if(res1)
  retVal = curl_multi_remove_handle(multiHandle, curl);
    fprintf(stderr, "curl_multi_perform() failed, "
  if (retVal == CURLM_OK)
            "with code %d\n", res1);
    fprintf(stderr, "curl_multi_remove_handle() was successful!\n");
  else
  else
    fprintf(stderr, "curl_multi_remove_handle() failed\n");
    fprintf(stderr, "curl_multi_perform() succeeded\n");

  if(res)
    fprintf(stderr, "curl_multi_remove_handle() failed, "
            "with code %d\n", res);
  else
    fprintf(stderr, "curl_multi_remove_handle() succeeded\n");


test_cleanup:
test_cleanup:


  curl_easy_cleanup(curl);
  curl_easy_cleanup(curl);
  curl_multi_cleanup(multiHandle);
  curl_multi_cleanup(multiHandle);
  curl_global_cleanup();


  if(res)
    return res;
    return res;
  else
    return res1;
}
}