49 lines
1.8 KiB
Rust
49 lines
1.8 KiB
Rust
//! Fixed test vectors for state contextual validation checks.
|
|
|
|
use zebra_chain::serialization::ZcashDeserializeInto;
|
|
|
|
use super::super::*;
|
|
|
|
#[test]
|
|
fn test_orphan_consensus_check() {
|
|
let _init_guard = zebra_test::init();
|
|
|
|
let height = zebra_test::vectors::BLOCK_MAINNET_347499_BYTES
|
|
.zcash_deserialize_into::<Arc<Block>>()
|
|
.unwrap()
|
|
.coinbase_height()
|
|
.unwrap();
|
|
|
|
block_is_not_orphaned(block::Height(0), height).expect("tip is lower so it should be fine");
|
|
block_is_not_orphaned(block::Height(347498), height)
|
|
.expect("tip is lower so it should be fine");
|
|
block_is_not_orphaned(block::Height(347499), height)
|
|
.expect_err("tip is equal so it should error");
|
|
block_is_not_orphaned(block::Height(500000), height)
|
|
.expect_err("tip is higher so it should error");
|
|
}
|
|
|
|
#[test]
|
|
fn test_sequential_height_check() {
|
|
let _init_guard = zebra_test::init();
|
|
|
|
let height = zebra_test::vectors::BLOCK_MAINNET_347499_BYTES
|
|
.zcash_deserialize_into::<Arc<Block>>()
|
|
.unwrap()
|
|
.coinbase_height()
|
|
.unwrap();
|
|
|
|
height_one_more_than_parent_height(block::Height(0), height)
|
|
.expect_err("block is much lower, should panic");
|
|
height_one_more_than_parent_height(block::Height(347497), height)
|
|
.expect_err("parent height is 2 less, should panic");
|
|
height_one_more_than_parent_height(block::Height(347498), height)
|
|
.expect("parent height is 1 less, should be good");
|
|
height_one_more_than_parent_height(block::Height(347499), height)
|
|
.expect_err("parent height is equal, should panic");
|
|
height_one_more_than_parent_height(block::Height(347500), height)
|
|
.expect_err("parent height is way more, should panic");
|
|
height_one_more_than_parent_height(block::Height(500000), height)
|
|
.expect_err("parent height is way more, should panic");
|
|
}
|