aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Yuchen Zeng <zyc@google.com>2017-08-02 16:09:08 -0700
committerGravatar Yuchen Zeng <zyc@google.com>2017-08-02 16:09:08 -0700
commit32c0153f8181feb89e0abf2ef47c02fb63f70063 (patch)
tree23631a8616afa29478e4cb4d88a3caa47acb86e7
parente1653dec3e360fd02cd15d87e9cf78f7cb02bfa5 (diff)
Make port picking functions overridable
-rw-r--r--test/core/util/port.c12
-rw-r--r--test/core/util/port.h6
2 files changed, 12 insertions, 6 deletions
diff --git a/test/core/util/port.c b/test/core/util/port.c
index f430c543bd..4df7572f27 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,12 @@ 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));
+}
+
+int (*grpc_pick_unused_port)(void) = grpc_pick_unused_port_impl;
+int (*grpc_pick_unused_port_or_die)(void) = grpc_pick_unused_port_or_die_impl;
+void (*grpc_recycle_unused_port)(int port) = grpc_recycle_unused_port_impl;
#endif /* GRPC_TEST_PICK_PORT */
diff --git a/test/core/util/port.h b/test/core/util/port.h
index 154e8f830c..0e15f397a5 100644
--- a/test/core/util/port.h
+++ b/test/core/util/port.h
@@ -25,16 +25,16 @@ extern "C" {
/* pick a port number that is currently unused by either tcp or udp. return
0 on failure. */
-int grpc_pick_unused_port(void);
+extern int (*grpc_pick_unused_port)(void);
/* pick a port number that is currently unused by either tcp or udp. abort
on failure. */
-int grpc_pick_unused_port_or_die(void);
+extern int (*grpc_pick_unused_port_or_die)(void);
/* Return a port which was previously returned by grpc_pick_unused_port().
* Implementations of grpc_pick_unused_port() backed by a portserver may limit
* the total number of ports available; this lets a binary return its allocated
* ports back to the server if it is going to allocate a large number. */
-void grpc_recycle_unused_port(int port);
+extern void (*grpc_recycle_unused_port)(int port);
#ifdef __cplusplus
}