aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/core
diff options
context:
space:
mode:
authorGravatar Sree Kuchibhotla <sreek@google.com>2017-08-10 10:21:15 -0700
committerGravatar Sree Kuchibhotla <sreek@google.com>2017-08-10 10:21:15 -0700
commitba5dc1b36be91daf9ab0c7e8b25c63f4183b5a04 (patch)
treeb1d4a1307f1cd7a5b86891915af8a816265f5ee5 /test/core
parentf607f363657425830f09d9da7d66da715b83a6d6 (diff)
parentfaef8bcc6533ac5fbc6a8efa4ff964fe897f2b5c (diff)
Merge branch 'master' into fix-end2end-test
Diffstat (limited to 'test/core')
-rw-r--r--test/core/client_channel/resolvers/dns_resolver_connectivity_test.c3
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer.c3
-rw-r--r--test/core/end2end/goaway_server_test.c8
-rw-r--r--test/core/surface/alarm_test.c15
-rw-r--r--test/core/util/BUILD24
-rw-r--r--test/core/util/port.c31
-rw-r--r--test/core/util/port.h9
7 files changed, 84 insertions, 9 deletions
diff --git a/test/core/client_channel/resolvers/dns_resolver_connectivity_test.c b/test/core/client_channel/resolvers/dns_resolver_connectivity_test.c
index 6e3d69c265..364e180963 100644
--- a/test/core/client_channel/resolvers/dns_resolver_connectivity_test.c
+++ b/test/core/client_channel/resolvers/dns_resolver_connectivity_test.c
@@ -60,7 +60,8 @@ static void my_resolve_address(grpc_exec_ctx *exec_ctx, const char *addr,
static grpc_ares_request *my_dns_lookup_ares(
grpc_exec_ctx *exec_ctx, const char *dns_server, const char *addr,
const char *default_port, grpc_pollset_set *interested_parties,
- grpc_closure *on_done, grpc_lb_addresses **lb_addrs, bool check_grpclb) {
+ grpc_closure *on_done, grpc_lb_addresses **lb_addrs, bool check_grpclb,
+ char **service_config_json) {
gpr_mu_lock(&g_mu);
GPR_ASSERT(0 == strcmp("test", addr));
grpc_error *error = GRPC_ERROR_NONE;
diff --git a/test/core/end2end/fuzzers/api_fuzzer.c b/test/core/end2end/fuzzers/api_fuzzer.c
index 01fa4f748f..1228c9fe9a 100644
--- a/test/core/end2end/fuzzers/api_fuzzer.c
+++ b/test/core/end2end/fuzzers/api_fuzzer.c
@@ -416,7 +416,8 @@ void my_resolve_address(grpc_exec_ctx *exec_ctx, const char *addr,
grpc_ares_request *my_dns_lookup_ares(
grpc_exec_ctx *exec_ctx, const char *dns_server, const char *addr,
const char *default_port, grpc_pollset_set *interested_parties,
- grpc_closure *on_done, grpc_lb_addresses **lb_addrs, bool check_grpclb) {
+ grpc_closure *on_done, grpc_lb_addresses **lb_addrs, bool check_grpclb,
+ char **service_config_json) {
addr_req *r = gpr_malloc(sizeof(*r));
r->addr = gpr_strdup(addr);
r->on_done = on_done;
diff --git a/test/core/end2end/goaway_server_test.c b/test/core/end2end/goaway_server_test.c
index bf90e2525d..c3aca13249 100644
--- a/test/core/end2end/goaway_server_test.c
+++ b/test/core/end2end/goaway_server_test.c
@@ -48,7 +48,8 @@ static void (*iomgr_resolve_address)(grpc_exec_ctx *exec_ctx, const char *addr,
static grpc_ares_request *(*iomgr_dns_lookup_ares)(
grpc_exec_ctx *exec_ctx, const char *dns_server, const char *addr,
const char *default_port, grpc_pollset_set *interested_parties,
- grpc_closure *on_done, grpc_lb_addresses **addresses, bool check_grpclb);
+ grpc_closure *on_done, grpc_lb_addresses **addresses, bool check_grpclb,
+ char **service_config_json);
static void set_resolve_port(int port) {
gpr_mu_lock(&g_mu);
@@ -90,11 +91,12 @@ static void my_resolve_address(grpc_exec_ctx *exec_ctx, const char *addr,
static grpc_ares_request *my_dns_lookup_ares(
grpc_exec_ctx *exec_ctx, const char *dns_server, const char *addr,
const char *default_port, grpc_pollset_set *interested_parties,
- grpc_closure *on_done, grpc_lb_addresses **lb_addrs, bool check_grpclb) {
+ grpc_closure *on_done, grpc_lb_addresses **lb_addrs, bool check_grpclb,
+ char **service_config_json) {
if (0 != strcmp(addr, "test")) {
return iomgr_dns_lookup_ares(exec_ctx, dns_server, addr, default_port,
interested_parties, on_done, lb_addrs,
- check_grpclb);
+ check_grpclb, service_config_json);
}
grpc_error *error = GRPC_ERROR_NONE;
diff --git a/test/core/surface/alarm_test.c b/test/core/surface/alarm_test.c
index baaa05928e..6971d92074 100644
--- a/test/core/surface/alarm_test.c
+++ b/test/core/surface/alarm_test.c
@@ -73,6 +73,21 @@ static void test_alarm(void) {
GPR_ASSERT(ev.success == 0);
grpc_alarm_destroy(alarm);
}
+ {
+ /* alarm_destroy before cq_next */
+ grpc_event ev;
+ void *tag = create_test_tag();
+ grpc_alarm *alarm =
+ grpc_alarm_create(cc, grpc_timeout_seconds_to_deadline(2), tag);
+
+ grpc_alarm_destroy(alarm);
+ ev = grpc_completion_queue_next(cc, grpc_timeout_seconds_to_deadline(1),
+ NULL);
+ GPR_ASSERT(ev.type == GRPC_OP_COMPLETE);
+ GPR_ASSERT(ev.tag == tag);
+ GPR_ASSERT(ev.success == 0);
+ }
+
shutdown_and_destroy(cc);
}
diff --git a/test/core/util/BUILD b/test/core/util/BUILD
index 9d899bc7be..1268c2cd10 100644
--- a/test/core/util/BUILD
+++ b/test/core/util/BUILD
@@ -38,7 +38,7 @@ grpc_cc_library(
)
grpc_cc_library(
- name = "grpc_test_util",
+ name = "grpc_test_util_base",
srcs = [
"debugger_macros.c",
"grpc_profiler.c",
@@ -68,11 +68,33 @@ grpc_cc_library(
language = "C",
deps = [
":gpr_test_util",
+ "//:grpc_common",
+ ],
+)
+
+grpc_cc_library(
+ name = "grpc_test_util",
+ srcs = [],
+ hdrs = [],
+ language = "C",
+ deps = [
+ ":grpc_test_util_base",
"//:grpc",
],
)
grpc_cc_library(
+ name = "grpc_test_util_unsecure",
+ srcs = [],
+ hdrs = [],
+ language = "C",
+ deps = [
+ ":grpc_test_util_base",
+ "//:grpc_unsecure",
+ ],
+)
+
+grpc_cc_library(
name = "one_corpus_entry_fuzzer",
srcs = ["one_corpus_entry_fuzzer.c"],
deps = [
diff --git a/test/core/util/port.c b/test/core/util/port.c
index f430c543bd..b1fc722858 100644
--- a/test/core/util/port.c
+++ b/test/core/util/port.c
@@ -79,7 +79,7 @@ static void chose_port(int port) {
chosen_ports[num_chosen_ports - 1] = port;
}
-int grpc_pick_unused_port(void) {
+static int grpc_pick_unused_port_impl(void) {
int port = grpc_pick_port_using_server();
if (port != 0) {
chose_port(port);
@@ -88,7 +88,7 @@ int grpc_pick_unused_port(void) {
return port;
}
-int grpc_pick_unused_port_or_die(void) {
+static int grpc_pick_unused_port_or_die_impl(void) {
int port = grpc_pick_unused_port();
if (port == 0) {
fprintf(stderr,
@@ -101,6 +101,31 @@ int grpc_pick_unused_port_or_die(void) {
return port;
}
-void grpc_recycle_unused_port(int port) { GPR_ASSERT(free_chosen_port(port)); }
+static void grpc_recycle_unused_port_impl(int port) {
+ GPR_ASSERT(free_chosen_port(port));
+}
+
+static grpc_pick_port_functions g_pick_port_functions = {
+ grpc_pick_unused_port_impl, grpc_pick_unused_port_or_die_impl,
+ grpc_recycle_unused_port_impl};
+
+int grpc_pick_unused_port(void) {
+ return g_pick_port_functions.pick_unused_port_fn();
+}
+
+int grpc_pick_unused_port_or_die(void) {
+ return g_pick_port_functions.pick_unused_port_or_die_fn();
+}
+
+void grpc_recycle_unused_port(int port) {
+ g_pick_port_functions.recycle_unused_port_fn(port);
+}
+
+void grpc_set_pick_port_functions(grpc_pick_port_functions functions) {
+ GPR_ASSERT(functions.pick_unused_port_fn != NULL);
+ GPR_ASSERT(functions.pick_unused_port_or_die_fn != NULL);
+ GPR_ASSERT(functions.recycle_unused_port_fn != NULL);
+ g_pick_port_functions = functions;
+}
#endif /* GRPC_TEST_PICK_PORT */
diff --git a/test/core/util/port.h b/test/core/util/port.h
index 154e8f830c..602099dea6 100644
--- a/test/core/util/port.h
+++ b/test/core/util/port.h
@@ -23,6 +23,12 @@
extern "C" {
#endif
+typedef struct grpc_pick_port_functions {
+ int (*pick_unused_port_fn)(void);
+ int (*pick_unused_port_or_die_fn)(void);
+ void (*recycle_unused_port_fn)(int port);
+} grpc_pick_port_functions;
+
/* pick a port number that is currently unused by either tcp or udp. return
0 on failure. */
int grpc_pick_unused_port(void);
@@ -36,6 +42,9 @@ int grpc_pick_unused_port_or_die(void);
* ports back to the server if it is going to allocate a large number. */
void grpc_recycle_unused_port(int port);
+/** Request the family of pick_port functions in \a functions be used. */
+void grpc_set_pick_port_functions(grpc_pick_port_functions functions);
+
#ifdef __cplusplus
}
#endif