Separate uv_getaddrinfo tests
This commit is contained in:
parent
631a9bb626
commit
16f471fa2e
@ -27,120 +27,84 @@
|
||||
#include <string.h> /* strlen */
|
||||
|
||||
|
||||
#define CONCURRENT_COUNT 10
|
||||
|
||||
static uv_buf_t alloc_cb(uv_handle_t* handle, size_t size) {
|
||||
uv_buf_t buf;
|
||||
buf.base = (char*)malloc(size);
|
||||
buf.len = size;
|
||||
return buf;
|
||||
}
|
||||
|
||||
int getaddrinfo_callbacks;
|
||||
|
||||
uv_getaddrinfo_t getaddrinfo_handle;
|
||||
|
||||
static void getaddrinfo_callback(uv_getaddrinfo_t* handle, int status, struct addrinfo* res) {
|
||||
ASSERT(handle == &getaddrinfo_handle);
|
||||
getaddrinfo_callbacks++;
|
||||
}
|
||||
static const char* name = "localhost";
|
||||
|
||||
static uv_getaddrinfo_t getaddrinfo_handle;
|
||||
static int getaddrinfo_cbs = 0;
|
||||
|
||||
/* data used for running multiple calls concurrently */
|
||||
#define CONCURRENT_COUNT 10
|
||||
int callback_counts[CONCURRENT_COUNT];
|
||||
uv_getaddrinfo_t getaddrinfo_handles[CONCURRENT_COUNT];
|
||||
static uv_getaddrinfo_t getaddrinfo_handles[CONCURRENT_COUNT];
|
||||
static int callback_counts[CONCURRENT_COUNT];
|
||||
|
||||
|
||||
static void getaddrinfo_cuncurrent_cb(uv_getaddrinfo_t* handle, int status, struct addrinfo* res) {
|
||||
static void getaddrinfo_basic_cb(uv_getaddrinfo_t* handle,
|
||||
int status,
|
||||
struct addrinfo* res) {
|
||||
ASSERT(handle == &getaddrinfo_handle);
|
||||
getaddrinfo_cbs++;
|
||||
}
|
||||
|
||||
|
||||
static void getaddrinfo_cuncurrent_cb(uv_getaddrinfo_t* handle,
|
||||
int status,
|
||||
struct addrinfo* res) {
|
||||
int i;
|
||||
|
||||
for (i = 0; i < CONCURRENT_COUNT; i++) {
|
||||
if (&getaddrinfo_handles[i] == handle) {
|
||||
callback_counts[i]++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ASSERT (i < CONCURRENT_COUNT);
|
||||
|
||||
getaddrinfo_cbs++;
|
||||
}
|
||||
|
||||
|
||||
TEST_IMPL(getaddrinfo) {
|
||||
|
||||
int rc = 0;
|
||||
char* name = "localhost";
|
||||
int i;
|
||||
TEST_IMPL(getaddrinfo_basic) {
|
||||
int r;
|
||||
|
||||
uv_init();
|
||||
|
||||
printf("Start basic getaddrinfo test\n");
|
||||
|
||||
getaddrinfo_callbacks = 0;
|
||||
|
||||
uv_getaddrinfo(&getaddrinfo_handle,
|
||||
&getaddrinfo_callback,
|
||||
name,
|
||||
NULL,
|
||||
NULL);
|
||||
r = uv_getaddrinfo(&getaddrinfo_handle,
|
||||
&getaddrinfo_basic_cb,
|
||||
name,
|
||||
NULL,
|
||||
NULL);
|
||||
ASSERT(r == 0);
|
||||
|
||||
uv_run();
|
||||
|
||||
ASSERT(getaddrinfo_callbacks == 1);
|
||||
ASSERT(getaddrinfo_cbs == 1);
|
||||
|
||||
printf("Done basic getaddrinfo test\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
printf("Start multiple getaddrinfo sequential test\n");
|
||||
TEST_IMPL(getaddrinfo_concurrent) {
|
||||
int i, r;
|
||||
|
||||
getaddrinfo_callbacks = 0;
|
||||
uv_init();
|
||||
|
||||
uv_getaddrinfo(&getaddrinfo_handle,
|
||||
&getaddrinfo_callback,
|
||||
name,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
uv_run();
|
||||
|
||||
ASSERT(getaddrinfo_callbacks == 1);
|
||||
|
||||
getaddrinfo_callbacks = 0;
|
||||
|
||||
uv_getaddrinfo(&getaddrinfo_handle,
|
||||
&getaddrinfo_callback,
|
||||
name,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
uv_run();
|
||||
|
||||
ASSERT(getaddrinfo_callbacks == 1);
|
||||
|
||||
|
||||
printf("Done multiple getaddrinfo sequential test test\n");
|
||||
|
||||
|
||||
printf("Start multiple getaddrinfo concurrent test\n");
|
||||
|
||||
for (i = 0; i < CONCURRENT_COUNT; i++)
|
||||
{
|
||||
for (i = 0; i < CONCURRENT_COUNT; i++) {
|
||||
callback_counts[i] = 0;
|
||||
|
||||
uv_getaddrinfo(&getaddrinfo_handles[i],
|
||||
r = uv_getaddrinfo(&getaddrinfo_handles[i],
|
||||
&getaddrinfo_cuncurrent_cb,
|
||||
name,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
ASSERT(r == 0);
|
||||
}
|
||||
|
||||
uv_run();
|
||||
|
||||
for (i = 0; i < CONCURRENT_COUNT; i++)
|
||||
{
|
||||
for (i = 0; i < CONCURRENT_COUNT; i++) {
|
||||
ASSERT(callback_counts[i] == 1);
|
||||
}
|
||||
|
||||
printf("Done multiple getaddrinfo concurrent test\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -43,8 +43,9 @@ TEST_DECLARE (check_ref)
|
||||
TEST_DECLARE (async)
|
||||
TEST_DECLARE (get_currentexe)
|
||||
TEST_DECLARE (hrtime)
|
||||
TEST_DECLARE (getaddrinfo_basic)
|
||||
TEST_DECLARE (getaddrinfo_concurrent)
|
||||
TEST_DECLARE (gethostbyname)
|
||||
TEST_DECLARE (getaddrinfo)
|
||||
TEST_DECLARE (fail_always)
|
||||
TEST_DECLARE (pass_always)
|
||||
HELPER_DECLARE (echo_server)
|
||||
@ -97,7 +98,9 @@ TASK_LIST_START
|
||||
TEST_ENTRY (get_currentexe)
|
||||
|
||||
TEST_ENTRY (hrtime)
|
||||
TEST_ENTRY (getaddrinfo)
|
||||
|
||||
TEST_ENTRY (getaddrinfo_basic)
|
||||
TEST_ENTRY (getaddrinfo_concurrent)
|
||||
|
||||
TEST_ENTRY (gethostbyname)
|
||||
TEST_HELPER (gethostbyname, echo_server)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user