diff --git a/ethcore/src/ethereum/ethash.rs b/ethcore/src/ethereum/ethash.rs index f49725ab3..7d99a456a 100644 --- a/ethcore/src/ethereum/ethash.rs +++ b/ethcore/src/ethereum/ethash.rs @@ -262,10 +262,7 @@ mod tests { use common::*; use block::*; - use spec::*; use engine::*; - use evm::Schedule; - use evm::Factory; use tests::helpers::*; use super::*; use super::super::new_morden; @@ -319,7 +316,7 @@ mod tests { #[test] fn can_return_factory() { let engine = Ethash::new_test(new_morden()); - let factory = engine.vm_factory(); + engine.vm_factory(); } #[test] @@ -359,7 +356,7 @@ mod tests { match verify_result { Err(Error::Block(BlockError::InvalidSealArity(_))) => {}, - _ => { panic!("should be block difficulty error"); } + _ => { panic!("should be block seal mismatch error"); } } } @@ -377,6 +374,22 @@ mod tests { } } + #[test] + fn can_do_proof_of_work_verification_fail() { + let engine = Ethash::new_test(new_morden()); + let mut header: Header = Header::default(); + header.set_seal(vec![rlp::encode(&H256::zero()).to_vec(), rlp::encode(&H64::zero()).to_vec()]); + header.set_difficulty(U256::from_str("ffffffffffffffffffffffffffffffffffffffffffffaaaaaaaaaaaaaaaaaaaa").unwrap()); + + let verify_result = engine.verify_block_basic(&header, None); + + match verify_result { + Err(Error::Block(BlockError::InvalidProofOfWork(_))) => {}, + _ => { panic!("should be invalid proof of work error"); } + } + + } + // TODO: difficulty test } diff --git a/ethcore/src/evm/factory.rs b/ethcore/src/evm/factory.rs index f1be0e427..4a9bd38ba 100644 --- a/ethcore/src/evm/factory.rs +++ b/ethcore/src/evm/factory.rs @@ -159,11 +159,13 @@ macro_rules! evm_test_ignore( #[test] #[ignore] #[cfg(feature = "jit")] + #[cfg(feature = "ignored-tests")] fn $name_jit() { $name_test(Factory::new(VMType::Jit)); } #[test] #[ignore] + #[cfg(feature = "ignored-tests")] fn $name_int() { $name_test(Factory::new(VMType::Interpreter)); } diff --git a/ethcore/src/executive.rs b/ethcore/src/executive.rs index 2d6039953..812dc3acd 100644 --- a/ethcore/src/executive.rs +++ b/ethcore/src/executive.rs @@ -360,6 +360,7 @@ impl<'a> Executive<'a> { } #[cfg(test)] +#[allow(dead_code)] mod tests { use super::*; use common::*; @@ -599,6 +600,7 @@ mod tests { } // test is incorrect, mk + // TODO: fix (preferred) or remove evm_test_ignore!{test_aba_calls: test_aba_calls_jit, test_aba_calls_int} fn test_aba_calls(factory: Factory) { // 60 00 - push 0 @@ -659,6 +661,7 @@ mod tests { } // test is incorrect, mk + // TODO: fix (preferred) or remove evm_test_ignore!{test_recursive_bomb1: test_recursive_bomb1_jit, test_recursive_bomb1_int} fn test_recursive_bomb1(factory: Factory) { // 60 01 - push 1 @@ -704,6 +707,7 @@ mod tests { } // test is incorrect, mk + // TODO: fix (preferred) or remove evm_test_ignore!{test_transact_simple: test_transact_simple_jit, test_transact_simple_int} fn test_transact_simple(factory: Factory) { let keypair = KeyPair::create().unwrap(); @@ -902,5 +906,4 @@ mod tests { } } } - } diff --git a/ethcore/src/json_tests/mod.rs b/ethcore/src/json_tests/mod.rs index 1cae0fa1d..df67de76d 100644 --- a/ethcore/src/json_tests/mod.rs +++ b/ethcore/src/json_tests/mod.rs @@ -20,7 +20,6 @@ mod test_common; mod transaction; mod executive; mod state; -mod client; mod chain; mod homestead_state; mod homestead_chain; diff --git a/ethcore/src/json_tests/client.rs b/ethcore/src/tests/client.rs similarity index 99% rename from ethcore/src/json_tests/client.rs rename to ethcore/src/tests/client.rs index 2d3166c74..697647187 100644 --- a/ethcore/src/json_tests/client.rs +++ b/ethcore/src/tests/client.rs @@ -15,8 +15,8 @@ // along with Parity. If not, see . use client::{BlockChainClient,Client}; -use super::test_common::*; use tests::helpers::*; +use common::*; #[test] fn created() { diff --git a/ethcore/src/tests/helpers.rs b/ethcore/src/tests/helpers.rs index 9ec36fa93..f5815b718 100644 --- a/ethcore/src/tests/helpers.rs +++ b/ethcore/src/tests/helpers.rs @@ -14,7 +14,6 @@ // You should have received a copy of the GNU General Public License // along with Parity. If not, see . -#[cfg(feature = "json-tests")] use client::{BlockChainClient, Client}; use std::env; use common::*; @@ -134,7 +133,6 @@ pub fn create_test_block_with_data(header: &Header, transactions: &[&SignedTrans rlp.out() } -#[cfg(feature = "json-tests")] pub fn generate_dummy_client(block_number: u32) -> GuardedTempResult> { let dir = RandomTempPath::new(); @@ -174,7 +172,6 @@ pub fn generate_dummy_client(block_number: u32) -> GuardedTempResult } } -#[cfg(feature = "json-tests")] pub fn get_test_client_with_blocks(blocks: Vec) -> GuardedTempResult> { let dir = RandomTempPath::new(); let client = Client::new(get_test_spec(), dir.as_path(), IoChannel::disconnected()).unwrap(); @@ -271,7 +268,6 @@ pub fn get_good_dummy_block() -> Bytes { create_test_block(&block_header) } -#[cfg(feature = "json-tests")] 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 a4e13730a..28c1b3b5b 100644 --- a/ethcore/src/tests/mod.rs +++ b/ethcore/src/tests/mod.rs @@ -15,3 +15,4 @@ // along with Parity. If not, see . pub mod helpers; +mod client; \ No newline at end of file