diff options
author | Yuchen Zeng <y-zeng@users.noreply.github.com> | 2017-08-03 12:05:54 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-03 12:05:54 -0700 |
commit | 8831436fdab1243eacea40856d6e398a65d4342c (patch) | |
tree | 1cae254beb55f6efec7bd70db87cc11a11f5d129 /test/core/util/port.c | |
parent | a365d73f97bab59877e144479a0e59c9022ac0f9 (diff) | |
parent | 36969385e50ac6340129b85df11de72b23ec05e2 (diff) |
Merge pull request #12046 from y-zeng/port
Make port picking functions overridable
Diffstat (limited to 'test/core/util/port.c')
-rw-r--r-- | test/core/util/port.c | 31 |
1 files changed, 28 insertions, 3 deletions
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 */ |