From 92ff3f961dd381ccb3b3dda144e84036fd7de5d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien?= Date: Thu, 9 Feb 2023 10:54:56 +0100 Subject: [PATCH] add a test on incoming connections disconnect (#1233) --- crates/net/network/tests/it/connect.rs | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/crates/net/network/tests/it/connect.rs b/crates/net/network/tests/it/connect.rs index 243c807a25..c81670db0f 100644 --- a/crates/net/network/tests/it/connect.rs +++ b/crates/net/network/tests/it/connect.rs @@ -551,3 +551,31 @@ async fn test_shutdown() { let (_peer, reason) = listener0.next_session_closed().await.unwrap(); assert_eq!(reason, Some(DisconnectReason::DisconnectRequested)); } + +#[tokio::test(flavor = "multi_thread")] +async fn test_disconnect_incoming_when_exceeded_incoming_connections() { + let net = Testnet::create(1).await; + let (reth_p2p, reth_disc) = unused_tcp_udp(); + let secret_key = SecretKey::new(&mut rand::thread_rng()); + let peers_config = PeersConfig::default().with_max_inbound(0); + + let config = NetworkConfigBuilder::new(secret_key) + .listener_addr(reth_p2p) + .discovery_addr(reth_disc) + .peer_config(peers_config) + .build(Arc::new(NoopProvider::default())); + let network = NetworkManager::new(config).await.unwrap(); + + let other_peer_handle = net.handles().next().unwrap(); + + let handle = network.handle().clone(); + + other_peer_handle.add_peer(*handle.peer_id(), handle.local_addr()); + + tokio::task::spawn(network); + let _handle = net.spawn(); + + tokio::time::sleep(Duration::from_secs(1)).await; + + assert_eq!(handle.num_connected_peers(), 0); +}