@@ -1120,6 +1120,19 @@ mod tests {
11201120 // Set TOR_PROXY=127.0.0.1:9050
11211121 let tor_proxy_addr: SocketAddr = std:: env!( "TOR_PROXY" ) . parse ( ) . unwrap ( ) ;
11221122
1123+ let mut google_addresses: Vec < _ > =
1124+ tokio:: net:: lookup_host ( "google.com:80" ) . await . unwrap ( ) . collect ( ) ;
1125+ let ipv6_pos = google_addresses
1126+ . iter ( )
1127+ . position ( |a| a. is_ipv6 ( ) )
1128+ . expect ( "must resolve at least one ipv6 address" ) ;
1129+ let mut google_ipv6 = google_addresses. remove ( ipv6_pos) ;
1130+ let ipv4_pos = google_addresses
1131+ . iter ( )
1132+ . position ( |a| a. is_ipv4 ( ) )
1133+ . expect ( "must resolve at least one ipv4 address" ) ;
1134+ let mut google_ipv4 = google_addresses. remove ( ipv4_pos) ;
1135+
11231136 struct TestEntropySource ;
11241137
11251138 impl EntropySource for TestEntropySource {
@@ -1132,17 +1145,16 @@ mod tests {
11321145
11331146 // Success cases
11341147
1135- for addr_str in [
1148+ for addr in [
11361149 // google.com
1137- "142.250.189.196:80" ,
1150+ google_ipv4 . into ( ) ,
11381151 // google.com
1139- "[2607:f8b0:4005:813::2004]:80" ,
1152+ google_ipv6 . into ( ) ,
11401153 // torproject.org
1141- "torproject.org:80" ,
1154+ "torproject.org:80" . parse ( ) . unwrap ( ) ,
11421155 // torproject.org
1143- "2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80" ,
1156+ "2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80" . parse ( ) . unwrap ( ) ,
11441157 ] {
1145- let addr: SocketAddress = addr_str. parse ( ) . unwrap ( ) ;
11461158 let tcp_stream = tor_connect ( addr, tor_proxy_addr, & entropy_source) . await . unwrap ( ) ;
11471159 assert_eq ! (
11481160 tcp_stream. try_read( & mut [ 0u8 ; 1 ] ) . unwrap_err( ) . kind( ) ,
@@ -1151,18 +1163,19 @@ mod tests {
11511163 }
11521164
11531165 // Failure cases
1166+ google_ipv4. set_port ( 1234 ) ;
1167+ google_ipv6. set_port ( 1234 ) ;
11541168
1155- for addr_str in [
1169+ for addr in [
11561170 // google.com, with some invalid port
1157- "142.250.189.196:1234" ,
1171+ google_ipv4 . into ( ) ,
11581172 // google.com, with some invalid port
1159- "[2607:f8b0:4005:813::2004]:1234" ,
1173+ google_ipv6 . into ( ) ,
11601174 // torproject.org, with some invalid port
1161- "torproject.org:1234" ,
1175+ "torproject.org:1234" . parse ( ) . unwrap ( ) ,
11621176 // torproject.org, with a typo
1163- "3gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80" ,
1177+ "3gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80" . parse ( ) . unwrap ( ) ,
11641178 ] {
1165- let addr: SocketAddress = addr_str. parse ( ) . unwrap ( ) ;
11661179 assert ! ( tor_connect( addr, tor_proxy_addr, & entropy_source) . await . is_err( ) ) ;
11671180 }
11681181 }
0 commit comments