aboutsummaryrefslogtreecommitdiffstats
path: root/ClientBase.cpp
diff options
context:
space:
mode:
authorPaweł Bylica <chfast@gmail.com>2015-04-03 18:23:58 +0800
committerPaweł Bylica <chfast@gmail.com>2015-04-03 18:23:58 +0800
commitfc3ea6aa6cc4e7eb740ec0fb1c329b1fca1d372c (patch)
tree4462ff4bc82edef5a71db16c518c026dae7de4fa /ClientBase.cpp
parent7fb437d0da0819c034b659f7a8ce4f35dd2a8b69 (diff)
parent2ad1be6eee882a20ad78e9ff1e6d9b113b7ffcc8 (diff)
downloaddexon-solidity-fc3ea6aa6cc4e7eb740ec0fb1c329b1fca1d372c.tar
dexon-solidity-fc3ea6aa6cc4e7eb740ec0fb1c329b1fca1d372c.tar.gz
dexon-solidity-fc3ea6aa6cc4e7eb740ec0fb1c329b1fca1d372c.tar.bz2
dexon-solidity-fc3ea6aa6cc4e7eb740ec0fb1c329b1fca1d372c.tar.lz
dexon-solidity-fc3ea6aa6cc4e7eb740ec0fb1c329b1fca1d372c.tar.xz
dexon-solidity-fc3ea6aa6cc4e7eb740ec0fb1c329b1fca1d372c.tar.zst
dexon-solidity-fc3ea6aa6cc4e7eb740ec0fb1c329b1fca1d372c.zip
Merge remote-tracking branch 'upstream/develop' into evmjit
Diffstat (limited to 'ClientBase.cpp')
-rw-r--r--ClientBase.cpp37
1 files changed, 24 insertions, 13 deletions
diff --git a/ClientBase.cpp b/ClientBase.cpp
index 2197ac83..304182cf 100644
--- a/ClientBase.cpp
+++ b/ClientBase.cpp
@@ -34,34 +34,45 @@ BOOST_AUTO_TEST_CASE(blocks)
{
enumerateClients([](Json::Value const& _json, dev::eth::ClientBase& _client) -> void
{
- for (string const& name: _json["postState"].getMemberNames())
+ auto compareState = [&_client](Json::Value const& _o, string const& _name, BlockNumber _blockNumber) -> void
{
- Json::Value o = _json["postState"][name];
- Address address(name);
+ Address address(_name);
// balanceAt
- u256 expectedBalance = u256(o["balance"].asString());
- u256 balance = _client.balanceAt(address);
+ u256 expectedBalance = u256(_o["balance"].asString());
+ u256 balance = _client.balanceAt(address, _blockNumber);
ETH_CHECK_EQUAL(expectedBalance, balance);
// countAt
- u256 expectedCount = u256(o["nonce"].asString());
- u256 count = _client.countAt(address);
+ u256 expectedCount = u256(_o["nonce"].asString());
+ u256 count = _client.countAt(address, _blockNumber);
ETH_CHECK_EQUAL(expectedCount, count);
// stateAt
- for (string const& pos: o["storage"].getMemberNames())
+ for (string const& pos: _o["storage"].getMemberNames())
{
- u256 expectedState = u256(o["storage"][pos].asString());
- u256 state = _client.stateAt(address, u256(pos));
+ u256 expectedState = u256(_o["storage"][pos].asString());
+ u256 state = _client.stateAt(address, u256(pos), _blockNumber);
ETH_CHECK_EQUAL(expectedState, state);
}
// codeAt
- bytes expectedCode = fromHex(o["code"].asString());
- bytes code = _client.codeAt(address);
+ bytes expectedCode = fromHex(_o["code"].asString());
+ bytes code = _client.codeAt(address, _blockNumber);
ETH_CHECK_EQUAL_COLLECTIONS(expectedCode.begin(), expectedCode.end(),
- code.begin(), code.end());
+ code.begin(), code.end());
+ };
+
+ for (string const& name: _json["postState"].getMemberNames())
+ {
+ Json::Value o = _json["postState"][name];
+ compareState(o, name, PendingBlock);
+ }
+
+ for (string const& name: _json["pre"].getMemberNames())
+ {
+ Json::Value o = _json["pre"][name];
+ compareState(o, name, 0);
}
// number