From 5efe17370f017346aaccc1b7514b17023b4220b0 Mon Sep 17 00:00:00 2001 From: int88 <106391185+int88@users.noreply.github.com> Date: Tue, 9 Apr 2024 20:18:04 +0800 Subject: [PATCH] test: extend `test_pending_ping()` to respect limit of `pending_pings` (#7520) --- crates/net/discv4/src/lib.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/crates/net/discv4/src/lib.rs b/crates/net/discv4/src/lib.rs index 0ac32a70c..bfd64d623 100644 --- a/crates/net/discv4/src/lib.rs +++ b/crates/net/discv4/src/lib.rs @@ -2268,12 +2268,27 @@ mod tests { let local_addr = service.local_addr(); let mut num_inserted = 0; - for _ in 0..MAX_NODES_PING { + loop { let node = NodeRecord::new(local_addr, PeerId::random()); if service.add_node(node) { num_inserted += 1; assert!(service.pending_pings.contains_key(&node.id)); assert_eq!(service.pending_pings.len(), num_inserted); + if num_inserted == MAX_NODES_PING { + break; + } + } + } + + // `pending_pings` is full, insert into `queued_pings`. + num_inserted = 0; + for _ in 0..MAX_NODES_PING { + let node = NodeRecord::new(local_addr, PeerId::random()); + if service.add_node(node) { + num_inserted += 1; + assert!(!service.pending_pings.contains_key(&node.id)); + assert_eq!(service.pending_pings.len(), MAX_NODES_PING); + assert_eq!(service.queued_pings.len(), num_inserted); } } }