aboutsummaryrefslogtreecommitdiff
path: root/tests/libtest/lib509.c
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2006-10-25 05:59:46 +0000
committerYang Tse <yangsita@gmail.com>2006-10-25 05:59:46 +0000
commit384c8f356087178e4779d99d3e0e7f25331293aa (patch)
tree7b7d5aec819f6f47ccc3b28d7390ae62c036535b /tests/libtest/lib509.c
parentf44ef427a2fbe506a35548ebab2b503438d6a027 (diff)
Use curl_global_init() and curl_global_cleanup().
Improve cleanup in case of initialization failure.
Diffstat (limited to 'tests/libtest/lib509.c')
-rw-r--r--tests/libtest/lib509.c158
1 files changed, 85 insertions, 73 deletions
diff --git a/tests/libtest/lib509.c b/tests/libtest/lib509.c
index bdc895195..c6d3113db 100644
--- a/tests/libtest/lib509.c
+++ b/tests/libtest/lib509.c
@@ -176,7 +176,9 @@ int test(char *URL)
{
CURLM* multi;
sslctxparm p;
-
+ CURLMcode res;
+ int running;
+ char done = FALSE;
int i = 0;
CURLMsg *msg;
@@ -189,9 +191,16 @@ int test(char *URL)
portnum = atoi(arg2);
}
- 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;
+ }
- p.curl = curl_easy_init();
+ if ((p.curl = curl_easy_init()) == NULL) {
+ fprintf(stderr, "curl_easy_init() failed\n");
+ curl_global_cleanup();
+ return TEST_ERR_MAJOR_BAD;
+ }
p.accessinfoURL = (unsigned char *) strdup(URL);
p.accesstype = OBJ_obj2nid(OBJ_txt2obj("AD_DVCS",0)) ;
@@ -204,94 +213,97 @@ int test(char *URL)
curl_easy_setopt(p.curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_easy_setopt(p.curl, CURLOPT_SSL_VERIFYHOST, 1);
- fprintf(stderr, "Going to perform %s\n", (char *)p.accessinfoURL);
-
- {
- CURLMcode res;
- int running;
- char done=FALSE;
+ if ((multi = curl_multi_init()) == NULL) {
+ fprintf(stderr, "curl_multi_init() failed\n");
+ curl_easy_cleanup(p.curl);
+ curl_global_cleanup();
+ return TEST_ERR_MAJOR_BAD;
+ }
- multi = curl_multi_init();
+ if ((res = curl_multi_add_handle(multi, p.curl)) != CURLM_OK) {
+ fprintf(stderr, "curl_multi_add_handle() failed, "
+ "with code %d\n", res);
+ curl_multi_cleanup(multi);
+ curl_easy_cleanup(p.curl);
+ curl_global_cleanup();
+ return TEST_ERR_MAJOR_BAD;
+ }
- res = curl_multi_add_handle(multi, p.curl);
+ fprintf(stderr, "Going to perform %s\n", (char *)p.accessinfoURL);
- ml_timedout = FALSE;
- ml_start = curlx_tvnow();
+ ml_timedout = FALSE;
+ ml_start = curlx_tvnow();
- while (!done) {
- fd_set rd, wr, exc;
- int max_fd;
- struct timeval interval;
+ while (!done) {
+ fd_set rd, wr, exc;
+ int max_fd;
+ struct timeval interval;
- interval.tv_sec = 1;
- interval.tv_usec = 0;
+ interval.tv_sec = 1;
+ interval.tv_usec = 0;
- if (curlx_tvdiff(curlx_tvnow(), ml_start) >
- MAIN_LOOP_HANG_TIMEOUT) {
- ml_timedout = TRUE;
+ if (curlx_tvdiff(curlx_tvnow(), ml_start) >
+ MAIN_LOOP_HANG_TIMEOUT) {
+ ml_timedout = TRUE;
+ break;
+ }
+ mp_timedout = FALSE;
+ mp_start = curlx_tvnow();
+
+ while (res == CURLM_CALL_MULTI_PERFORM) {
+ res = curl_multi_perform(multi, &running);
+ if (curlx_tvdiff(curlx_tvnow(), mp_start) >
+ MULTI_PERFORM_HANG_TIMEOUT) {
+ mp_timedout = TRUE;
break;
}
- mp_timedout = FALSE;
- mp_start = curlx_tvnow();
-
- while (res == CURLM_CALL_MULTI_PERFORM) {
- res = curl_multi_perform(multi, &running);
- if (curlx_tvdiff(curlx_tvnow(), mp_start) >
- MULTI_PERFORM_HANG_TIMEOUT) {
- mp_timedout = TRUE;
- break;
- }
- fprintf(stderr, "running=%d res=%d\n",running,res);
- if (running <= 0) {
- done = TRUE;
- break;
- }
- }
- if (mp_timedout || done)
- break;
-
- if (res != CURLM_OK) {
- fprintf(stderr, "not okay???\n");
- i = 80;
+ fprintf(stderr, "running=%d res=%d\n",running,res);
+ if (running <= 0) {
+ done = TRUE;
break;
}
+ }
+ if (mp_timedout || done)
+ break;
- FD_ZERO(&rd);
- FD_ZERO(&wr);
- FD_ZERO(&exc);
- max_fd = 0;
+ if (res != CURLM_OK) {
+ fprintf(stderr, "not okay???\n");
+ i = 80;
+ break;
+ }
- if (curl_multi_fdset(multi, &rd, &wr, &exc, &max_fd) != CURLM_OK) {
- fprintf(stderr, "unexpected failured of fdset.\n");
- i = 89;
- break;
- }
+ FD_ZERO(&rd);
+ FD_ZERO(&wr);
+ FD_ZERO(&exc);
+ max_fd = 0;
- if (select_test(max_fd+1, &rd, &wr, &exc, &interval) == -1) {
- fprintf(stderr, "bad select??\n");
- i =95;
- break;
- }
-
- res = CURLM_CALL_MULTI_PERFORM;
+ if (curl_multi_fdset(multi, &rd, &wr, &exc, &max_fd) != CURLM_OK) {
+ fprintf(stderr, "unexpected failured of fdset.\n");
+ i = 89;
+ break;
}
- if (ml_timedout || mp_timedout) {
- if (ml_timedout) fprintf(stderr, "ml_timedout\n");
- if (mp_timedout) fprintf(stderr, "mp_timedout\n");
- fprintf(stderr, "ABORTING TEST, since it seems "
- "that it would have run forever.\n");
- i = 77;
- }
- else {
- msg = curl_multi_info_read(multi, &running);
- /* this should now contain a result code from the easy handle, get it */
- if(msg)
- i = msg->data.result;
+ if (select_test(max_fd+1, &rd, &wr, &exc, &interval) == -1) {
+ fprintf(stderr, "bad select??\n");
+ i =95;
+ break;
}
+
+ res = CURLM_CALL_MULTI_PERFORM;
}
- if ((!ml_timedout) && (!mp_timedout)) {
+ if (ml_timedout || mp_timedout) {
+ if (ml_timedout) fprintf(stderr, "ml_timedout\n");
+ if (mp_timedout) fprintf(stderr, "mp_timedout\n");
+ fprintf(stderr, "ABORTING TEST, since it seems "
+ "that it would have run forever.\n");
+ i = TEST_ERR_RUNS_FOREVER;
+ }
+ else {
+ msg = curl_multi_info_read(multi, &running);
+ /* this should now contain a result code from the easy handle, get it */
+ if(msg)
+ i = msg->data.result;
fprintf(stderr, "all done\n");
}