mirror of
https://github.com/curl/curl.git
synced 2026-08-25 22:13:33 +03:00
parent
f389953da0
commit
5ada900458
1 changed files with 20 additions and 9 deletions
|
|
@ -100,6 +100,9 @@ UNITTEST_START
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int testnum = sizeof(tests) / sizeof(struct testcase);
|
int testnum = sizeof(tests) / sizeof(struct testcase);
|
||||||
|
struct Curl_multi *multi = NULL;
|
||||||
|
struct Curl_easy *easy = NULL;
|
||||||
|
struct curl_slist *list = NULL;
|
||||||
|
|
||||||
/* important: we setup cache outside of the loop
|
/* important: we setup cache outside of the loop
|
||||||
and also clean cache after the loop. In contrast,for example,
|
and also clean cache after the loop. In contrast,for example,
|
||||||
|
|
@ -110,11 +113,9 @@ UNITTEST_START
|
||||||
int addressnum = sizeof (tests[i].address) / sizeof (*tests[i].address);
|
int addressnum = sizeof (tests[i].address) / sizeof (*tests[i].address);
|
||||||
struct Curl_addrinfo *addr;
|
struct Curl_addrinfo *addr;
|
||||||
struct Curl_dns_entry *dns;
|
struct Curl_dns_entry *dns;
|
||||||
struct curl_slist *list;
|
|
||||||
void *entry_id;
|
void *entry_id;
|
||||||
bool problem = false;
|
bool problem = false;
|
||||||
struct Curl_multi *multi;
|
easy = curl_easy_init();
|
||||||
struct Curl_easy *easy = curl_easy_init();
|
|
||||||
if(!easy) {
|
if(!easy) {
|
||||||
curl_global_cleanup();
|
curl_global_cleanup();
|
||||||
return CURLE_OUT_OF_MEMORY;
|
return CURLE_OUT_OF_MEMORY;
|
||||||
|
|
@ -122,21 +123,23 @@ UNITTEST_START
|
||||||
/* create a multi handle and add the easy handle to it so that the
|
/* create a multi handle and add the easy handle to it so that the
|
||||||
hostcache is setup */
|
hostcache is setup */
|
||||||
multi = curl_multi_init();
|
multi = curl_multi_init();
|
||||||
|
if(!multi)
|
||||||
|
goto error;
|
||||||
curl_multi_add_handle(multi, easy);
|
curl_multi_add_handle(multi, easy);
|
||||||
|
|
||||||
list = curl_slist_append(NULL, tests[i].optval);
|
list = curl_slist_append(NULL, tests[i].optval);
|
||||||
if(!list)
|
if(!list)
|
||||||
goto unit_test_abort;
|
goto error;
|
||||||
|
|
||||||
curl_easy_setopt(easy, CURLOPT_RESOLVE, list);
|
curl_easy_setopt(easy, CURLOPT_RESOLVE, list);
|
||||||
|
|
||||||
Curl_loadhostpairs(easy);
|
if(Curl_loadhostpairs(easy))
|
||||||
|
goto error;
|
||||||
|
|
||||||
entry_id = (void *)aprintf("%s:%d", tests[i].host, tests[i].port);
|
entry_id = (void *)aprintf("%s:%d", tests[i].host, tests[i].port);
|
||||||
if(!entry_id) {
|
if(!entry_id)
|
||||||
curl_slist_free_all(list);
|
goto error;
|
||||||
goto unit_test_abort;
|
|
||||||
}
|
|
||||||
dns = Curl_hash_pick(easy->dns.hostcache, entry_id, strlen(entry_id) + 1);
|
dns = Curl_hash_pick(easy->dns.hostcache, entry_id, strlen(entry_id) + 1);
|
||||||
free(entry_id);
|
free(entry_id);
|
||||||
entry_id = NULL;
|
entry_id = NULL;
|
||||||
|
|
@ -194,14 +197,22 @@ UNITTEST_START
|
||||||
}
|
}
|
||||||
|
|
||||||
curl_easy_cleanup(easy);
|
curl_easy_cleanup(easy);
|
||||||
|
easy = NULL;
|
||||||
Curl_hash_destroy(&multi->hostcache);
|
Curl_hash_destroy(&multi->hostcache);
|
||||||
curl_multi_cleanup(multi);
|
curl_multi_cleanup(multi);
|
||||||
|
multi = NULL;
|
||||||
curl_slist_free_all(list);
|
curl_slist_free_all(list);
|
||||||
|
list = NULL;
|
||||||
|
|
||||||
if(problem) {
|
if(problem) {
|
||||||
unitfail++;
|
unitfail++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
goto unit_test_abort;
|
||||||
|
error:
|
||||||
|
curl_easy_cleanup(easy);
|
||||||
|
curl_multi_cleanup(multi);
|
||||||
|
curl_slist_free_all(list);
|
||||||
}
|
}
|
||||||
UNITTEST_STOP
|
UNITTEST_STOP
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue