aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsubtly <subtly@users.noreply.github.com>2015-03-30 04:51:43 +0800
committersubtly <subtly@users.noreply.github.com>2015-03-30 04:51:43 +0800
commit735c02c468de32b4f91c59794039b67ab29a8170 (patch)
tree3fda3673902b46e774cc30714ed9541f53395910
parent602274c0ef07d9e816e97f47c6d556e0edd00758 (diff)
parent77589fce9b93ad9cafc93671cac80d46104bc248 (diff)
downloaddexon-solidity-735c02c468de32b4f91c59794039b67ab29a8170.tar
dexon-solidity-735c02c468de32b4f91c59794039b67ab29a8170.tar.gz
dexon-solidity-735c02c468de32b4f91c59794039b67ab29a8170.tar.bz2
dexon-solidity-735c02c468de32b4f91c59794039b67ab29a8170.tar.lz
dexon-solidity-735c02c468de32b4f91c59794039b67ab29a8170.tar.xz
dexon-solidity-735c02c468de32b4f91c59794039b67ab29a8170.tar.zst
dexon-solidity-735c02c468de32b4f91c59794039b67ab29a8170.zip
Merge branch 'develop' into reqpeer
Conflicts: libp2p/Network.h
-rw-r--r--blockchain.cpp36
1 files changed, 19 insertions, 17 deletions
diff --git a/blockchain.cpp b/blockchain.cpp
index 988859fe..17e6c358 100644
--- a/blockchain.cpp
+++ b/blockchain.cpp
@@ -20,7 +20,9 @@
* block test functions.
*/
+#include <boost/filesystem.hpp>
#include <libdevcrypto/FileSystem.h>
+#include <libtestutils/TransientDirectory.h>
#include <libethereum/CanonBlockChain.h>
#include "TestHelper.h"
@@ -35,8 +37,8 @@ bytes createBlockRLPFromFields(mObject& _tObj);
void overwriteBlockHeader(BlockInfo& _current_BlockHeader, mObject& _blObj);
BlockInfo constructBlock(mObject& _o);
void updatePoW(BlockInfo& _bi);
-void writeBlockHeaderToJson(mObject& _o, const BlockInfo& _bi);
-RLPStream createFullBlockFromHeader(const BlockInfo& _bi, const bytes& _txs = RLPEmptyList, const bytes& _uncles = RLPEmptyList);
+void writeBlockHeaderToJson(mObject& _o, BlockInfo const& _bi);
+RLPStream createFullBlockFromHeader(BlockInfo const& _bi, bytes const& _txs = RLPEmptyList, bytes const& _uncles = RLPEmptyList);
void doBlockchainTests(json_spirit::mValue& _v, bool _fillin)
{
@@ -75,7 +77,8 @@ void doBlockchainTests(json_spirit::mValue& _v, bool _fillin)
o["genesisRLP"] = "0x" + toHex(rlpGenesisBlock.out());
// construct blockchain
- BlockChain bc(rlpGenesisBlock.out(), string(), true);
+ TransientDirectory td;
+ BlockChain bc(rlpGenesisBlock.out(), td.path(), true);
if (_fillin)
{
@@ -241,6 +244,7 @@ void doBlockchainTests(json_spirit::mValue& _v, bool _fillin)
if (sha3(RLP(state.blockData())[2].data()) != sha3(RLP(block2.out())[2].data()))
cnote << "uncle list mismatch\n" << RLP(state.blockData())[2].data() << "\n" << RLP(block2.out())[2].data();
+
try
{
state.sync(bc);
@@ -292,7 +296,7 @@ void doBlockchainTests(json_spirit::mValue& _v, bool _fillin)
BOOST_CHECK(blObj.count("uncleHeaders") == 0);
continue;
}
- catch(...)
+ catch (...)
{
cnote << "state sync or block import did throw an exception\n";
BOOST_CHECK(blObj.count("blockHeader") == 0);
@@ -388,7 +392,6 @@ void doBlockchainTests(json_spirit::mValue& _v, bool _fillin)
BOOST_CHECK_MESSAGE(txsFromField[i] == txsFromRlp[i], "transactions from rlp and transaction from field do not match");
BOOST_CHECK_MESSAGE(txsFromField[i].rlp() == txsFromRlp[i].rlp(), "transactions rlp do not match");
-
}
// check uncle list
@@ -488,12 +491,12 @@ bytes createBlockRLPFromFields(mObject& _tObj)
return rlpStream.out();
}
-void overwriteBlockHeader(BlockInfo& _current_BlockHeader, mObject& _blObj)
+void overwriteBlockHeader(BlockInfo& _currentBlockHeader, mObject& _blObj)
{
if (_blObj["blockHeader"].get_obj().size() != 14)
{
- BlockInfo tmp = _current_BlockHeader;
+ BlockInfo tmp = _currentBlockHeader;
if (_blObj["blockHeader"].get_obj().count("parentHash"))
tmp.parentHash = h256(_blObj["blockHeader"].get_obj()["parentHash"].get_str());
@@ -539,16 +542,16 @@ void overwriteBlockHeader(BlockInfo& _current_BlockHeader, mObject& _blObj)
// find new valid nonce
- if (tmp != _current_BlockHeader)
+ if (tmp != _currentBlockHeader)
{
- _current_BlockHeader = tmp;
+ _currentBlockHeader = tmp;
ProofOfWork pow;
std::pair<MineInfo, Ethash::Proof> ret;
- while (!ProofOfWork::verify(_current_BlockHeader))
+ while (!ProofOfWork::verify(_currentBlockHeader))
{
- ret = pow.mine(_current_BlockHeader, 1000, true, true);
- Ethash::assignResult(ret.second, _current_BlockHeader);
+ ret = pow.mine(_currentBlockHeader, 1000, true, true);
+ Ethash::assignResult(ret.second, _currentBlockHeader);
}
}
}
@@ -557,13 +560,12 @@ void overwriteBlockHeader(BlockInfo& _current_BlockHeader, mObject& _blObj)
// take the blockheader as is
const bytes c_blockRLP = createBlockRLPFromFields(_blObj["blockHeader"].get_obj());
const RLP c_bRLP(c_blockRLP);
- _current_BlockHeader.populateFromHeader(c_bRLP, IgnoreNonce);
+ _currentBlockHeader.populateFromHeader(c_bRLP, IgnoreNonce);
}
}
BlockInfo constructBlock(mObject& _o)
{
-
BlockInfo ret;
try
{
@@ -600,7 +602,7 @@ void updatePoW(BlockInfo& _bi)
_bi.hash = _bi.headerHash(WithNonce);
}
-void writeBlockHeaderToJson(mObject& _o, const BlockInfo& _bi)
+void writeBlockHeaderToJson(mObject& _o, BlockInfo const& _bi)
{
_o["parentHash"] = toString(_bi.parentHash);
_o["uncleHash"] = toString(_bi.sha3Uncles);
@@ -620,7 +622,7 @@ void writeBlockHeaderToJson(mObject& _o, const BlockInfo& _bi)
_o["hash"] = toString(_bi.hash);
}
-RLPStream createFullBlockFromHeader(const BlockInfo& _bi,const bytes& _txs, const bytes& _uncles )
+RLPStream createFullBlockFromHeader(BlockInfo const& _bi, bytes const& _txs, bytes const& _uncles)
{
RLPStream rlpStream;
_bi.streamRLP(rlpStream, WithNonce);
@@ -632,8 +634,8 @@ RLPStream createFullBlockFromHeader(const BlockInfo& _bi,const bytes& _txs, cons
return ret;
}
-} }// Namespace Close
+} }// Namespace Close
BOOST_AUTO_TEST_SUITE(BlockChainTests)