diff options
author | winsvega <winsvega@mail.ru> | 2015-03-26 08:12:25 +0800 |
---|---|---|
committer | winsvega <winsvega@mail.ru> | 2015-04-08 02:32:32 +0800 |
commit | b0c8babf0e76ffa1fc5cb21642f3ac2fc3d1cb55 (patch) | |
tree | 5a11ca01374392fb31d8efdf444f65ecaad683ba /vm.cpp | |
parent | 7ed2db70a7ebaaa661f4fabf73f19d17dd5f8f51 (diff) | |
download | dexon-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.cpp | 27 |
1 files changed, 6 insertions, 21 deletions
@@ -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); |