Skip to content

Commit 684fb30

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

1 file changed

Lines changed: 19 additions & 13 deletions

File tree

lightning-net-tokio/src/lib.rs

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1115,11 +1115,17 @@ 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.iter().position(|a| a.is_ipv6()).expect("must resolve at least one ipv6 address");
1125+
let mut google_ipv6 = google_addresses.remove(ipv6_pos);
1126+
let ipv4_pos = google_addresses.iter().position(|a| a.is_ipv4()).expect("must resolve at least one ipv4 address");
1127+
let mut google_ipv4 = google_addresses.remove(ipv4_pos);
1128+
11231129
struct TestEntropySource;
11241130

11251131
impl EntropySource for TestEntropySource {
@@ -1132,17 +1138,16 @@ mod tests {
11321138

11331139
// Success cases
11341140

1135-
for addr_str in [
1141+
for addr in [
11361142
// google.com
1137-
"142.250.189.196:80",
1143+
google_ipv4.into(),
11381144
// google.com
1139-
"[2607:f8b0:4005:813::2004]:80",
1145+
google_ipv6.into(),
11401146
// torproject.org
1141-
"torproject.org:80",
1147+
"torproject.org:80".parse().unwrap(),
11421148
// torproject.org
1143-
"2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80",
1149+
"2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80".parse().unwrap(),
11441150
] {
1145-
let addr: SocketAddress = addr_str.parse().unwrap();
11461151
let tcp_stream = tor_connect(addr, tor_proxy_addr, &entropy_source).await.unwrap();
11471152
assert_eq!(
11481153
tcp_stream.try_read(&mut [0u8; 1]).unwrap_err().kind(),
@@ -1151,18 +1156,19 @@ mod tests {
11511156
}
11521157

11531158
// Failure cases
1159+
google_ipv4.set_port(1234);
1160+
google_ipv6.set_port(1234);
11541161

1155-
for addr_str in [
1162+
for addr in [
11561163
// google.com, with some invalid port
1157-
"142.250.189.196:1234",
1164+
google_ipv4.into(),
11581165
// google.com, with some invalid port
1159-
"[2607:f8b0:4005:813::2004]:1234",
1166+
google_ipv6.into(),
11601167
// torproject.org, with some invalid port
1161-
"torproject.org:1234",
1168+
"torproject.org:1234".parse().unwrap(),
11621169
// torproject.org, with a typo
1163-
"3gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80",
1170+
"3gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion:80".parse().unwrap(),
11641171
] {
1165-
let addr: SocketAddress = addr_str.parse().unwrap();
11661172
assert!(tor_connect(addr, tor_proxy_addr, &entropy_source).await.is_err());
11671173
}
11681174
}

0 commit comments

Comments
 (0)