From 16f471fa2e9c7d25dca7507cb55b88c623593a88 Mon Sep 17 00:00:00 2001 From: Bert Belder Date: Sat, 25 Jun 2011 15:33:52 +0200 Subject: [PATCH] Separate uv_getaddrinfo tests --- test/test-getaddrinfo.c | 112 ++++++++++++++-------------------------- test/test-list.h | 7 ++- 2 files changed, 43 insertions(+), 76 deletions(-) diff --git a/test/test-getaddrinfo.c b/test/test-getaddrinfo.c index 9477ff6e..f668eec7 100644 --- a/test/test-getaddrinfo.c +++ b/test/test-getaddrinfo.c @@ -27,120 +27,84 @@ #include /* 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; } diff --git a/test/test-list.h b/test/test-list.h index fda494fc..dace1948 100644 --- a/test/test-list.h +++ b/test/test-list.h @@ -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)