aboutsummaryrefslogtreecommitdiffstats
path: root/vm.cpp
diff options
context:
space:
mode:
authorwinsvega <winsvega@mail.ru>2015-03-26 08:12:25 +0800
committerwinsvega <winsvega@mail.ru>2015-04-08 02:32:32 +0800
commitb0c8babf0e76ffa1fc5cb21642f3ac2fc3d1cb55 (patch)
tree5a11ca01374392fb31d8efdf444f65ecaad683ba /vm.cpp
parent7ed2db70a7ebaaa661f4fabf73f19d17dd5f8f51 (diff)
downloaddexon-solidity-b0c8babf0e76ffa1fc5cb21642f3ac2fc3d1cb55.tar
dexon-solidity-b0c8babf0e76ffa1fc5cb21642f3ac2fc3d1cb55.tar.gz
dexon-solidity-b0c8babf0e76ffa1fc5cb21642f3ac2fc3d1cb55.tar.bz2
dexon-solidity-b0c8babf0e76ffa1fc5cb21642f3ac2fc3d1cb55.tar.lz
dexon-solidity-b0c8babf0e76ffa1fc5cb21642f3ac2fc3d1cb55.tar.xz
dexon-solidity-b0c8babf0e76ffa1fc5cb21642f3ac2fc3d1cb55.tar.zst
dexon-solidity-b0c8babf0e76ffa1fc5cb21642f3ac2fc3d1cb55.zip
Check State
Refactoring
Diffstat (limited to 'vm.cpp')
-rw-r--r--vm.cpp27
1 files changed, 6 insertions, 21 deletions
diff --git a/vm.cpp b/vm.cpp
index 4c1874cb..b6ebece1 100644
--- a/vm.cpp
+++ b/vm.cpp
@@ -380,7 +380,6 @@ void doVMTests(json_spirit::mValue& v, bool _fillin)
}
}
-
if (_fillin)
{
o["env"] = mValue(fev.exportEnv());
@@ -394,7 +393,7 @@ void doVMTests(json_spirit::mValue& v, bool _fillin)
State postState, expectState;
ImportTest::importState(o["post"].get_obj(), postState);
ImportTest::importState(o["expect"].get_obj(), expectState);
- ImportTest::compareStates(expectState, postState);
+ ImportTest::checkExpectedState(expectState, postState, Options::get().checkState ? WhenError::Throw : WhenError::DontThrow);
o.erase(o.find("expect"));
}
@@ -425,25 +424,11 @@ void doVMTests(json_spirit::mValue& v, bool _fillin)
BOOST_CHECK_EQUAL(toInt(o["gas"]), gas);
- auto& expectedAddrs = test.addresses;
- auto& resultAddrs = fev.addresses;
- for (auto&& expectedPair : expectedAddrs)
- {
- auto& expectedAddr = expectedPair.first;
- auto resultAddrIt = resultAddrs.find(expectedAddr);
- if (resultAddrIt == resultAddrs.end())
- BOOST_ERROR("Missing expected address " << expectedAddr);
- else
- {
- auto& expectedState = expectedPair.second;
- auto& resultState = resultAddrIt->second;
- BOOST_CHECK_MESSAGE(std::get<0>(expectedState) == std::get<0>(resultState), expectedAddr << ": incorrect balance " << std::get<0>(resultState) << ", expected " << std::get<0>(expectedState));
- BOOST_CHECK_MESSAGE(std::get<1>(expectedState) == std::get<1>(resultState), expectedAddr << ": incorrect txCount " << std::get<1>(resultState) << ", expected " << std::get<1>(expectedState));
- BOOST_CHECK_MESSAGE(std::get<3>(expectedState) == std::get<3>(resultState), expectedAddr << ": incorrect code");
-
- checkStorage(std::get<2>(expectedState), std::get<2>(resultState), expectedAddr);
- }
- }
+ State postState, expectState;
+ mObject mPostState = fev.exportState();
+ ImportTest::importState(mPostState, postState);
+ ImportTest::importState(o["post"].get_obj(), expectState);
+ ImportTest::checkExpectedState(expectState, postState);
checkAddresses<std::map<Address, std::tuple<u256, u256, std::map<u256, u256>, bytes> > >(test.addresses, fev.addresses);