diff --git a/crates/net/network/tests/it/startup.rs b/crates/net/network/tests/it/startup.rs index 4994a7365b..0d36867fc8 100644 --- a/crates/net/network/tests/it/startup.rs +++ b/crates/net/network/tests/it/startup.rs @@ -11,10 +11,10 @@ use std::{ net::{Ipv4Addr, SocketAddr, SocketAddrV4}, }; -fn is_addr_in_use_kind(err: NetworkError, kind: ServiceKind) -> bool { +fn is_addr_in_use_kind(err: &NetworkError, kind: ServiceKind) -> bool { match err { NetworkError::AddressAlreadyInUse { kind: k, error } => { - k == kind && error.kind() == io::ErrorKind::AddrInUse + *k == kind && error.kind() == io::ErrorKind::AddrInUse } _ => false, } @@ -34,12 +34,17 @@ async fn test_is_default_syncing() { #[tokio::test(flavor = "multi_thread")] async fn test_listener_addr_in_use() { let secret_key = SecretKey::new(&mut rand::thread_rng()); - let config = NetworkConfigBuilder::new(secret_key).build(NoopProvider::default()); - let _network = NetworkManager::new(config).await.unwrap(); - let config = NetworkConfigBuilder::new(secret_key).build(NoopProvider::default()); - let addr = config.discovery_addr; + let config = + NetworkConfigBuilder::new(secret_key).listener_port(0).build(NoopProvider::default()); + let network = NetworkManager::new(config).await.unwrap(); + let listener_port = network.local_addr().port(); + let config = NetworkConfigBuilder::new(secret_key) + .listener_port(listener_port) + .build(NoopProvider::default()); + let addr = config.listener_addr; let result = NetworkManager::new(config).await; - assert!(is_addr_in_use_kind(result.err().unwrap(), ServiceKind::Listener(addr))); + let err = result.err().unwrap(); + assert!(is_addr_in_use_kind(&err, ServiceKind::Listener(addr)), "{:?}", err); } #[tokio::test(flavor = "multi_thread")] @@ -50,5 +55,5 @@ async fn test_discovery_addr_in_use() { let _discovery = Discovery::new(addr, secret_key, Some(disc_config), None).await.unwrap(); let disc_config = Discv4Config::default(); let result = Discovery::new(addr, secret_key, Some(disc_config), None).await; - assert!(is_addr_in_use_kind(result.err().unwrap(), ServiceKind::Discovery(addr))); + assert!(is_addr_in_use_kind(&result.err().unwrap(), ServiceKind::Discovery(addr))); }