diff options
Diffstat (limited to 'tests/libtest/lib583.c')
| -rw-r--r-- | tests/libtest/lib583.c | 59 | 
1 files changed, 35 insertions, 24 deletions
| diff --git a/tests/libtest/lib583.c b/tests/libtest/lib583.c index f1270e1d3..ad5a5cea7 100644 --- a/tests/libtest/lib583.c +++ b/tests/libtest/lib583.c @@ -26,48 +26,59 @@  #include "test.h" -#include <unistd.h>  #include <sys/stat.h> +#include "memdebug.h" +  int test(char *URL)  { -  CURLMcode retVal;    int stillRunning; -  CURLM* multiHandle; -  CURL* curl; -  int res; +  CURLM* multiHandle = NULL; +  CURL* curl = NULL; +  int res = 0; + +  global_init(CURL_GLOBAL_ALL); + +  multi_init(multiHandle); + +  easy_init(curl); -  curl_global_init(CURL_GLOBAL_ALL); +  easy_setopt(curl, CURLOPT_USERPWD, libtest_arg2); +  easy_setopt(curl, CURLOPT_SSH_PUBLIC_KEYFILE, "curl_client_key.pub"); +  easy_setopt(curl, CURLOPT_SSH_PRIVATE_KEYFILE, "curl_client_key"); -  multiHandle = curl_multi_init(); -  curl = curl_easy_init(); +  easy_setopt(curl, CURLOPT_UPLOAD, 1L); +  easy_setopt(curl, CURLOPT_VERBOSE, 1L); -  test_setopt(curl, CURLOPT_USERPWD, libtest_arg2); -  test_setopt(curl, CURLOPT_SSH_PUBLIC_KEYFILE, "curl_client_key.pub"); -  test_setopt(curl, CURLOPT_SSH_PRIVATE_KEYFILE, "curl_client_key"); +  easy_setopt(curl, CURLOPT_URL, URL); +  easy_setopt(curl, CURLOPT_INFILESIZE, (long)5); -  curl_easy_setopt(curl, CURLOPT_UPLOAD, 1); -  curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); +  multi_add_handle(multiHandle, curl); -  curl_easy_setopt(curl, CURLOPT_URL, URL); -  curl_easy_setopt(curl, CURLOPT_INFILESIZE, (long)5); +  /* this tests if removing an easy handle immediately after multi +     perform has been called succeeds or not. */ -  curl_multi_add_handle(multiHandle, curl); -  retVal = curl_multi_perform(multiHandle, &stillRunning); -  if (retVal != CURLM_OK) -    fprintf(stderr, "curl_multi_perform() failed!n"); +  fprintf(stderr, "curl_multi_perform()...\n"); -  fprintf(stderr, "curl_multi_remove_handle()!\n"); -  retVal = curl_multi_remove_handle(multiHandle, curl); -  if (retVal == CURLM_OK) -    fprintf(stderr, "curl_multi_remove_handle() was successful!\n"); +  multi_perform(multiHandle, &stillRunning); + +  fprintf(stderr, "curl_multi_perform() succeeded\n"); + +  fprintf(stderr, "curl_multi_remove_handle()...\n"); +  res = (int) curl_multi_remove_handle(multiHandle, curl); +  if(res) +    fprintf(stderr, "curl_multi_remove_handle() failed, " +            "with code %d\n", res);    else -    fprintf(stderr, "curl_multi_remove_handle() failed\n"); +    fprintf(stderr, "curl_multi_remove_handle() succeeded\n");  test_cleanup: +  /* undocumented cleanup sequence - type UB */ +    curl_easy_cleanup(curl);    curl_multi_cleanup(multiHandle); +  curl_global_cleanup();    return res;  } | 
