@@ -771,20 +771,23 @@ mod tests {
771
771
772
772
#[ test]
773
773
fn test_bind ( ) {
774
+ let ( pr_s, pr_e) = sockets:: localhost_port_range_for_tests ( ) ;
774
775
let ip_addr = IpAddr :: V4 ( Ipv4Addr :: UNSPECIFIED ) ;
775
- assert_eq ! ( bind_in_range( ip_addr, ( 2000 , 2001 ) ) . unwrap( ) . 0 , 2000 ) ;
776
+ let s = bind_in_range ( ip_addr, ( pr_s, pr_e) ) . unwrap ( ) ;
777
+ assert_eq ! ( s. 0 , pr_s, "bind_in_range should use first available port" ) ;
776
778
let ip_addr = IpAddr :: V4 ( Ipv4Addr :: UNSPECIFIED ) ;
777
779
let config = SocketConfig :: default ( ) . reuseport ( true ) ;
778
- let x = bind_to_with_config ( ip_addr, 2002 , config) . unwrap ( ) ;
779
- let y = bind_to_with_config ( ip_addr, 2002 , config) . unwrap ( ) ;
780
+ let x = bind_to_with_config ( ip_addr, pr_s + 1 , config) . unwrap ( ) ;
781
+ let y = bind_to_with_config ( ip_addr, pr_s + 1 , config) . unwrap ( ) ;
780
782
assert_eq ! (
781
783
x. local_addr( ) . unwrap( ) . port( ) ,
782
784
y. local_addr( ) . unwrap( ) . port( )
783
785
) ;
784
- bind_to ( ip_addr, 2002 , false ) . unwrap_err ( ) ;
785
- bind_in_range ( ip_addr, ( 2002 , 2003 ) ) . unwrap_err ( ) ;
786
+ bind_to ( ip_addr, pr_s , false ) . unwrap_err ( ) ;
787
+ bind_in_range ( ip_addr, ( pr_s , pr_s + 2 ) ) . unwrap_err ( ) ;
786
788
787
- let ( port, v) = multi_bind_in_range_with_config ( ip_addr, ( 2010 , 2110 ) , config, 10 ) . unwrap ( ) ;
789
+ let ( port, v) =
790
+ multi_bind_in_range_with_config ( ip_addr, ( pr_s + 5 , pr_e) , config, 10 ) . unwrap ( ) ;
788
791
for sock in & v {
789
792
assert_eq ! ( port, sock. local_addr( ) . unwrap( ) . port( ) ) ;
790
793
}
@@ -811,36 +814,39 @@ mod tests {
811
814
812
815
#[ test]
813
816
fn test_find_available_port_in_range ( ) {
814
- let ip_addr = IpAddr :: V4 ( Ipv4Addr :: UNSPECIFIED ) ;
817
+ let ip_addr = IpAddr :: V4 ( Ipv4Addr :: LOCALHOST ) ;
818
+ let ( pr_s, pr_e) = sockets:: localhost_port_range_for_tests ( ) ;
815
819
assert_eq ! (
816
- find_available_port_in_range( ip_addr, ( 3000 , 3001 ) ) . unwrap( ) ,
817
- 3000
820
+ find_available_port_in_range( ip_addr, ( pr_s , pr_s + 1 ) ) . unwrap( ) ,
821
+ pr_s
818
822
) ;
819
- let port = find_available_port_in_range ( ip_addr, ( 3000 , 3050 ) ) . unwrap ( ) ;
820
- assert ! ( ( 3000 .. 3050 ) . contains( & port) ) ;
823
+ let port = find_available_port_in_range ( ip_addr, ( pr_s , pr_e ) ) . unwrap ( ) ;
824
+ assert ! ( ( pr_s..pr_e ) . contains( & port) ) ;
821
825
822
826
let _socket = bind_to ( ip_addr, port, false ) . unwrap ( ) ;
823
827
find_available_port_in_range ( ip_addr, ( port, port + 1 ) ) . unwrap_err ( ) ;
824
828
}
825
829
826
830
#[ test]
827
831
fn test_bind_common_in_range ( ) {
828
- let ip_addr = IpAddr :: V4 ( Ipv4Addr :: UNSPECIFIED ) ;
832
+ let ip_addr = IpAddr :: V4 ( Ipv4Addr :: LOCALHOST ) ;
833
+ let ( pr_s, pr_e) = sockets:: localhost_port_range_for_tests ( ) ;
829
834
let config = SocketConfig :: default ( ) ;
830
835
let ( port, _sockets) =
831
- bind_common_in_range_with_config ( ip_addr, ( 3100 , 3150 ) , config) . unwrap ( ) ;
832
- assert ! ( ( 3100 .. 3150 ) . contains( & port) ) ;
836
+ bind_common_in_range_with_config ( ip_addr, ( pr_s , pr_e ) , config) . unwrap ( ) ;
837
+ assert ! ( ( pr_s..pr_e ) . contains( & port) ) ;
833
838
834
839
bind_common_in_range_with_config ( ip_addr, ( port, port + 1 ) , config) . unwrap_err ( ) ;
835
840
}
836
841
837
842
#[ test]
838
843
fn test_get_public_ip_addr_none ( ) {
839
844
solana_logger:: setup ( ) ;
840
- let ip_addr = IpAddr :: V4 ( Ipv4Addr :: UNSPECIFIED ) ;
845
+ let ip_addr = IpAddr :: V4 ( Ipv4Addr :: LOCALHOST ) ;
846
+ let ( pr_s, pr_e) = sockets:: localhost_port_range_for_tests ( ) ;
841
847
let config = SocketConfig :: default ( ) ;
842
848
let ( _server_port, ( server_udp_socket, server_tcp_listener) ) =
843
- bind_common_in_range_with_config ( ip_addr, ( 3200 , 3300 ) , config) . unwrap ( ) ;
849
+ bind_common_in_range_with_config ( ip_addr, ( pr_s , pr_e ) , config) . unwrap ( ) ;
844
850
845
851
let _runtime = ip_echo_server (
846
852
server_tcp_listener,
@@ -861,12 +867,13 @@ mod tests {
861
867
#[ test]
862
868
fn test_get_public_ip_addr_reachable ( ) {
863
869
solana_logger:: setup ( ) ;
864
- let ip_addr = IpAddr :: V4 ( Ipv4Addr :: UNSPECIFIED ) ;
870
+ let ip_addr = IpAddr :: V4 ( Ipv4Addr :: LOCALHOST ) ;
871
+ let port_range = sockets:: localhost_port_range_for_tests ( ) ;
865
872
let config = SocketConfig :: default ( ) ;
866
873
let ( _server_port, ( server_udp_socket, server_tcp_listener) ) =
867
- bind_common_in_range_with_config ( ip_addr, ( 3200 , 3300 ) , config) . unwrap ( ) ;
874
+ bind_common_in_range_with_config ( ip_addr, port_range , config) . unwrap ( ) ;
868
875
let ( _client_port, ( client_udp_socket, client_tcp_listener) ) =
869
- bind_common_in_range_with_config ( ip_addr, ( 3200 , 3300 ) , config) . unwrap ( ) ;
876
+ bind_common_in_range_with_config ( ip_addr, port_range , config) . unwrap ( ) ;
870
877
871
878
let _runtime = ip_echo_server (
872
879
server_tcp_listener,
@@ -896,16 +903,17 @@ mod tests {
896
903
#[ test]
897
904
fn test_verify_ports_tcp_unreachable ( ) {
898
905
solana_logger:: setup ( ) ;
899
- let ip_addr = IpAddr :: V4 ( Ipv4Addr :: UNSPECIFIED ) ;
906
+ let ip_addr = IpAddr :: V4 ( Ipv4Addr :: LOCALHOST ) ;
907
+ let port_range = sockets:: localhost_port_range_for_tests ( ) ;
900
908
let config = SocketConfig :: default ( ) ;
901
909
let ( _server_port, ( server_udp_socket, _server_tcp_listener) ) =
902
- bind_common_in_range_with_config ( ip_addr, ( 3200 , 3300 ) , config) . unwrap ( ) ;
910
+ bind_common_in_range_with_config ( ip_addr, port_range , config) . unwrap ( ) ;
903
911
904
912
// make the socket unreachable by not running the ip echo server!
905
913
let server_ip_echo_addr = server_udp_socket. local_addr ( ) . unwrap ( ) ;
906
914
907
915
let ( _, ( _client_udp_socket, client_tcp_listener) ) =
908
- bind_common_in_range_with_config ( ip_addr, ( 3200 , 3300 ) , config) . unwrap ( ) ;
916
+ bind_common_in_range_with_config ( ip_addr, port_range , config) . unwrap ( ) ;
909
917
910
918
let rt = runtime ( ) ;
911
919
assert ! ( !rt. block_on( ip_echo_client:: verify_all_reachable_tcp(
@@ -918,16 +926,17 @@ mod tests {
918
926
#[ test]
919
927
fn test_verify_ports_udp_unreachable ( ) {
920
928
solana_logger:: setup ( ) ;
921
- let ip_addr = IpAddr :: V4 ( Ipv4Addr :: UNSPECIFIED ) ;
929
+ let ip_addr = IpAddr :: V4 ( Ipv4Addr :: LOCALHOST ) ;
930
+ let port_range = sockets:: localhost_port_range_for_tests ( ) ;
922
931
let config = SocketConfig :: default ( ) ;
923
932
let ( _server_port, ( server_udp_socket, _server_tcp_listener) ) =
924
- bind_common_in_range_with_config ( ip_addr, ( 3200 , 3300 ) , config) . unwrap ( ) ;
933
+ bind_common_in_range_with_config ( ip_addr, port_range , config) . unwrap ( ) ;
925
934
926
935
// make the socket unreachable by not running the ip echo server!
927
936
let server_ip_echo_addr = server_udp_socket. local_addr ( ) . unwrap ( ) ;
928
937
929
938
let ( _correct_client_port, ( client_udp_socket, _client_tcp_listener) ) =
930
- bind_common_in_range_with_config ( ip_addr, ( 3200 , 3300 ) , config) . unwrap ( ) ;
939
+ bind_common_in_range_with_config ( ip_addr, port_range , config) . unwrap ( ) ;
931
940
932
941
let rt = runtime ( ) ;
933
942
assert ! ( !rt. block_on( ip_echo_client:: verify_all_reachable_udp(
@@ -941,18 +950,18 @@ mod tests {
941
950
#[ test]
942
951
fn test_verify_many_ports_reachable ( ) {
943
952
solana_logger:: setup ( ) ;
944
- let ip_addr = IpAddr :: V4 ( Ipv4Addr :: UNSPECIFIED ) ;
953
+ let ip_addr = IpAddr :: V4 ( Ipv4Addr :: LOCALHOST ) ;
945
954
let config = SocketConfig :: default ( ) ;
946
955
let mut tcp_listeners = vec ! [ ] ;
947
956
let mut udp_sockets = vec ! [ ] ;
948
957
949
958
let ( _server_port, ( _, server_tcp_listener) ) =
950
- bind_common_in_range_with_config ( ip_addr, ( 3200 , 3300 ) , config) . unwrap ( ) ;
959
+ bind_common_in_range_with_config ( ip_addr, ( 2200 , 2300 ) , config) . unwrap ( ) ;
951
960
for _ in 0 ..MAX_PORT_VERIFY_THREADS * 2 {
952
961
let ( _client_port, ( client_udp_socket, client_tcp_listener) ) =
953
962
bind_common_in_range_with_config (
954
963
ip_addr,
955
- ( 3300 , 3300 + ( MAX_PORT_VERIFY_THREADS * 3 ) as u16 ) ,
964
+ ( 2300 , 2300 + ( MAX_PORT_VERIFY_THREADS * 3 ) as u16 ) ,
956
965
config,
957
966
)
958
967
. unwrap ( ) ;
0 commit comments