From 7c9ba3cfc855dc0845476fe923dac4e47cb5c06a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BF=97=E5=AE=87?= Date: Sat, 23 Mar 2024 18:28:49 +0800 Subject: [PATCH] chore(electrum,testenv): move `test_reorg_is_detected_in_electrsd` --- crates/electrum/tests/test_electrum.rs | 33 --------------------- crates/testenv/src/lib.rs | 41 ++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 33 deletions(-) diff --git a/crates/electrum/tests/test_electrum.rs b/crates/electrum/tests/test_electrum.rs index 6d1c1896..0dc80ac6 100644 --- a/crates/electrum/tests/test_electrum.rs +++ b/crates/electrum/tests/test_electrum.rs @@ -86,39 +86,6 @@ fn scan_detects_confirmed_tx() -> Result<()> { Ok(()) } -#[test] -fn test_reorg_is_detected_in_electrsd() -> Result<()> { - let env = TestEnv::new()?; - - // Mine some blocks. - env.mine_blocks(101, None)?; - env.wait_until_electrum_sees_block()?; - let height = env.bitcoind.client.get_block_count()?; - let blocks = (0..=height) - .map(|i| env.bitcoind.client.get_block_hash(i)) - .collect::, _>>()?; - - // Perform reorg on six blocks. - env.reorg(6)?; - env.wait_until_electrum_sees_block()?; - let reorged_height = env.bitcoind.client.get_block_count()?; - let reorged_blocks = (0..=height) - .map(|i| env.bitcoind.client.get_block_hash(i)) - .collect::, _>>()?; - - assert_eq!(height, reorged_height); - - // Block hashes should not be equal on the six reorged blocks. - for (i, (block, reorged_block)) in blocks.iter().zip(reorged_blocks.iter()).enumerate() { - match i <= height as usize - 6 { - true => assert_eq!(block, reorged_block), - false => assert_ne!(block, reorged_block), - } - } - - Ok(()) -} - /// Ensure that confirmed txs that are reorged become unconfirmed. /// /// 1. Mine 101 blocks. diff --git a/crates/testenv/src/lib.rs b/crates/testenv/src/lib.rs index fa940cd6..b836387c 100644 --- a/crates/testenv/src/lib.rs +++ b/crates/testenv/src/lib.rs @@ -235,3 +235,44 @@ impl TestEnv { Ok(txid) } } + +#[cfg(test)] +mod test { + use crate::TestEnv; + use anyhow::Result; + use bitcoincore_rpc::RpcApi; + + /// This checks that reorgs initiated by `bitcoind` is detected by our `electrsd` instance. + #[test] + fn test_reorg_is_detected_in_electrsd() -> Result<()> { + let env = TestEnv::new()?; + + // Mine some blocks. + env.mine_blocks(101, None)?; + env.wait_until_electrum_sees_block()?; + let height = env.bitcoind.client.get_block_count()?; + let blocks = (0..=height) + .map(|i| env.bitcoind.client.get_block_hash(i)) + .collect::, _>>()?; + + // Perform reorg on six blocks. + env.reorg(6)?; + env.wait_until_electrum_sees_block()?; + let reorged_height = env.bitcoind.client.get_block_count()?; + let reorged_blocks = (0..=height) + .map(|i| env.bitcoind.client.get_block_hash(i)) + .collect::, _>>()?; + + assert_eq!(height, reorged_height); + + // Block hashes should not be equal on the six reorged blocks. + for (i, (block, reorged_block)) in blocks.iter().zip(reorged_blocks.iter()).enumerate() { + match i <= height as usize - 6 { + true => assert_eq!(block, reorged_block), + false => assert_ne!(block, reorged_block), + } + } + + Ok(()) + } +}