Skip to content

Commit

Permalink
Merge of #5758
Browse files Browse the repository at this point in the history
  • Loading branch information
mergify[bot] authored Dec 1, 2022
2 parents b3faa75 + fb0d312 commit 8bbd51c
Showing 1 changed file with 16 additions and 10 deletions.
26 changes: 16 additions & 10 deletions zebrad/src/components/inbound/tests/fake_peer_set.rs
Original file line number Diff line number Diff line change
Expand Up @@ -78,13 +78,11 @@ async fn mempool_requests_for_transactions() {
.await;
match response {
Ok(Response::TransactionIds(response)) => assert_eq!(response, added_transaction_ids),
Ok(Response::Nil) => if !added_transaction_ids.is_empty() {
info!(
"response {response:?} to `MempoolTransactionIds` request \
should match added_transaction_ids {added_transaction_ids:?}, \
ignoring test failure because this test is unreliable due to timing issues",
);
}
Ok(Response::Nil) => assert!(
added_transaction_ids.is_empty(),
"`MempoolTransactionIds` request should match added_transaction_ids {:?}, got Ok(Nil)",
added_transaction_ids
),
_ => unreachable!(
"`MempoolTransactionIds` requests should always respond `Ok(Vec<UnminedTxId> | Nil)`, got {:?}",
response
Expand Down Expand Up @@ -857,7 +855,8 @@ async fn setup(
.unwrap();
committed_blocks.push(block_one);

// Don't wait for the chain tip update here, we wait for AdvertiseBlock below.
// Don't wait for the chain tip update here, we wait for expect_request(AdvertiseBlock) below,
// which is called by the gossip_best_tip_block_hashes task once the chain tip changes.

let (mut mempool_service, transaction_receiver) = Mempool::new(
&MempoolConfig::default(),
Expand All @@ -869,8 +868,8 @@ async fn setup(
chain_tip_change.clone(),
);

// Enable the mempool
mempool_service.enable(&mut recent_syncs).await;
// Pretend we're close to tip
SyncStatus::sync_close_to_tip(&mut recent_syncs);

let sync_gossip_task_handle = tokio::spawn(sync::gossip_best_tip_block_hashes(
sync_status.clone(),
Expand All @@ -894,6 +893,13 @@ async fn setup(
.respond(Response::Nil);
}

// Enable the mempool
// Note: this needs to be done after the mock peer set service has received the AdvertiseBlock
// request to ensure that the call to `last_tip_change` returns the chain tip block for block_one
// and not the genesis block, or else the transactions from the genesis block will be added to
// the mempool storage's rejection list and tests will fail.
mempool_service.enable(&mut recent_syncs).await;

// Add transactions to the mempool, skipping verification and broadcast
let mut added_transactions = Vec::new();
if add_transactions {
Expand Down

0 comments on commit 8bbd51c

Please sign in to comment.