diff --git a/zebra-consensus/src/checkpoint/tests.rs b/zebra-consensus/src/checkpoint/tests.rs index f54315a14..6c41b5fb9 100644 --- a/zebra-consensus/src/checkpoint/tests.rs +++ b/zebra-consensus/src/checkpoint/tests.rs @@ -213,9 +213,7 @@ async fn multi_item_checkpoint_list() -> Result<(), Report> { Ok(()) } -// Temporarily ignore this test, until the state can handle out-of-order blocks -// #[tokio::test] -#[allow(dead_code)] +#[tokio::test] async fn continuous_blockchain_test() -> Result<(), Report> { continuous_blockchain(None).await?; for height in 0..=10 { @@ -226,7 +224,6 @@ async fn continuous_blockchain_test() -> Result<(), Report> { /// Test a continuous blockchain, restarting verification at `restart_height`. // TODO: does this duplicate the test code commented out in src/chain/tests.rs? -#[allow(dead_code)] #[spandoc::spandoc] async fn continuous_blockchain(restart_height: Option) -> Result<(), Report> { zebra_test::init(); @@ -313,6 +310,7 @@ async fn continuous_blockchain(restart_height: Option) -> Result< // Now verify each block for (block, height, _hash) in blockchain { + // Commit directly to the state until after the (fake) restart height if let Some(restart_height) = restart_height { if height <= restart_height { let mut state_service = state_service.clone(); @@ -320,15 +318,20 @@ async fn continuous_blockchain(restart_height: Option) -> Result< let ready_state_service = state_service.ready_and().map_err(|e| eyre!(e)).await?; - /// SPANDOC: Add block to the state {?height} + /// SPANDOC: Add block directly to the state {?height} ready_state_service .call(zebra_state::Request::CommitFinalizedBlock( block.clone().into(), )) .await .map_err(|e| eyre!(e))?; + + // Skip verification for (fake) previous blocks + continue; } } + + // Stop verifying after the final checkpoint is reached if height > checkpoint_verifier.checkpoint_list.max_height() { break; }