Skip to content

Commit 67bf852

Browse files
authored
Merge pull request #4521 from tankyleo/2026-03-tor-connect-flakiness
Fix flakiness in `test_tor_connect`
2 parents 450c03a + 20e943e commit 67bf852

File tree

1 file changed

+25
-12
lines changed

1 file changed

+25
-12
lines changed

lightning-net-tokio/src/lib.rs

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)