aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hexPrefix.cpp2
-rw-r--r--main.cpp34
-rw-r--r--rlp.cpp2
-rw-r--r--trie.cpp11
-rw-r--r--vm.cpp4
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())
diff --git a/main.cpp b/main.cpp
index f30d5e89..35e56d19 100644
--- a/main.cpp
+++ b/main.cpp
@@ -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);
diff --git a/rlp.cpp b/rlp.cpp
index 5adebeab..0a62df9e 100644
--- a/rlp.cpp
+++ b/rlp.cpp
@@ -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);
diff --git a/trie.cpp b/trie.cpp
index 4a18a650..f3ff3ef4 100644
--- a/trie.cpp
+++ b/trie.cpp
@@ -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;
diff --git a/vm.cpp b/vm.cpp
index c2dc2791..0d2d2d1e 100644
--- a/vm.cpp
+++ b/vm.cpp
@@ -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;