Skip to content

Commit 8f39539

Browse files
committed
Avoid duplicate random ports in tests
Previously, we could have hit cases where we generated the same listening address twice. Here, we avoid such collisions.
1 parent 37045f4 commit 8f39539

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

tests/common/mod.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -222,15 +222,14 @@ pub(crate) fn random_port() -> u16 {
222222

223223
pub(crate) fn random_listening_addresses() -> Vec<SocketAddress> {
224224
let num_addresses = 2;
225-
let mut listening_addresses = Vec::with_capacity(num_addresses);
225+
let mut listening_ports = HashSet::with_capacity(num_addresses);
226226

227-
for _ in 0..num_addresses {
227+
while listening_ports.len() < num_addresses {
228228
let rand_port = random_port();
229-
let address: SocketAddress = format!("127.0.0.1:{}", rand_port).parse().unwrap();
230-
listening_addresses.push(address);
229+
listening_ports.insert(rand_port);
231230
}
232231

233-
listening_addresses
232+
listening_ports.into_iter().map(|p| format!("127.0.0.1:{}", p).parse().unwrap()).collect()
234233
}
235234

236235
pub(crate) fn random_node_alias() -> Option<NodeAlias> {

0 commit comments

Comments
 (0)