Skip to content

Commit cbe5c61

Browse files
committed
Fix flakiness in test_tor_connect
Fixes #4519
1 parent 38a62c3 commit cbe5c61

1 file changed

Lines changed: 25 additions & 13 deletions

File tree

lightning-net-tokio/src/lib.rs

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1115,11 +1115,23 @@ mod tests {
11151115
async fn test_tor_connect() {
11161116
use super::tor_connect;
11171117
use lightning::sign::EntropySource;
1118-
use std::net::SocketAddr;
1118+
use std::net::{SocketAddr, ToSocketAddrs};
11191119

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<_> = "google.com:80".to_socket_addrs().unwrap().collect();
1124+
let ipv6_pos = google_addresses
1125+
.iter()
1126+
.position(|a| a.is_ipv6())
1127+
.expect("must resolve at least one ipv6 address");
1128+
let mut google_ipv6 = google_addresses.remove(ipv6_pos);
1129+
let ipv4_pos = google_addresses
1130+
.iter()
1131+
.position(|a| a.is_ipv4())
1132+
.expect("must resolve at least one ipv4 address");
1133+
let mut google_ipv4 = google_addresses.remove(ipv4_pos);
1134+
11231135
struct TestEntropySource;
11241136

11251137
impl EntropySource for TestEntropySource {
@@ -1132,17 +1144,16 @@ mod tests {
11321144

11331145
// Success cases
11341146

1135-
for addr_str in [
1147+
for addr in [
11361148
// google.com
1137-
"142.250.189.196:80",
1149+
google_ipv4.into(),
11381150
// google.com
1139-
"[2607:f8b0:4005:813::2004]:80",
1151+
google_ipv6.into(),
11401152
// torproject.org
1141-
"torproject.org:80",
1153+
"torproject.org:80".parse().unwrap(),
11421154
// torproject.org
1143-
"2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80",
1155+
"2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80".parse().unwrap(),
11441156
] {
1145-
let addr: SocketAddress = addr_str.parse().unwrap();
11461157
let tcp_stream = tor_connect(addr, tor_proxy_addr, &entropy_source).await.unwrap();
11471158
assert_eq!(
11481159
tcp_stream.try_read(&mut [0u8; 1]).unwrap_err().kind(),
@@ -1151,18 +1162,19 @@ mod tests {
11511162
}
11521163

11531164
// Failure cases
1165+
google_ipv4.set_port(1234);
1166+
google_ipv6.set_port(1234);
11541167

1155-
for addr_str in [
1168+
for addr in [
11561169
// google.com, with some invalid port
1157-
"142.250.189.196:1234",
1170+
google_ipv4.into(),
11581171
// google.com, with some invalid port
1159-
"[2607:f8b0:4005:813::2004]:1234",
1172+
google_ipv6.into(),
11601173
// torproject.org, with some invalid port
1161-
"torproject.org:1234",
1174+
"torproject.org:1234".parse().unwrap(),
11621175
// torproject.org, with a typo
1163-
"3gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80",
1176+
"3gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80".parse().unwrap(),
11641177
] {
1165-
let addr: SocketAddress = addr_str.parse().unwrap();
11661178
assert!(tor_connect(addr, tor_proxy_addr, &entropy_source).await.is_err());
11671179
}
11681180
}

0 commit comments

Comments
 (0)