fix(ci): update fake_peer_set test to avoid spurious failures (#5758)
* moves mempool.enable below peer_set.expect_request * adds `sync_close_to_tip` call before starting gossip_best_tip_block_hashes task
This commit is contained in:
parent
b3faa750b9
commit
8f9031880e
|
@ -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
|
||||
|
@ -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(),
|
||||
|
@ -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(),
|
||||
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue