diff options
author | Robbie Shade <rjshade@google.com> | 2015-08-06 12:39:04 -0400 |
---|---|---|
committer | Robbie Shade <rjshade@google.com> | 2015-08-06 12:39:04 -0400 |
commit | fb5eb0e98d8068fb96f879ee0dc20d3b227a2a88 (patch) | |
tree | 19293554e0fecefe6ff15accac9c6da1302f7857 /test/core/iomgr | |
parent | 2b10767bf3788c59c47a24d7901d91e799f49fbb (diff) | |
parent | 2ba9e5df8193fcacf4f0a6ebbb759cf46df9e590 (diff) |
Regenerated project files
Diffstat (limited to 'test/core/iomgr')
-rw-r--r-- | test/core/iomgr/alarm_heap_test.c | 3 | ||||
-rw-r--r-- | test/core/iomgr/alarm_list_test.c | 70 | ||||
-rw-r--r-- | test/core/iomgr/alarm_test.c | 9 | ||||
-rw-r--r-- | test/core/iomgr/endpoint_tests.c | 27 | ||||
-rw-r--r-- | test/core/iomgr/fd_posix_test.c | 20 | ||||
-rw-r--r-- | test/core/iomgr/poll_kick_posix_test.c | 130 | ||||
-rw-r--r-- | test/core/iomgr/sockaddr_utils_test.c | 14 | ||||
-rw-r--r-- | test/core/iomgr/tcp_client_posix_test.c | 38 | ||||
-rw-r--r-- | test/core/iomgr/tcp_posix_test.c | 34 | ||||
-rw-r--r-- | test/core/iomgr/tcp_server_posix_test.c | 9 |
10 files changed, 140 insertions, 214 deletions
diff --git a/test/core/iomgr/alarm_heap_test.c b/test/core/iomgr/alarm_heap_test.c index b3e1e64d0f..66b6e4cb64 100644 --- a/test/core/iomgr/alarm_heap_test.c +++ b/test/core/iomgr/alarm_heap_test.c @@ -44,6 +44,7 @@ static gpr_timespec random_deadline(void) { gpr_timespec ts; ts.tv_sec = rand(); ts.tv_nsec = rand(); + ts.clock_type = GPR_CLOCK_REALTIME; return ts; } @@ -101,7 +102,7 @@ static int *all_top(grpc_alarm_heap *pq, int *n) { static void check_pq_top(grpc_alarm *elements, grpc_alarm_heap *pq, gpr_uint8 *inpq, int num_elements) { - gpr_timespec max_deadline = gpr_inf_past; + gpr_timespec max_deadline = gpr_inf_past(GPR_CLOCK_REALTIME); int *max_deadline_indices = gpr_malloc(num_elements * sizeof(int)); int *top_elements; int num_max_deadline_indices = 0; diff --git a/test/core/iomgr/alarm_list_test.c b/test/core/iomgr/alarm_list_test.c index 684e3f579a..56d662e61a 100644 --- a/test/core/iomgr/alarm_list_test.c +++ b/test/core/iomgr/alarm_list_test.c @@ -51,7 +51,7 @@ static void cb(void *arg, int success) { } static void add_test(void) { - gpr_timespec start = gpr_now(); + gpr_timespec start = gpr_now(GPR_CLOCK_REALTIME); int i; grpc_alarm alarms[20]; @@ -60,45 +60,51 @@ static void add_test(void) { /* 10 ms alarms. will expire in the current epoch */ for (i = 0; i < 10; i++) { - grpc_alarm_init(&alarms[i], gpr_time_add(start, gpr_time_from_millis(10)), - cb, (void *)(gpr_intptr) i, start); + grpc_alarm_init(&alarms[i], + gpr_time_add(start, gpr_time_from_millis(10, GPR_TIMESPAN)), + cb, (void *)(gpr_intptr)i, start); } /* 1010 ms alarms. will expire in the next epoch */ for (i = 10; i < 20; i++) { - grpc_alarm_init(&alarms[i], gpr_time_add(start, gpr_time_from_millis(1010)), - cb, (void *)(gpr_intptr) i, start); + grpc_alarm_init(&alarms[i], gpr_time_add(start, gpr_time_from_millis( + 1010, GPR_TIMESPAN)), + cb, (void *)(gpr_intptr)i, start); } /* collect alarms. Only the first batch should be ready. */ - GPR_ASSERT(10 == - grpc_alarm_check( - NULL, gpr_time_add(start, gpr_time_from_millis(500)), NULL)); + GPR_ASSERT(10 == grpc_alarm_check(NULL, + gpr_time_add(start, gpr_time_from_millis( + 500, GPR_TIMESPAN)), + NULL)); for (i = 0; i < 20; i++) { GPR_ASSERT(cb_called[i][1] == (i < 10)); GPR_ASSERT(cb_called[i][0] == 0); } - GPR_ASSERT(0 == - grpc_alarm_check( - NULL, gpr_time_add(start, gpr_time_from_millis(600)), NULL)); + GPR_ASSERT(0 == grpc_alarm_check( + NULL, gpr_time_add( + start, gpr_time_from_millis(600, GPR_TIMESPAN)), + NULL)); for (i = 0; i < 30; i++) { GPR_ASSERT(cb_called[i][1] == (i < 10)); GPR_ASSERT(cb_called[i][0] == 0); } /* collect the rest of the alarms */ - GPR_ASSERT(10 == - grpc_alarm_check( - NULL, gpr_time_add(start, gpr_time_from_millis(1500)), NULL)); + GPR_ASSERT( + 10 == grpc_alarm_check(NULL, gpr_time_add(start, gpr_time_from_millis( + 1500, GPR_TIMESPAN)), + NULL)); for (i = 0; i < 30; i++) { GPR_ASSERT(cb_called[i][1] == (i < 20)); GPR_ASSERT(cb_called[i][0] == 0); } - GPR_ASSERT(0 == - grpc_alarm_check( - NULL, gpr_time_add(start, gpr_time_from_millis(1600)), NULL)); + GPR_ASSERT(0 == grpc_alarm_check(NULL, + gpr_time_add(start, gpr_time_from_millis( + 1600, GPR_TIMESPAN)), + NULL)); for (i = 0; i < 30; i++) { GPR_ASSERT(cb_called[i][1] == (i < 20)); GPR_ASSERT(cb_called[i][0] == 0); @@ -107,24 +113,30 @@ static void add_test(void) { grpc_alarm_list_shutdown(); } +static gpr_timespec tfm(int m) { + gpr_timespec t = gpr_time_from_millis(m, GPR_TIMESPAN); + t.clock_type = GPR_CLOCK_REALTIME; + return t; +} + /* Cleaning up a list with pending alarms. */ void destruction_test(void) { grpc_alarm alarms[5]; - grpc_alarm_list_init(gpr_time_0); + grpc_alarm_list_init(gpr_time_0(GPR_CLOCK_REALTIME)); memset(cb_called, 0, sizeof(cb_called)); - grpc_alarm_init(&alarms[0], gpr_time_from_millis(100), cb, - (void *)(gpr_intptr) 0, gpr_time_0); - grpc_alarm_init(&alarms[1], gpr_time_from_millis(3), cb, - (void *)(gpr_intptr) 1, gpr_time_0); - grpc_alarm_init(&alarms[2], gpr_time_from_millis(100), cb, - (void *)(gpr_intptr) 2, gpr_time_0); - grpc_alarm_init(&alarms[3], gpr_time_from_millis(3), cb, - (void *)(gpr_intptr) 3, gpr_time_0); - grpc_alarm_init(&alarms[4], gpr_time_from_millis(1), cb, - (void *)(gpr_intptr) 4, gpr_time_0); - GPR_ASSERT(1 == grpc_alarm_check(NULL, gpr_time_from_millis(2), NULL)); + grpc_alarm_init(&alarms[0], tfm(100), cb, (void *)(gpr_intptr)0, + gpr_time_0(GPR_CLOCK_REALTIME)); + grpc_alarm_init(&alarms[1], tfm(3), cb, (void *)(gpr_intptr)1, + gpr_time_0(GPR_CLOCK_REALTIME)); + grpc_alarm_init(&alarms[2], tfm(100), cb, (void *)(gpr_intptr)2, + gpr_time_0(GPR_CLOCK_REALTIME)); + grpc_alarm_init(&alarms[3], tfm(3), cb, (void *)(gpr_intptr)3, + gpr_time_0(GPR_CLOCK_REALTIME)); + grpc_alarm_init(&alarms[4], tfm(1), cb, (void *)(gpr_intptr)4, + gpr_time_0(GPR_CLOCK_REALTIME)); + GPR_ASSERT(1 == grpc_alarm_check(NULL, tfm(2), NULL)); GPR_ASSERT(1 == cb_called[4][1]); grpc_alarm_cancel(&alarms[0]); grpc_alarm_cancel(&alarms[3]); diff --git a/test/core/iomgr/alarm_test.c b/test/core/iomgr/alarm_test.c index 0ccec435e6..55aa517529 100644 --- a/test/core/iomgr/alarm_test.c +++ b/test/core/iomgr/alarm_test.c @@ -41,6 +41,7 @@ #include <stdlib.h> #include <string.h> +#include <grpc/grpc.h> #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/sync.h> @@ -100,7 +101,7 @@ static void test_grpc_alarm(void) { alarm_arg arg2; void *fdone; - grpc_iomgr_init(); + grpc_init(); arg.counter = 0; arg.success = SUCCESS_NOT_SET; @@ -113,7 +114,7 @@ static void test_grpc_alarm(void) { gpr_event_init(&arg.fcb_arg); grpc_alarm_init(&alarm, GRPC_TIMEOUT_MILLIS_TO_DEADLINE(100), alarm_cb, &arg, - gpr_now()); + gpr_now(GPR_CLOCK_MONOTONIC)); alarm_deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(1); gpr_mu_lock(&arg.mu); @@ -165,7 +166,7 @@ static void test_grpc_alarm(void) { gpr_event_init(&arg2.fcb_arg); grpc_alarm_init(&alarm_to_cancel, GRPC_TIMEOUT_MILLIS_TO_DEADLINE(100), - alarm_cb, &arg2, gpr_now()); + alarm_cb, &arg2, gpr_now(GPR_CLOCK_MONOTONIC)); grpc_alarm_cancel(&alarm_to_cancel); alarm_deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(1); @@ -214,7 +215,7 @@ static void test_grpc_alarm(void) { gpr_mu_destroy(&arg2.mu); gpr_free(arg2.followup_closure); - grpc_iomgr_shutdown(); + grpc_shutdown(); } int main(int argc, char **argv) { diff --git a/test/core/iomgr/endpoint_tests.c b/test/core/iomgr/endpoint_tests.c index 8198c24752..8186c96da1 100644 --- a/test/core/iomgr/endpoint_tests.c +++ b/test/core/iomgr/endpoint_tests.c @@ -132,7 +132,7 @@ static void read_and_write_test_read_handler(void *data, gpr_slice *slices, gpr_log(GPR_INFO, "Read handler shutdown"); gpr_mu_lock(GRPC_POLLSET_MU(g_pollset)); state->read_done = 1; - grpc_pollset_kick(g_pollset); + grpc_pollset_kick(g_pollset, NULL); gpr_mu_unlock(GRPC_POLLSET_MU(g_pollset)); return; } @@ -143,7 +143,7 @@ static void read_and_write_test_read_handler(void *data, gpr_slice *slices, gpr_log(GPR_INFO, "Read handler done"); gpr_mu_lock(GRPC_POLLSET_MU(g_pollset)); state->read_done = 1; - grpc_pollset_kick(g_pollset); + grpc_pollset_kick(g_pollset, NULL); gpr_mu_unlock(GRPC_POLLSET_MU(g_pollset)); } else { grpc_endpoint_notify_on_read(state->read_ep, @@ -167,7 +167,7 @@ static void read_and_write_test_write_handler(void *data, gpr_log(GPR_INFO, "Write handler shutdown"); gpr_mu_lock(GRPC_POLLSET_MU(g_pollset)); state->write_done = 1; - grpc_pollset_kick(g_pollset); + grpc_pollset_kick(g_pollset, NULL); gpr_mu_unlock(GRPC_POLLSET_MU(g_pollset)); return; } @@ -201,7 +201,7 @@ static void read_and_write_test_write_handler(void *data, gpr_log(GPR_INFO, "Write handler done"); gpr_mu_lock(GRPC_POLLSET_MU(g_pollset)); state->write_done = 1; - grpc_pollset_kick(g_pollset); + grpc_pollset_kick(g_pollset, NULL); gpr_mu_unlock(GRPC_POLLSET_MU(g_pollset)); } @@ -254,8 +254,9 @@ static void read_and_write_test(grpc_endpoint_test_config config, gpr_mu_lock(GRPC_POLLSET_MU(g_pollset)); while (!state.read_done || !state.write_done) { - GPR_ASSERT(gpr_time_cmp(gpr_now(), deadline) < 0); - grpc_pollset_work(g_pollset, deadline); + grpc_pollset_worker worker; + GPR_ASSERT(gpr_time_cmp(gpr_now(GPR_CLOCK_MONOTONIC), deadline) < 0); + grpc_pollset_work(g_pollset, &worker, deadline); } gpr_mu_unlock(GRPC_POLLSET_MU(g_pollset)); @@ -287,7 +288,7 @@ static void shutdown_during_write_test_read_handler( grpc_endpoint_destroy(st->ep); gpr_mu_lock(GRPC_POLLSET_MU(g_pollset)); st->done = error; - grpc_pollset_kick(g_pollset); + grpc_pollset_kick(g_pollset, NULL); gpr_mu_unlock(GRPC_POLLSET_MU(g_pollset)); } else { grpc_endpoint_notify_on_read( @@ -309,7 +310,7 @@ static void shutdown_during_write_test_write_handler( } gpr_mu_lock(GRPC_POLLSET_MU(g_pollset)); st->done = 1; - grpc_pollset_kick(g_pollset); + grpc_pollset_kick(g_pollset, NULL); gpr_mu_unlock(GRPC_POLLSET_MU(g_pollset)); } @@ -350,15 +351,17 @@ static void shutdown_during_write_test(grpc_endpoint_test_config config, deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(10); gpr_mu_lock(GRPC_POLLSET_MU(g_pollset)); while (!write_st.done) { - GPR_ASSERT(gpr_time_cmp(gpr_now(), deadline) < 0); - grpc_pollset_work(g_pollset, deadline); + grpc_pollset_worker worker; + GPR_ASSERT(gpr_time_cmp(gpr_now(deadline.clock_type), deadline) < 0); + grpc_pollset_work(g_pollset, &worker, deadline); } gpr_mu_unlock(GRPC_POLLSET_MU(g_pollset)); grpc_endpoint_destroy(write_st.ep); gpr_mu_lock(GRPC_POLLSET_MU(g_pollset)); while (!read_st.done) { - GPR_ASSERT(gpr_time_cmp(gpr_now(), deadline) < 0); - grpc_pollset_work(g_pollset, deadline); + grpc_pollset_worker worker; + GPR_ASSERT(gpr_time_cmp(gpr_now(deadline.clock_type), deadline) < 0); + grpc_pollset_work(g_pollset, &worker, deadline); } gpr_mu_unlock(GRPC_POLLSET_MU(g_pollset)); gpr_free(slices); diff --git a/test/core/iomgr/fd_posix_test.c b/test/core/iomgr/fd_posix_test.c index fe08ec495f..adcbcafdbb 100644 --- a/test/core/iomgr/fd_posix_test.c +++ b/test/core/iomgr/fd_posix_test.c @@ -179,7 +179,7 @@ static void listen_shutdown_cb(void *arg /*server*/, int success) { gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset)); sv->done = 1; - grpc_pollset_kick(&g_pollset); + grpc_pollset_kick(&g_pollset, NULL); gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset)); } @@ -249,7 +249,8 @@ static int server_start(server *sv) { static void server_wait_and_shutdown(server *sv) { gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset)); while (!sv->done) { - grpc_pollset_work(&g_pollset, gpr_inf_future); + grpc_pollset_worker worker; + grpc_pollset_work(&g_pollset, &worker, gpr_inf_future(GPR_CLOCK_MONOTONIC)); } gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset)); } @@ -286,7 +287,7 @@ static void client_session_shutdown_cb(void *arg /*client*/, int success) { client *cl = arg; grpc_fd_orphan(cl->em_fd, NULL, "c"); cl->done = 1; - grpc_pollset_kick(&g_pollset); + grpc_pollset_kick(&g_pollset, NULL); } /* Write as much as possible, then register notify_on_write. */ @@ -356,7 +357,8 @@ static void client_start(client *cl, int port) { static void client_wait_and_shutdown(client *cl) { gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset)); while (!cl->done) { - grpc_pollset_work(&g_pollset, gpr_inf_future); + grpc_pollset_worker worker; + grpc_pollset_work(&g_pollset, &worker, gpr_inf_future(GPR_CLOCK_MONOTONIC)); } gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset)); } @@ -392,7 +394,7 @@ static void first_read_callback(void *arg /* fd_change_data */, int success) { gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset)); fdc->cb_that_ran = first_read_callback; - grpc_pollset_kick(&g_pollset); + grpc_pollset_kick(&g_pollset, NULL); gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset)); } @@ -401,7 +403,7 @@ static void second_read_callback(void *arg /* fd_change_data */, int success) { gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset)); fdc->cb_that_ran = second_read_callback; - grpc_pollset_kick(&g_pollset); + grpc_pollset_kick(&g_pollset, NULL); gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset)); } @@ -445,7 +447,8 @@ static void test_grpc_fd_change(void) { /* And now wait for it to run. */ gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset)); while (a.cb_that_ran == NULL) { - grpc_pollset_work(&g_pollset, gpr_inf_future); + grpc_pollset_worker worker; + grpc_pollset_work(&g_pollset, &worker, gpr_inf_future(GPR_CLOCK_MONOTONIC)); } GPR_ASSERT(a.cb_that_ran == first_read_callback); gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset)); @@ -463,7 +466,8 @@ static void test_grpc_fd_change(void) { gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset)); while (b.cb_that_ran == NULL) { - grpc_pollset_work(&g_pollset, gpr_inf_future); + grpc_pollset_worker worker; + grpc_pollset_work(&g_pollset, &worker, gpr_inf_future(GPR_CLOCK_MONOTONIC)); } /* Except now we verify that second_read_callback ran instead */ GPR_ASSERT(b.cb_that_ran == second_read_callback); diff --git a/test/core/iomgr/poll_kick_posix_test.c b/test/core/iomgr/poll_kick_posix_test.c deleted file mode 100644 index 3aa6807806..0000000000 --- a/test/core/iomgr/poll_kick_posix_test.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#include "src/core/iomgr/pollset_kick_posix.h" - -#include <grpc/support/alloc.h> -#include <grpc/support/log.h> -#include "test/core/util/test_config.h" - -static void test_allocation(void) { - grpc_pollset_kick_state state; - grpc_pollset_kick_init(&state); - grpc_pollset_kick_destroy(&state); -} - -static void test_non_kick(void) { - grpc_pollset_kick_state state; - grpc_kick_fd_info *kfd; - - grpc_pollset_kick_init(&state); - kfd = grpc_pollset_kick_pre_poll(&state); - GPR_ASSERT(kfd != NULL); - - grpc_pollset_kick_post_poll(&state, kfd); - grpc_pollset_kick_destroy(&state); -} - -static void test_basic_kick(void) { - /* Kicked during poll */ - grpc_pollset_kick_state state; - grpc_kick_fd_info *kfd; - grpc_pollset_kick_init(&state); - - kfd = grpc_pollset_kick_pre_poll(&state); - GPR_ASSERT(kfd != NULL); - - grpc_pollset_kick_kick(&state); - - /* Now hypothetically we polled and found that we were kicked */ - grpc_pollset_kick_consume(&state, kfd); - - grpc_pollset_kick_post_poll(&state, kfd); - - grpc_pollset_kick_destroy(&state); -} - -static void test_non_poll_kick(void) { - /* Kick before entering poll */ - grpc_pollset_kick_state state; - grpc_kick_fd_info *kfd; - - grpc_pollset_kick_init(&state); - - grpc_pollset_kick_kick(&state); - kfd = grpc_pollset_kick_pre_poll(&state); - GPR_ASSERT(kfd == NULL); - grpc_pollset_kick_destroy(&state); -} - -#define GRPC_MAX_CACHED_PIPES 50 - -static void test_over_free(void) { - /* Check high watermark pipe free logic */ - int i; - grpc_kick_fd_info **kfds = - gpr_malloc(sizeof(grpc_kick_fd_info *) * GRPC_MAX_CACHED_PIPES); - grpc_pollset_kick_state state; - grpc_pollset_kick_init(&state); - for (i = 0; i < GRPC_MAX_CACHED_PIPES; ++i) { - kfds[i] = grpc_pollset_kick_pre_poll(&state); - GPR_ASSERT(kfds[i] != NULL); - } - - for (i = 0; i < GRPC_MAX_CACHED_PIPES; ++i) { - grpc_pollset_kick_post_poll(&state, kfds[i]); - } - grpc_pollset_kick_destroy(&state); - gpr_free(kfds); -} - -static void run_tests(void) { - test_allocation(); - test_basic_kick(); - test_non_poll_kick(); - test_non_kick(); - test_over_free(); -} - -int main(int argc, char **argv) { - grpc_test_init(argc, argv); - - grpc_pollset_kick_global_init(); - run_tests(); - grpc_pollset_kick_global_destroy(); - - grpc_pollset_kick_global_init_fallback_fd(); - run_tests(); - grpc_pollset_kick_global_destroy(); - return 0; -} diff --git a/test/core/iomgr/sockaddr_utils_test.c b/test/core/iomgr/sockaddr_utils_test.c index dfab340959..72a0f71835 100644 --- a/test/core/iomgr/sockaddr_utils_test.c +++ b/test/core/iomgr/sockaddr_utils_test.c @@ -187,6 +187,15 @@ static void expect_sockaddr_str(const char *expected, void *addr, gpr_free(str); } +static void expect_sockaddr_uri(const char *expected, void *addr) { + char *str; + gpr_log(GPR_INFO, " expect_sockaddr_uri(%s)", expected); + str = grpc_sockaddr_to_uri((struct sockaddr *)addr); + GPR_ASSERT(str != NULL); + GPR_ASSERT(strcmp(expected, str) == 0); + gpr_free(str); +} + static void test_sockaddr_to_string(void) { struct sockaddr_in input4; struct sockaddr_in6 input6; @@ -199,23 +208,28 @@ static void test_sockaddr_to_string(void) { input4 = make_addr4(kIPv4, sizeof(kIPv4)); expect_sockaddr_str("192.0.2.1:12345", &input4, 0); expect_sockaddr_str("192.0.2.1:12345", &input4, 1); + expect_sockaddr_uri("ipv4:192.0.2.1:12345", &input4); input6 = make_addr6(kIPv6, sizeof(kIPv6)); expect_sockaddr_str("[2001:db8::1]:12345", &input6, 0); expect_sockaddr_str("[2001:db8::1]:12345", &input6, 1); + expect_sockaddr_uri("ipv6:[2001:db8::1]:12345", &input6); input6 = make_addr6(kMapped, sizeof(kMapped)); expect_sockaddr_str("[::ffff:192.0.2.1]:12345", &input6, 0); expect_sockaddr_str("192.0.2.1:12345", &input6, 1); + expect_sockaddr_uri("ipv4:192.0.2.1:12345", &input6); input6 = make_addr6(kNotQuiteMapped, sizeof(kNotQuiteMapped)); expect_sockaddr_str("[::fffe:c000:263]:12345", &input6, 0); expect_sockaddr_str("[::fffe:c000:263]:12345", &input6, 1); + expect_sockaddr_uri("ipv6:[::fffe:c000:263]:12345", &input6); memset(&dummy, 0, sizeof(dummy)); dummy.sa_family = 123; expect_sockaddr_str("(sockaddr family=123)", &dummy, 0); expect_sockaddr_str("(sockaddr family=123)", &dummy, 1); + GPR_ASSERT(grpc_sockaddr_to_uri(&dummy) == NULL); GPR_ASSERT(errno == 0x7EADBEEF); } diff --git a/test/core/iomgr/tcp_client_posix_test.c b/test/core/iomgr/tcp_client_posix_test.c index b673c032b2..07bbe1f402 100644 --- a/test/core/iomgr/tcp_client_posix_test.c +++ b/test/core/iomgr/tcp_client_posix_test.c @@ -56,7 +56,7 @@ static gpr_timespec test_deadline(void) { static void finish_connection() { gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset)); g_connections_complete++; - grpc_pollset_kick(&g_pollset); + grpc_pollset_kick(&g_pollset, NULL); gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset)); } @@ -79,6 +79,8 @@ void test_succeeds(void) { int r; int connections_complete_before; + gpr_log(GPR_DEBUG, "test_succeeds"); + memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; @@ -95,7 +97,8 @@ void test_succeeds(void) { /* connect to it */ GPR_ASSERT(getsockname(svr_fd, (struct sockaddr *)&addr, &addr_len) == 0); grpc_tcp_client_connect(must_succeed, NULL, &g_pollset_set, - (struct sockaddr *)&addr, addr_len, gpr_inf_future); + (struct sockaddr *)&addr, addr_len, + gpr_inf_future(GPR_CLOCK_REALTIME)); /* await the connection */ do { @@ -108,7 +111,8 @@ void test_succeeds(void) { gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset)); while (g_connections_complete == connections_complete_before) { - grpc_pollset_work(&g_pollset, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5)); + grpc_pollset_worker worker; + grpc_pollset_work(&g_pollset, &worker, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5)); } gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset)); @@ -119,6 +123,8 @@ void test_fails(void) { socklen_t addr_len = sizeof(addr); int connections_complete_before; + gpr_log(GPR_DEBUG, "test_fails"); + memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; @@ -128,13 +134,15 @@ void test_fails(void) { /* connect to a broken address */ grpc_tcp_client_connect(must_fail, NULL, &g_pollset_set, - (struct sockaddr *)&addr, addr_len, gpr_inf_future); + (struct sockaddr *)&addr, addr_len, + gpr_inf_future(GPR_CLOCK_REALTIME)); gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset)); /* wait for the connection callback to finish */ while (g_connections_complete == connections_complete_before) { - grpc_pollset_work(&g_pollset, test_deadline()); + grpc_pollset_worker worker; + grpc_pollset_work(&g_pollset, &worker, test_deadline()); } gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset)); @@ -144,13 +152,15 @@ void test_times_out(void) { struct sockaddr_in addr; socklen_t addr_len = sizeof(addr); int svr_fd; -#define NUM_CLIENT_CONNECTS 10 +#define NUM_CLIENT_CONNECTS 100 int client_fd[NUM_CLIENT_CONNECTS]; int i; int r; int connections_complete_before; gpr_timespec connect_deadline; + gpr_log(GPR_DEBUG, "test_times_out"); + memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; @@ -186,18 +196,22 @@ void test_times_out(void) { /* Make sure the event doesn't trigger early */ gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset)); - while (gpr_time_cmp(gpr_time_add(connect_deadline, gpr_time_from_seconds(2)), - gpr_now()) > 0) { - int is_after_deadline = gpr_time_cmp(connect_deadline, gpr_now()) <= 0; + while (gpr_time_cmp(gpr_time_add(connect_deadline, + gpr_time_from_seconds(2, GPR_TIMESPAN)), + gpr_now(connect_deadline.clock_type)) > 0) { + int is_after_deadline = + gpr_time_cmp(connect_deadline, gpr_now(GPR_CLOCK_MONOTONIC)) <= 0; + grpc_pollset_worker worker; if (is_after_deadline && - gpr_time_cmp(gpr_time_add(connect_deadline, gpr_time_from_seconds(1)), - gpr_now()) > 0) { + gpr_time_cmp(gpr_time_add(connect_deadline, + gpr_time_from_seconds(1, GPR_TIMESPAN)), + gpr_now(GPR_CLOCK_MONOTONIC)) > 0) { /* allow some slack before insisting that things be done */ } else { GPR_ASSERT(g_connections_complete == connections_complete_before + is_after_deadline); } - grpc_pollset_work(&g_pollset, GRPC_TIMEOUT_MILLIS_TO_DEADLINE(10)); + grpc_pollset_work(&g_pollset, &worker, GRPC_TIMEOUT_MILLIS_TO_DEADLINE(10)); } gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset)); diff --git a/test/core/iomgr/tcp_posix_test.c b/test/core/iomgr/tcp_posix_test.c index a23c64928e..17a85ceaec 100644 --- a/test/core/iomgr/tcp_posix_test.c +++ b/test/core/iomgr/tcp_posix_test.c @@ -172,7 +172,7 @@ static void read_test(ssize_t num_bytes, ssize_t slice_size) { create_sockets(sv); - ep = grpc_tcp_create(grpc_fd_create(sv[1], "read_test"), slice_size); + ep = grpc_tcp_create(grpc_fd_create(sv[1], "read_test"), slice_size, "test"); grpc_endpoint_add_to_pollset(ep, &g_pollset); written_bytes = fill_socket_partial(sv[0], num_bytes); @@ -186,7 +186,8 @@ static void read_test(ssize_t num_bytes, ssize_t slice_size) { gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset)); while (state.read_bytes < state.target_read_bytes) { - grpc_pollset_work(&g_pollset, deadline); + grpc_pollset_worker worker; + grpc_pollset_work(&g_pollset, &worker, deadline); } GPR_ASSERT(state.read_bytes == state.target_read_bytes); gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset)); @@ -207,7 +208,8 @@ static void large_read_test(ssize_t slice_size) { create_sockets(sv); - ep = grpc_tcp_create(grpc_fd_create(sv[1], "large_read_test"), slice_size); + ep = grpc_tcp_create(grpc_fd_create(sv[1], "large_read_test"), slice_size, + "test"); grpc_endpoint_add_to_pollset(ep, &g_pollset); written_bytes = fill_socket(sv[0]); @@ -221,7 +223,8 @@ static void large_read_test(ssize_t slice_size) { gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset)); while (state.read_bytes < state.target_read_bytes) { - grpc_pollset_work(&g_pollset, deadline); + grpc_pollset_worker worker; + grpc_pollset_work(&g_pollset, &worker, deadline); } GPR_ASSERT(state.read_bytes == state.target_read_bytes); gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset)); @@ -264,7 +267,7 @@ static void write_done(void *user_data /* write_socket_state */, gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset)); gpr_log(GPR_INFO, "Signalling write done"); state->write_done = 1; - grpc_pollset_kick(&g_pollset); + grpc_pollset_kick(&g_pollset, NULL); gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset)); } @@ -280,8 +283,9 @@ void drain_socket_blocking(int fd, size_t num_bytes, size_t read_size) { GPR_ASSERT(fcntl(fd, F_SETFL, flags & ~O_NONBLOCK) == 0); for (;;) { + grpc_pollset_worker worker; gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset)); - grpc_pollset_work(&g_pollset, GRPC_TIMEOUT_MILLIS_TO_DEADLINE(10)); + grpc_pollset_work(&g_pollset, &worker, GRPC_TIMEOUT_MILLIS_TO_DEADLINE(10)); gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset)); do { bytes_read = @@ -340,7 +344,7 @@ static void write_test(ssize_t num_bytes, ssize_t slice_size) { create_sockets(sv); ep = grpc_tcp_create(grpc_fd_create(sv[1], "write_test"), - GRPC_TCP_DEFAULT_READ_SLICE_SIZE); + GRPC_TCP_DEFAULT_READ_SLICE_SIZE, "test"); grpc_endpoint_add_to_pollset(ep, &g_pollset); state.ep = ep; @@ -357,10 +361,11 @@ static void write_test(ssize_t num_bytes, ssize_t slice_size) { drain_socket_blocking(sv[0], num_bytes, num_bytes); gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset)); for (;;) { + grpc_pollset_worker worker; if (state.write_done) { break; } - grpc_pollset_work(&g_pollset, deadline); + grpc_pollset_work(&g_pollset, &worker, deadline); } gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset)); } @@ -386,6 +391,7 @@ static void write_error_test(ssize_t num_bytes, ssize_t slice_size) { size_t num_blocks; gpr_slice *slices; int current_data = 0; + grpc_pollset_worker worker; gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(20); gpr_log(GPR_INFO, "Start write error test with %d bytes, slice size %d", @@ -394,7 +400,7 @@ static void write_error_test(ssize_t num_bytes, ssize_t slice_size) { create_sockets(sv); ep = grpc_tcp_create(grpc_fd_create(sv[1], "write_error_test"), - GRPC_TCP_DEFAULT_READ_SLICE_SIZE); + GRPC_TCP_DEFAULT_READ_SLICE_SIZE, "test"); grpc_endpoint_add_to_pollset(ep, &g_pollset); close(sv[0]); @@ -416,7 +422,7 @@ static void write_error_test(ssize_t num_bytes, ssize_t slice_size) { if (state.write_done) { break; } - grpc_pollset_work(&g_pollset, deadline); + grpc_pollset_work(&g_pollset, &worker, deadline); } gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset)); break; @@ -459,10 +465,10 @@ static grpc_endpoint_test_fixture create_fixture_tcp_socketpair( grpc_endpoint_test_fixture f; create_sockets(sv); - f.client_ep = - grpc_tcp_create(grpc_fd_create(sv[0], "fixture:client"), slice_size); - f.server_ep = - grpc_tcp_create(grpc_fd_create(sv[1], "fixture:server"), slice_size); + f.client_ep = grpc_tcp_create(grpc_fd_create(sv[0], "fixture:client"), + slice_size, "test"); + f.server_ep = grpc_tcp_create(grpc_fd_create(sv[1], "fixture:server"), + slice_size, "test"); grpc_endpoint_add_to_pollset(f.client_ep, &g_pollset); grpc_endpoint_add_to_pollset(f.server_ep, &g_pollset); diff --git a/test/core/iomgr/tcp_server_posix_test.c b/test/core/iomgr/tcp_server_posix_test.c index fb262711c0..b82d7c08b1 100644 --- a/test/core/iomgr/tcp_server_posix_test.c +++ b/test/core/iomgr/tcp_server_posix_test.c @@ -54,7 +54,7 @@ static void on_connect(void *arg, grpc_endpoint *tcp) { gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset)); g_nconnects++; - grpc_pollset_kick(&g_pollset); + grpc_pollset_kick(&g_pollset, NULL); gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset)); } @@ -125,7 +125,7 @@ static void test_connect(int n) { gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset)); for (i = 0; i < n; i++) { - deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(4000); + deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(10); nconnects_before = g_nconnects; clifd = socket(addr.ss_family, SOCK_STREAM, 0); @@ -135,8 +135,9 @@ static void test_connect(int n) { gpr_log(GPR_DEBUG, "wait"); while (g_nconnects == nconnects_before && - gpr_time_cmp(deadline, gpr_now()) > 0) { - grpc_pollset_work(&g_pollset, deadline); + gpr_time_cmp(deadline, gpr_now(deadline.clock_type)) > 0) { + grpc_pollset_worker worker; + grpc_pollset_work(&g_pollset, &worker, deadline); } gpr_log(GPR_DEBUG, "wait done"); |