Make port picking functions overridable

pull/12046/head
Yuchen Zeng 7 years ago
parent e1653dec3e
commit 32c0153f81
  1. 12
      test/core/util/port.c
  2. 6
      test/core/util/port.h

@ -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 */

@ -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
}

Loading…
Cancel
Save