make test helpers not test, add some docs
This commit is contained in:
parent
8b9e7c0ba5
commit
67601327af
@ -152,8 +152,9 @@ mod blockchain;
|
|||||||
mod types;
|
mod types;
|
||||||
mod factory;
|
mod factory;
|
||||||
|
|
||||||
#[cfg(test)]
|
//#[cfg(test)]
|
||||||
mod tests;
|
#[allow(missing_docs)]
|
||||||
|
pub mod tests;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
#[cfg(feature="json-tests")]
|
#[cfg(feature="json-tests")]
|
||||||
mod json_tests;
|
mod json_tests;
|
||||||
|
@ -36,6 +36,7 @@ pub enum ChainEra {
|
|||||||
DaoHardfork,
|
DaoHardfork,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Engine for testing nested calls.
|
||||||
pub struct TestEngine {
|
pub struct TestEngine {
|
||||||
engine: Arc<Engine>,
|
engine: Arc<Engine>,
|
||||||
max_depth: usize
|
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<Arc<Client>> {
|
pub fn generate_dummy_client(block_number: u32) -> GuardedTempResult<Arc<Client>> {
|
||||||
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<F>(get_spec: F, block_number: u32) -> GuardedTempResult<Arc<Client>> 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<Arc<Client>> {
|
pub fn generate_dummy_client_with_data(block_number: u32, txs_per_block: usize, tx_gas_prices: &[U256]) -> GuardedTempResult<Arc<Client>> {
|
||||||
@ -266,6 +272,7 @@ pub fn get_test_client_with_blocks(blocks: Vec<Bytes>) -> GuardedTempResult<Arc<
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// New db at path.
|
||||||
fn new_db(path: &str) -> Arc<Database> {
|
fn new_db(path: &str) -> Arc<Database> {
|
||||||
Arc::new(
|
Arc::new(
|
||||||
Database::open(&DatabaseConfig::with_columns(::db::NUM_COLUMNS), path)
|
Database::open(&DatabaseConfig::with_columns(::db::NUM_COLUMNS), path)
|
||||||
@ -273,6 +280,7 @@ fn new_db(path: &str) -> Arc<Database> {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Make blockchain.
|
||||||
pub fn generate_dummy_blockchain(block_number: u32) -> GuardedTempResult<BlockChain> {
|
pub fn generate_dummy_blockchain(block_number: u32) -> GuardedTempResult<BlockChain> {
|
||||||
let temp = RandomTempPath::new();
|
let temp = RandomTempPath::new();
|
||||||
let db = new_db(temp.as_str());
|
let db = new_db(temp.as_str());
|
||||||
@ -291,6 +299,7 @@ pub fn generate_dummy_blockchain(block_number: u32) -> GuardedTempResult<BlockCh
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Blockchain with extra data.
|
||||||
pub fn generate_dummy_blockchain_with_extra(block_number: u32) -> GuardedTempResult<BlockChain> {
|
pub fn generate_dummy_blockchain_with_extra(block_number: u32) -> GuardedTempResult<BlockChain> {
|
||||||
let temp = RandomTempPath::new();
|
let temp = RandomTempPath::new();
|
||||||
let db = new_db(temp.as_str());
|
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<BlockChain> {
|
pub fn generate_dummy_empty_blockchain() -> GuardedTempResult<BlockChain> {
|
||||||
let temp = RandomTempPath::new();
|
let temp = RandomTempPath::new();
|
||||||
let db = new_db(temp.as_str());
|
let db = new_db(temp.as_str());
|
||||||
@ -321,6 +331,7 @@ pub fn generate_dummy_empty_blockchain() -> GuardedTempResult<BlockChain> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Temporary journal db at random path.
|
||||||
pub fn get_temp_journal_db() -> GuardedTempResult<Box<JournalDB>> {
|
pub fn get_temp_journal_db() -> GuardedTempResult<Box<JournalDB>> {
|
||||||
let temp = RandomTempPath::new();
|
let temp = RandomTempPath::new();
|
||||||
let journal_db = get_temp_journal_db_in(temp.as_path());
|
let journal_db = get_temp_journal_db_in(temp.as_path());
|
||||||
@ -331,6 +342,7 @@ pub fn get_temp_journal_db() -> GuardedTempResult<Box<JournalDB>> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Temporary state.
|
||||||
pub fn get_temp_state() -> GuardedTempResult<State> {
|
pub fn get_temp_state() -> GuardedTempResult<State> {
|
||||||
let temp = RandomTempPath::new();
|
let temp = RandomTempPath::new();
|
||||||
let journal_db = get_temp_journal_db_in(temp.as_path());
|
let journal_db = get_temp_journal_db_in(temp.as_path());
|
||||||
@ -341,21 +353,25 @@ pub fn get_temp_state() -> GuardedTempResult<State> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Temporary journal db.
|
||||||
pub fn get_temp_journal_db_in(path: &Path) -> Box<JournalDB> {
|
pub fn get_temp_journal_db_in(path: &Path) -> Box<JournalDB> {
|
||||||
let db = new_db(path.to_str().expect("Only valid utf8 paths for tests."));
|
let db = new_db(path.to_str().expect("Only valid utf8 paths for tests."));
|
||||||
journaldb::new(db.clone(), journaldb::Algorithm::EarlyMerge, None)
|
journaldb::new(db.clone(), journaldb::Algorithm::EarlyMerge, None)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Temporary state db.
|
||||||
pub fn get_temp_state_in(path: &Path) -> State {
|
pub fn get_temp_state_in(path: &Path) -> State {
|
||||||
let journal_db = get_temp_journal_db_in(path);
|
let journal_db = get_temp_journal_db_in(path);
|
||||||
State::new(journal_db, U256::from(0), Default::default())
|
State::new(journal_db, U256::from(0), Default::default())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Sequence of good blocks.
|
||||||
pub fn get_good_dummy_block_seq(count: usize) -> Vec<Bytes> {
|
pub fn get_good_dummy_block_seq(count: usize) -> Vec<Bytes> {
|
||||||
let test_spec = get_test_spec();
|
let test_spec = get_test_spec();
|
||||||
get_good_dummy_block_fork_seq(1, count, &test_spec.genesis_header().hash())
|
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<Bytes> {
|
pub fn get_good_dummy_block_fork_seq(start_number: usize, count: usize, parent_hash: &H256) -> Vec<Bytes> {
|
||||||
let test_spec = get_test_spec();
|
let test_spec = get_test_spec();
|
||||||
let test_engine = &test_spec.engine;
|
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
|
r
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Good block.
|
||||||
pub fn get_good_dummy_block() -> Bytes {
|
pub fn get_good_dummy_block() -> Bytes {
|
||||||
let mut block_header = Header::new();
|
let mut block_header = Header::new();
|
||||||
let test_spec = get_test_spec();
|
let test_spec = get_test_spec();
|
||||||
@ -394,6 +411,7 @@ pub fn get_good_dummy_block() -> Bytes {
|
|||||||
create_test_block(&block_header)
|
create_test_block(&block_header)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Block with bad state.
|
||||||
pub fn get_bad_state_dummy_block() -> Bytes {
|
pub fn get_bad_state_dummy_block() -> Bytes {
|
||||||
let mut block_header = Header::new();
|
let mut block_header = Header::new();
|
||||||
let test_spec = get_test_spec();
|
let test_spec = get_test_spec();
|
||||||
|
@ -15,5 +15,7 @@
|
|||||||
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
pub mod helpers;
|
pub mod helpers;
|
||||||
|
#[cfg(test)]
|
||||||
mod client;
|
mod client;
|
||||||
|
#[cfg(test)]
|
||||||
mod rpc;
|
mod rpc;
|
||||||
|
Loading…
Reference in New Issue
Block a user