Fixes for tests.

This commit is contained in:
Gav Wood 2014-05-28 11:52:42 +02:00
parent 305ddf1fed
commit a418c6c09c
5 changed files with 46 additions and 7 deletions

View File

@ -34,7 +34,7 @@ BOOST_AUTO_TEST_CASE(hexPrefix_test)
{ {
cnote << "Testing Hex-Prefix-Encode..."; cnote << "Testing Hex-Prefix-Encode...";
js::mValue v; 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?"); 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); js::read_string(s, v);
for (auto& i: v.get_obj()) for (auto& i: v.get_obj())

View File

@ -20,6 +20,10 @@
* Main test functions. * Main test functions.
*/ */
#include <libethsupport/TrieDB.h>
#include "TrieHash.h"
#include "MemTrie.h"
#include <boost/test/unit_test.hpp> #include <boost/test/unit_test.hpp>
int trieTest(); int trieTest();
@ -38,7 +42,35 @@ using namespace eth;
BOOST_AUTO_TEST_CASE(basic_tests) 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; /* RLPStream s;
BlockInfo::genesis().fillStream(s, false); BlockInfo::genesis().fillStream(s, false);

View File

@ -60,7 +60,7 @@ namespace eth
static void getRLPTestCases(js::mValue& v) 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, BOOST_REQUIRE_MESSAGE( s.length() > 0,
"Contents of 'rlptest.json' is empty. Have you cloned the 'tests' repo branch develop?"); "Contents of 'rlptest.json' is empty. Have you cloned the 'tests' repo branch develop?");
js::read_string(s, v); js::read_string(s, v);

View File

@ -51,7 +51,7 @@ BOOST_AUTO_TEST_CASE(trie_tests)
cnote << "Testing Trie..."; cnote << "Testing Trie...";
js::mValue v; 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?"); 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); js::read_string(s, v);
for (auto& i: v.get_obj()) for (auto& i: v.get_obj())
@ -83,7 +83,7 @@ inline h256 stringMapHash256(StringMap const& _s)
int trieTest() int trieTest()
{ {
#if 0
// More tests... // More tests...
{ {
BasicMap m; BasicMap m;
@ -218,6 +218,13 @@ int trieTest()
remove("do"); remove("do");
remove("doge"); remove("doge");
remove("doe"); remove("doe");
}
#endif
{
BasicMap m;
GenericTrieDB<BasicMap> d(&m);
d.init(); // initialise as empty tree.
MemTrie t;
for (int a = 0; a < 20; ++a) for (int a = 0; a < 20; ++a)
{ {
StringMap m; StringMap m;

4
vm.cpp
View File

@ -156,7 +156,7 @@ public:
previousBlock.hash = h256(_o["previousHash"].get_str()); previousBlock.hash = h256(_o["previousHash"].get_str());
currentBlock.number = toInt(_o["currentNumber"]); currentBlock.number = toInt(_o["currentNumber"]);
currentBlock.gasLimit = toInt(_o["gasLimit"]); currentBlock.gasLimit = toInt(_o["currentGasLimit"]);
currentBlock.difficulty = toInt(_o["currentDifficulty"]); currentBlock.difficulty = toInt(_o["currentDifficulty"]);
currentBlock.timestamp = toInt(_o["currentTimestamp"]); currentBlock.timestamp = toInt(_o["currentTimestamp"]);
currentBlock.coinbaseAddress = Address(_o["currentCoinbase"].get_str()); currentBlock.coinbaseAddress = Address(_o["currentCoinbase"].get_str());
@ -250,7 +250,7 @@ public:
mArray d; mArray d;
for (auto const& i: get<3>(a.second)) for (auto const& i: get<3>(a.second))
push(d, i); push(d, i);
ret["code"] = d; o["code"] = d;
} }
ret[toString(a.first)] = o; ret[toString(a.first)] = o;