Merge branch 'heavy_tests' of github.com:ethcore/parity
This commit is contained in:
commit
c172ea0bea
@ -25,7 +25,8 @@ clippy = "*" # Always newest, since we use nightly
|
|||||||
|
|
||||||
[features]
|
[features]
|
||||||
jit = ["evmjit"]
|
jit = ["evmjit"]
|
||||||
evm_debug = []
|
test-heavy = []
|
||||||
|
evm-debug = []
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "client"
|
name = "client"
|
||||||
|
3
hook.sh
Executable file
3
hook.sh
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
echo "#!/bin/sh\ncargo test" >> ./.git/hooks/pre-push
|
||||||
|
chmod +x ./.git/hooks/pre-push
|
@ -7,19 +7,19 @@ use super::instructions::Instruction;
|
|||||||
use std::marker::Copy;
|
use std::marker::Copy;
|
||||||
use evm::{MessageCallResult, ContractCreateResult};
|
use evm::{MessageCallResult, ContractCreateResult};
|
||||||
|
|
||||||
#[cfg(not(feature = "evm_debug"))]
|
#[cfg(not(feature = "evm-debug"))]
|
||||||
macro_rules! evm_debug {
|
macro_rules! evm_debug {
|
||||||
($x: expr) => {}
|
($x: expr) => {}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "evm_debug")]
|
#[cfg(feature = "evm-debug")]
|
||||||
macro_rules! evm_debug {
|
macro_rules! evm_debug {
|
||||||
($x: expr) => {
|
($x: expr) => {
|
||||||
$x
|
$x
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "evm_debug")]
|
#[cfg(feature = "evm-debug")]
|
||||||
fn color(instruction: Instruction, name: &'static str) -> String {
|
fn color(instruction: Instruction, name: &'static str) -> String {
|
||||||
let c = instruction as usize % 6;
|
let c = instruction as usize % 6;
|
||||||
let colors = [31, 34, 33, 32, 35, 36];
|
let colors = [31, 34, 33, 32, 35, 36];
|
||||||
|
@ -11,7 +11,7 @@ pub struct NullEngine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl NullEngine {
|
impl NullEngine {
|
||||||
/// TODO [Tomusdrw] Please document me
|
/// Returns new instance of NullEngine with default VM Factory
|
||||||
pub fn new_boxed(spec: Spec) -> Box<Engine> {
|
pub fn new_boxed(spec: Spec) -> Box<Engine> {
|
||||||
Box::new(NullEngine{
|
Box::new(NullEngine{
|
||||||
spec: spec,
|
spec: spec,
|
||||||
|
@ -271,11 +271,10 @@ fn do_json_test_for(vm: &VMType, json_data: &[u8]) -> Vec<String> {
|
|||||||
declare_test!{ExecutiveTests_vmArithmeticTest, "VMTests/vmArithmeticTest"}
|
declare_test!{ExecutiveTests_vmArithmeticTest, "VMTests/vmArithmeticTest"}
|
||||||
declare_test!{ExecutiveTests_vmBitwiseLogicOperationTest, "VMTests/vmBitwiseLogicOperationTest"}
|
declare_test!{ExecutiveTests_vmBitwiseLogicOperationTest, "VMTests/vmBitwiseLogicOperationTest"}
|
||||||
// this one crashes with some vm internal error. Separately they pass.
|
// this one crashes with some vm internal error. Separately they pass.
|
||||||
declare_test!{ExecutiveTests_vmBlockInfoTest, "VMTests/vmBlockInfoTest"}
|
declare_test!{ignore => ExecutiveTests_vmBlockInfoTest, "VMTests/vmBlockInfoTest"}
|
||||||
declare_test!{ExecutiveTests_vmEnvironmentalInfoTest, "VMTests/vmEnvironmentalInfoTest"}
|
declare_test!{ExecutiveTests_vmEnvironmentalInfoTest, "VMTests/vmEnvironmentalInfoTest"}
|
||||||
declare_test!{ExecutiveTests_vmIOandFlowOperationsTest, "VMTests/vmIOandFlowOperationsTest"}
|
declare_test!{ExecutiveTests_vmIOandFlowOperationsTest, "VMTests/vmIOandFlowOperationsTest"}
|
||||||
// this one take way too long.
|
declare_test!{heavy => ExecutiveTests_vmInputLimits, "VMTests/vmInputLimits"}
|
||||||
declare_test_ignore!{ExecutiveTests_vmInputLimits, "VMTests/vmInputLimits"}
|
|
||||||
declare_test!{ExecutiveTests_vmLogTest, "VMTests/vmLogTest"}
|
declare_test!{ExecutiveTests_vmLogTest, "VMTests/vmLogTest"}
|
||||||
declare_test!{ExecutiveTests_vmPerformanceTest, "VMTests/vmPerformanceTest"}
|
declare_test!{ExecutiveTests_vmPerformanceTest, "VMTests/vmPerformanceTest"}
|
||||||
declare_test!{ExecutiveTests_vmPushDupSwapTest, "VMTests/vmPushDupSwapTest"}
|
declare_test!{ExecutiveTests_vmPushDupSwapTest, "VMTests/vmPushDupSwapTest"}
|
||||||
|
@ -73,20 +73,20 @@ fn do_json_test(json_data: &[u8]) -> Vec<String> {
|
|||||||
|
|
||||||
declare_test!{StateTests_stBlockHashTest, "StateTests/stBlockHashTest"}
|
declare_test!{StateTests_stBlockHashTest, "StateTests/stBlockHashTest"}
|
||||||
declare_test!{StateTests_stCallCodes, "StateTests/stCallCodes"}
|
declare_test!{StateTests_stCallCodes, "StateTests/stCallCodes"}
|
||||||
declare_test_ignore!{StateTests_stCallCreateCallCodeTest, "StateTests/stCallCreateCallCodeTest"} //<< Out of stack
|
declare_test!{ignore => StateTests_stCallCreateCallCodeTest, "StateTests/stCallCreateCallCodeTest"} //<< Out of stack
|
||||||
declare_test!{StateTests_stDelegatecallTest, "StateTests/stDelegatecallTest"} //<< FAIL - gas too high
|
declare_test!{StateTests_stDelegatecallTest, "StateTests/stDelegatecallTest"}
|
||||||
declare_test!{StateTests_stExample, "StateTests/stExample"}
|
declare_test!{StateTests_stExample, "StateTests/stExample"}
|
||||||
declare_test!{StateTests_stInitCodeTest, "StateTests/stInitCodeTest"}
|
declare_test!{StateTests_stInitCodeTest, "StateTests/stInitCodeTest"}
|
||||||
declare_test!{StateTests_stLogTests, "StateTests/stLogTests"}
|
declare_test!{StateTests_stLogTests, "StateTests/stLogTests"}
|
||||||
declare_test!{StateTests_stMemoryStressTest, "StateTests/stMemoryStressTest"}
|
declare_test!{heavy => StateTests_stMemoryStressTest, "StateTests/stMemoryStressTest"}
|
||||||
declare_test!{StateTests_stMemoryTest, "StateTests/stMemoryTest"}
|
declare_test!{heavy => StateTests_stMemoryTest, "StateTests/stMemoryTest"}
|
||||||
declare_test!{StateTests_stPreCompiledContracts, "StateTests/stPreCompiledContracts"}
|
declare_test!{StateTests_stPreCompiledContracts, "StateTests/stPreCompiledContracts"}
|
||||||
declare_test_ignore!{StateTests_stQuadraticComplexityTest, "StateTests/stQuadraticComplexityTest"} //<< Too long
|
declare_test!{heavy => StateTests_stQuadraticComplexityTest, "StateTests/stQuadraticComplexityTest"} //<< Too long
|
||||||
declare_test_ignore!{StateTests_stRecursiveCreate, "StateTests/stRecursiveCreate"} //<< Out of stack
|
declare_test!{ignore => StateTests_stRecursiveCreate, "StateTests/stRecursiveCreate"} //<< Out of stack
|
||||||
declare_test!{StateTests_stRefundTest, "StateTests/stRefundTest"}
|
declare_test!{StateTests_stRefundTest, "StateTests/stRefundTest"}
|
||||||
declare_test!{StateTests_stSolidityTest, "StateTests/stSolidityTest"}
|
declare_test!{StateTests_stSolidityTest, "StateTests/stSolidityTest"}
|
||||||
declare_test_ignore!{StateTests_stSpecialTest, "StateTests/stSpecialTest"} //<< Signal 11
|
declare_test!{ignore => StateTests_stSpecialTest, "StateTests/stSpecialTest"} //<< Out of Stack
|
||||||
declare_test_ignore!{StateTests_stSystemOperationsTest, "StateTests/stSystemOperationsTest"} //<< Signal 11
|
declare_test!{ignore => StateTests_stSystemOperationsTest, "StateTests/stSystemOperationsTest"} //<< Out of stack
|
||||||
declare_test!{StateTests_stTransactionTest, "StateTests/stTransactionTest"}
|
declare_test!{StateTests_stTransactionTest, "StateTests/stTransactionTest"}
|
||||||
declare_test!{StateTests_stTransitionTest, "StateTests/stTransitionTest"}
|
declare_test!{StateTests_stTransitionTest, "StateTests/stTransitionTest"}
|
||||||
declare_test!{StateTests_stWalletTest, "StateTests/stWalletTest"}
|
declare_test!{StateTests_stWalletTest, "StateTests/stWalletTest"}
|
||||||
|
@ -1,24 +1,34 @@
|
|||||||
pub use common::*;
|
pub use common::*;
|
||||||
|
|
||||||
|
macro_rules! test {
|
||||||
|
($name: expr) => {
|
||||||
|
assert!(do_json_test(include_bytes!(concat!("../../res/ethereum/tests/", $name, ".json"))).is_empty());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! declare_test {
|
macro_rules! declare_test {
|
||||||
($id: ident, $name: expr) => {
|
(ignore => $id: ident, $name: expr) => {
|
||||||
#[test]
|
|
||||||
#[allow(non_snake_case)]
|
|
||||||
fn $id() {
|
|
||||||
assert!(do_json_test(include_bytes!(concat!("../../res/ethereum/tests/", $name, ".json"))).is_empty());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! declare_test_ignore {
|
|
||||||
($id: ident, $name: expr) => {
|
|
||||||
#[test]
|
|
||||||
#[ignore]
|
#[ignore]
|
||||||
|
#[test]
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
fn $id() {
|
fn $id() {
|
||||||
assert!(do_json_test(include_bytes!(concat!("../../res/ethereum/tests/", $name, ".json"))).is_empty());
|
test!($name);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
(heavy => $id: ident, $name: expr) => {
|
||||||
|
#[cfg(feature = "test-heavy")]
|
||||||
|
#[test]
|
||||||
|
#[allow(non_snake_case)]
|
||||||
|
fn $id() {
|
||||||
|
test!($name);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
($id: ident, $name: expr) => {
|
||||||
|
#[test]
|
||||||
|
#[allow(non_snake_case)]
|
||||||
|
fn $id() {
|
||||||
|
test!($name);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -65,14 +65,14 @@ declare_test!{TransactionTests/ttTransactionTest}
|
|||||||
declare_test!{TransactionTests/tt10mbDataField}
|
declare_test!{TransactionTests/tt10mbDataField}
|
||||||
declare_test!{TransactionTests/ttWrongRLPTransaction}
|
declare_test!{TransactionTests/ttWrongRLPTransaction}
|
||||||
declare_test!{TransactionTests/Homestead/ttTransactionTest}
|
declare_test!{TransactionTests/Homestead/ttTransactionTest}
|
||||||
declare_test!{TransactionTests/Homestead/tt10mbDataField}
|
declare_test!{heavy => TransactionTests/Homestead/tt10mbDataField}
|
||||||
declare_test!{TransactionTests/Homestead/ttWrongRLPTransaction}
|
declare_test!{TransactionTests/Homestead/ttWrongRLPTransaction}
|
||||||
declare_test!{TransactionTests/RandomTests/tr201506052141PYTHON}*/
|
declare_test!{TransactionTests/RandomTests/tr201506052141PYTHON}*/
|
||||||
|
|
||||||
declare_test!{TransactionTests_ttTransactionTest, "TransactionTests/ttTransactionTest"}
|
declare_test!{TransactionTests_ttTransactionTest, "TransactionTests/ttTransactionTest"}
|
||||||
declare_test_ignore!{TransactionTests_tt10mbDataField, "TransactionTests/tt10mbDataField"}
|
declare_test!{heavy => TransactionTests_tt10mbDataField, "TransactionTests/tt10mbDataField"}
|
||||||
declare_test!{TransactionTests_ttWrongRLPTransaction, "TransactionTests/ttWrongRLPTransaction"}
|
declare_test!{TransactionTests_ttWrongRLPTransaction, "TransactionTests/ttWrongRLPTransaction"}
|
||||||
declare_test!{TransactionTests_Homestead_ttTransactionTest, "TransactionTests/Homestead/ttTransactionTest"}
|
declare_test!{TransactionTests_Homestead_ttTransactionTest, "TransactionTests/Homestead/ttTransactionTest"}
|
||||||
declare_test_ignore!{TransactionTests_Homestead_tt10mbDataField, "TransactionTests/Homestead/tt10mbDataField"}
|
declare_test!{heavy => TransactionTests_Homestead_tt10mbDataField, "TransactionTests/Homestead/tt10mbDataField"}
|
||||||
declare_test!{TransactionTests_Homestead_ttWrongRLPTransaction, "TransactionTests/Homestead/ttWrongRLPTransaction"}
|
declare_test!{TransactionTests_Homestead_ttWrongRLPTransaction, "TransactionTests/Homestead/ttWrongRLPTransaction"}
|
||||||
declare_test!{TransactionTests_RandomTests_tr201506052141PYTHON, "TransactionTests/RandomTests/tr201506052141PYTHON"}
|
declare_test!{TransactionTests_RandomTests_tr201506052141PYTHON, "TransactionTests/RandomTests/tr201506052141PYTHON"}
|
||||||
|
Loading…
Reference in New Issue
Block a user