@ -75,6 +75,10 @@ void test_connect(const char *server_host, const char *client_host, int port,
gpr_timespec deadline ;
int got_port ;
if ( port = = 0 ) {
port = grpc_pick_unused_port_or_die ( ) ;
}
gpr_join_host_port ( & server_hostport , server_host , port ) ;
/* Create server. */
@ -179,7 +183,6 @@ void test_connect(const char *server_host, const char *client_host, int port,
int main ( int argc , char * * argv ) {
int do_ipv6 = 1 ;
int fixed_port ;
grpc_test_init ( argc , argv ) ;
grpc_init ( ) ;
@ -189,32 +192,28 @@ int main(int argc, char **argv) {
do_ipv6 = 0 ;
}
for ( fixed_port = 0 ; fixed_port < = 1 ; fixed_port + + ) {
int port = fixed_port ? grpc_pick_unused_port_or_die ( ) : 0 ;
/* For coverage, test with and without dualstack sockets. */
for ( grpc_forbid_dualstack_sockets_for_testing = 0 ;
grpc_forbid_dualstack_sockets_for_testing < = 1 ;
grpc_forbid_dualstack_sockets_for_testing + + ) {
/* :: and 0.0.0.0 are handled identically. */
test_connect ( " :: " , " 127.0.0.1 " , port , 1 ) ;
test_connect ( " :: " , " ::ffff:127.0.0.1 " , port , 1 ) ;
test_connect ( " :: " , " localhost " , port , 1 ) ;
test_connect ( " 0.0.0.0 " , " 127.0.0.1 " , port , 1 ) ;
test_connect ( " 0.0.0.0 " , " ::ffff:127.0.0.1 " , port , 1 ) ;
test_connect ( " 0.0.0.0 " , " localhost " , port , 1 ) ;
if ( do_ipv6 ) {
test_connect ( " :: " , " ::1 " , port , 1 ) ;
test_connect ( " 0.0.0.0 " , " ::1 " , port , 1 ) ;
}
/* These only work when the families agree. */
test_connect ( " 127.0.0.1 " , " 127.0.0.1 " , port , 1 ) ;
if ( do_ipv6 ) {
test_connect ( " ::1 " , " ::1 " , port , 1 ) ;
test_connect ( " ::1 " , " 127.0.0.1 " , port , 0 ) ;
test_connect ( " 127.0.0.1 " , " ::1 " , port , 0 ) ;
}
for ( grpc_forbid_dualstack_sockets_for_testing = 0 ;
grpc_forbid_dualstack_sockets_for_testing < = 1 ;
grpc_forbid_dualstack_sockets_for_testing + + ) {
/* :: and 0.0.0.0 are handled identically. */
test_connect ( " :: " , " 127.0.0.1 " , 0 , 1 ) ;
test_connect ( " :: " , " ::ffff:127.0.0.1 " , 0 , 1 ) ;
test_connect ( " :: " , " localhost " , 0 , 1 ) ;
test_connect ( " 0.0.0.0 " , " 127.0.0.1 " , 0 , 1 ) ;
test_connect ( " 0.0.0.0 " , " ::ffff:127.0.0.1 " , 0 , 1 ) ;
test_connect ( " 0.0.0.0 " , " localhost " , 0 , 1 ) ;
if ( do_ipv6 ) {
test_connect ( " :: " , " ::1 " , 0 , 1 ) ;
test_connect ( " 0.0.0.0 " , " ::1 " , 0 , 1 ) ;
}
/* These only work when the families agree. */
test_connect ( " 127.0.0.1 " , " 127.0.0.1 " , 0 , 1 ) ;
if ( do_ipv6 ) {
test_connect ( " ::1 " , " ::1 " , 0 , 1 ) ;
test_connect ( " ::1 " , " 127.0.0.1 " , 0 , 0 ) ;
test_connect ( " 127.0.0.1 " , " ::1 " , 0 , 0 ) ;
}
}