diff --git a/ethcore/src/lib.rs b/ethcore/src/lib.rs index 5344381f0..9231f4208 100644 --- a/ethcore/src/lib.rs +++ b/ethcore/src/lib.rs @@ -152,8 +152,9 @@ mod blockchain; mod types; mod factory; -#[cfg(test)] -mod tests; +//#[cfg(test)] +#[allow(missing_docs)] +pub mod tests; #[cfg(test)] #[cfg(feature="json-tests")] mod json_tests; diff --git a/ethcore/src/tests/helpers.rs b/ethcore/src/tests/helpers.rs index c1f99f434..3e9839f31 100644 --- a/ethcore/src/tests/helpers.rs +++ b/ethcore/src/tests/helpers.rs @@ -36,6 +36,7 @@ pub enum ChainEra { DaoHardfork, } +/// Engine for testing nested calls. pub struct TestEngine { engine: Arc, max_depth: usize @@ -124,7 +125,12 @@ pub fn create_test_block_with_data(header: &Header, transactions: &[SignedTransa } pub fn generate_dummy_client(block_number: u32) -> GuardedTempResult> { - generate_dummy_client_with_spec_and_data(Spec::new_test, block_number, 0, &[]) + generate_dummy_client_with_spec(Spec::new_test, block_number) +} + +pub fn generate_dummy_client_with_spec(get_spec: F, block_number: u32) -> GuardedTempResult> where + F: Fn()->Spec { + generate_dummy_client_with_spec_and_data(get_spec, block_number, 0, &[]) } pub fn generate_dummy_client_with_data(block_number: u32, txs_per_block: usize, tx_gas_prices: &[U256]) -> GuardedTempResult> { @@ -266,6 +272,7 @@ pub fn get_test_client_with_blocks(blocks: Vec) -> GuardedTempResult Arc { Arc::new( Database::open(&DatabaseConfig::with_columns(::db::NUM_COLUMNS), path) @@ -273,6 +280,7 @@ fn new_db(path: &str) -> Arc { ) } +/// Make blockchain. pub fn generate_dummy_blockchain(block_number: u32) -> GuardedTempResult { let temp = RandomTempPath::new(); let db = new_db(temp.as_str()); @@ -291,6 +299,7 @@ pub fn generate_dummy_blockchain(block_number: u32) -> GuardedTempResult GuardedTempResult { let temp = RandomTempPath::new(); let db = new_db(temp.as_str()); @@ -310,6 +319,7 @@ pub fn generate_dummy_blockchain_with_extra(block_number: u32) -> GuardedTempRes } } +/// Make blochchain. pub fn generate_dummy_empty_blockchain() -> GuardedTempResult { let temp = RandomTempPath::new(); let db = new_db(temp.as_str()); @@ -321,6 +331,7 @@ pub fn generate_dummy_empty_blockchain() -> GuardedTempResult { } } +/// Temporary journal db at random path. pub fn get_temp_journal_db() -> GuardedTempResult> { let temp = RandomTempPath::new(); let journal_db = get_temp_journal_db_in(temp.as_path()); @@ -331,6 +342,7 @@ pub fn get_temp_journal_db() -> GuardedTempResult> { } } +/// Temporary state. pub fn get_temp_state() -> GuardedTempResult { let temp = RandomTempPath::new(); let journal_db = get_temp_journal_db_in(temp.as_path()); @@ -341,21 +353,25 @@ pub fn get_temp_state() -> GuardedTempResult { } } +/// Temporary journal db. pub fn get_temp_journal_db_in(path: &Path) -> Box { let db = new_db(path.to_str().expect("Only valid utf8 paths for tests.")); journaldb::new(db.clone(), journaldb::Algorithm::EarlyMerge, None) } +/// Temporary state db. pub fn get_temp_state_in(path: &Path) -> State { let journal_db = get_temp_journal_db_in(path); State::new(journal_db, U256::from(0), Default::default()) } +/// Sequence of good blocks. pub fn get_good_dummy_block_seq(count: usize) -> Vec { let test_spec = get_test_spec(); get_good_dummy_block_fork_seq(1, count, &test_spec.genesis_header().hash()) } +/// Forked sequence of good blocks. pub fn get_good_dummy_block_fork_seq(start_number: usize, count: usize, parent_hash: &H256) -> Vec { let test_spec = get_test_spec(); let test_engine = &test_spec.engine; @@ -380,6 +396,7 @@ pub fn get_good_dummy_block_fork_seq(start_number: usize, count: usize, parent_h r } +/// Good block. pub fn get_good_dummy_block() -> Bytes { let mut block_header = Header::new(); let test_spec = get_test_spec(); @@ -394,6 +411,7 @@ pub fn get_good_dummy_block() -> Bytes { create_test_block(&block_header) } +/// Block with bad state. pub fn get_bad_state_dummy_block() -> Bytes { let mut block_header = Header::new(); let test_spec = get_test_spec(); diff --git a/ethcore/src/tests/mod.rs b/ethcore/src/tests/mod.rs index db36a3762..73c5777a4 100644 --- a/ethcore/src/tests/mod.rs +++ b/ethcore/src/tests/mod.rs @@ -15,5 +15,7 @@ // along with Parity. If not, see . pub mod helpers; +#[cfg(test)] mod client; +#[cfg(test)] mod rpc;