From c811457f46a9af4620c4472bdf81082821db2e97 Mon Sep 17 00:00:00 2001 From: teor Date: Wed, 27 Jul 2022 12:15:53 +1000 Subject: [PATCH] Allow the mempool_transaction_expiration test to get network requests in any order (#4830) --- .../components/inbound/tests/fake_peer_set.rs | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/zebrad/src/components/inbound/tests/fake_peer_set.rs b/zebrad/src/components/inbound/tests/fake_peer_set.rs index 0949c893..8752a7d9 100644 --- a/zebrad/src/components/inbound/tests/fake_peer_set.rs +++ b/zebrad/src/components/inbound/tests/fake_peer_set.rs @@ -404,14 +404,41 @@ async fn mempool_transaction_expiration() -> Result<(), crate::BoxError> { // Test transaction 1 is gossiped let mut hs = HashSet::new(); hs.insert(tx1_id); + + // Transaction and Block IDs are gossipped, in any order + let possible_requests = &mut [ + Request::AdvertiseTransactionIds(hs), + Request::AdvertiseBlock(block_two.hash()), + ] + .to_vec(); + peer_set - .expect_request(Request::AdvertiseTransactionIds(hs)) + .expect_request_that(|request| { + let is_possible = possible_requests.contains(request); + + *possible_requests = possible_requests + .clone() + .into_iter() + .filter(|possible| possible != request) + .collect(); + + is_possible + }) .await .respond(Response::Nil); - // Block is gossiped then peer_set - .expect_request(Request::AdvertiseBlock(block_two.hash())) + .expect_request_that(|request| { + let is_possible = possible_requests.contains(request); + + *possible_requests = possible_requests + .clone() + .into_iter() + .filter(|possible| possible != request) + .collect(); + + is_possible + }) .await .respond(Response::Nil);