use color_eyre::eyre::Result;
use zebra_chain::{
block,
parameters::Network::{self, *},
};
use zebra_test::prelude::*;
use crate::common::sync::{
create_cached_database_height, sync_until, MempoolBehavior, LARGE_CHECKPOINT_TEST_HEIGHT,
LARGE_CHECKPOINT_TIMEOUT, MEDIUM_CHECKPOINT_TEST_HEIGHT, STOP_AT_HEIGHT_REGEX,
STOP_ON_LOAD_TIMEOUT, SYNC_FINISHED_REGEX, TINY_CHECKPOINT_TEST_HEIGHT,
TINY_CHECKPOINT_TIMEOUT,
};
#[test]
#[ignore]
fn sync_large_checkpoints_empty() -> Result<()> {
let reuse_tempdir = sync_until(
LARGE_CHECKPOINT_TEST_HEIGHT,
&Mainnet,
STOP_AT_HEIGHT_REGEX,
LARGE_CHECKPOINT_TIMEOUT,
None,
MempoolBehavior::ShouldNotActivate,
true,
true,
)?;
sync_until(
(LARGE_CHECKPOINT_TEST_HEIGHT - 1).unwrap(),
&Mainnet,
"previous state height is greater than the stop height",
STOP_ON_LOAD_TIMEOUT,
reuse_tempdir,
MempoolBehavior::ShouldNotActivate,
true,
false,
)?;
Ok(())
}
#[test]
#[ignore]
fn sync_large_checkpoints_mempool_mainnet() -> Result<()> {
sync_until(
MEDIUM_CHECKPOINT_TEST_HEIGHT,
&Mainnet,
STOP_AT_HEIGHT_REGEX,
LARGE_CHECKPOINT_TIMEOUT,
None,
MempoolBehavior::ForceActivationAt(TINY_CHECKPOINT_TEST_HEIGHT),
true,
true,
)
.map(|_tempdir| ())
}
#[test]
#[ignore]
fn activate_mempool_mainnet() -> Result<()> {
sync_until(
block::Height(TINY_CHECKPOINT_TEST_HEIGHT.0 + 1),
&Mainnet,
STOP_AT_HEIGHT_REGEX,
TINY_CHECKPOINT_TIMEOUT,
None,
MempoolBehavior::ForceActivationAt(TINY_CHECKPOINT_TEST_HEIGHT),
true,
true,
)
.map(|_tempdir| ())
}
#[allow(clippy::print_stderr)]
#[tracing::instrument]
fn full_sync_test(network: Network, _timeout_argument_name: &str) -> Result<()> {
create_cached_database_height(
&network,
block::Height::MAX,
true,
SYNC_FINISHED_REGEX,
)
}
#[test]
#[ignore]
fn sync_full_mainnet() -> Result<()> {
full_sync_test(Mainnet, "SYNC_FULL_MAINNET_TIMEOUT_MINUTES")
}
#[test]
#[ignore]
fn sync_full_testnet() -> Result<()> {
full_sync_test(
Network::new_default_testnet(),
"SYNC_FULL_TESTNET_TIMEOUT_MINUTES",
)
}