diff options
-rw-r--r-- | hexPrefix.cpp | 2 | ||||
-rw-r--r-- | main.cpp | 34 | ||||
-rw-r--r-- | rlp.cpp | 2 | ||||
-rw-r--r-- | trie.cpp | 11 | ||||
-rw-r--r-- | vm.cpp | 4 |
5 files changed, 46 insertions, 7 deletions
diff --git a/hexPrefix.cpp b/hexPrefix.cpp index 565ef50c..871e86f0 100644 --- a/hexPrefix.cpp +++ b/hexPrefix.cpp @@ -34,7 +34,7 @@ BOOST_AUTO_TEST_CASE(hexPrefix_test) { cnote << "Testing Hex-Prefix-Encode..."; js::mValue v; - string s = asString(contents("../../tests/hexencodetest.json")); + string s = asString(contents("../../../tests/hexencodetest.json")); BOOST_REQUIRE_MESSAGE(s.length() > 0, "Content from 'hexencodetest.json' is empty. Have you cloned the 'tests' repo branch develop?"); js::read_string(s, v); for (auto& i: v.get_obj()) @@ -20,6 +20,10 @@ * Main test functions. */ +#include <libethsupport/TrieDB.h> +#include "TrieHash.h" +#include "MemTrie.h" + #include <boost/test/unit_test.hpp> int trieTest(); @@ -38,7 +42,35 @@ using namespace eth; BOOST_AUTO_TEST_CASE(basic_tests) { - cnote << "Hello"; + { + BasicMap m; + GenericTrieDB<BasicMap> d(&m); + d.init(); // initialise as empty tree. + MemTrie t; + for (int a = 0; a < 20; ++a) + { + StringMap m; + for (int i = 0; i < 20; ++i) + { + auto k = randomWord(); + auto v = toString(i); + m.insert(make_pair(k, v)); + t.insert(k, v); + d.insert(k, v); + assert(hash256(m) == t.hash256()); + assert(hash256(m) == d.root()); + } + while (!m.empty()) + { + auto k = m.begin()->first; + d.remove(k); + t.remove(k); + m.erase(k); + assert(hash256(m) == t.hash256()); + assert(hash256(m) == d.root()); + } + } + } /* RLPStream s; BlockInfo::genesis().fillStream(s, false); @@ -60,7 +60,7 @@ namespace eth static void getRLPTestCases(js::mValue& v) { - string s = asString(contents("../../tests/rlptest.json")); + string s = asString(contents("../../../tests/rlptest.json")); BOOST_REQUIRE_MESSAGE( s.length() > 0, "Contents of 'rlptest.json' is empty. Have you cloned the 'tests' repo branch develop?"); js::read_string(s, v); @@ -51,7 +51,7 @@ BOOST_AUTO_TEST_CASE(trie_tests) cnote << "Testing Trie..."; js::mValue v; - string s = asString(contents("../../tests/trietest.json")); + string s = asString(contents("../../../tests/trietest.json")); BOOST_REQUIRE_MESSAGE( s.length() > 0, "Contents of 'trietest.json' is empty. Have you cloned the 'tests' repo branch develop?"); js::read_string(s, v); for (auto& i: v.get_obj()) @@ -83,7 +83,7 @@ inline h256 stringMapHash256(StringMap const& _s) int trieTest() { - +#if 0 // More tests... { BasicMap m; @@ -218,6 +218,13 @@ int trieTest() remove("do"); remove("doge"); remove("doe"); + } +#endif + { + BasicMap m; + GenericTrieDB<BasicMap> d(&m); + d.init(); // initialise as empty tree. + MemTrie t; for (int a = 0; a < 20; ++a) { StringMap m; @@ -156,7 +156,7 @@ public: previousBlock.hash = h256(_o["previousHash"].get_str()); currentBlock.number = toInt(_o["currentNumber"]); - currentBlock.gasLimit = toInt(_o["gasLimit"]); + currentBlock.gasLimit = toInt(_o["currentGasLimit"]); currentBlock.difficulty = toInt(_o["currentDifficulty"]); currentBlock.timestamp = toInt(_o["currentTimestamp"]); currentBlock.coinbaseAddress = Address(_o["currentCoinbase"].get_str()); @@ -250,7 +250,7 @@ public: mArray d; for (auto const& i: get<3>(a.second)) push(d, i); - ret["code"] = d; + o["code"] = d; } ret[toString(a.first)] = o; |