@ -48,9 +48,14 @@ void doBlockchainTests(json_spirit::mValue& _v, bool _fillin)
{
{
for ( auto & i : _v . get_obj ( ) )
for ( auto & i : _v . get_obj ( ) )
{
{
cerr < < i . first < < endl ;
mObject & o = i . second . get_obj ( ) ;
mObject & o = i . second . get_obj ( ) ;
if ( test : : Options : : get ( ) . singleTest & & test : : Options : : get ( ) . singleTestName ! = i . first )
{
o . clear ( ) ;
continue ;
}
cerr < < i . first < < endl ;
BOOST_REQUIRE ( o . count ( " genesisBlockHeader " ) ) ;
BOOST_REQUIRE ( o . count ( " genesisBlockHeader " ) ) ;
BlockInfo biGenesisBlock = constructBlock ( o [ " genesisBlockHeader " ] . get_obj ( ) ) ;
BlockInfo biGenesisBlock = constructBlock ( o [ " genesisBlockHeader " ] . get_obj ( ) ) ;
@ -250,11 +255,11 @@ void doBlockchainTests(json_spirit::mValue& _v, bool _fillin)
//there we get new blockchain status in state which could have more difficulty than we have in trueState
//there we get new blockchain status in state which could have more difficulty than we have in trueState
//attempt to import new block to the true blockchain
//attempt to import new block to the true blockchain
trueBc . sync ( uncleBlockQueue , trueState . db ( ) , 4 ) ;
trueBc . sync ( uncleBlockQueue , trueState . db ( ) , 4 ) ;
trueBc . attemptImport ( state . blockData ( ) , trueState . db ( ) ) ;
trueBc . attemptImport ( block2 . out ( ) , trueState . db ( ) ) ;
trueState . sync ( trueBc ) ;
trueState . sync ( trueBc ) ;
blockSet newBlock ;
blockSet newBlock ;
newBlock . first = state . blockData ( ) ;
newBlock . first = block2 . out ( ) ;
newBlock . second = uncleBlockQueueList ;
newBlock . second = uncleBlockQueueList ;
if ( importBlockNumber < blockSets . size ( ) )
if ( importBlockNumber < blockSets . size ( ) )
{
{
@ -306,8 +311,8 @@ void doBlockchainTests(json_spirit::mValue& _v, bool _fillin)
bytes blockRLP ;
bytes blockRLP ;
try
try
{
{
trueState . sync ( trueBc ) ;
blockRLP = importByteArray ( blObj [ " rlp " ] . get_str ( ) ) ;
blockRLP = importByteArray ( blObj [ " rlp " ] . get_str ( ) ) ;
trueState . sync ( trueBc ) ;
trueBc . import ( blockRLP , trueState . db ( ) ) ;
trueBc . import ( blockRLP , trueState . db ( ) ) ;
if ( trueBc . info ( ) ! = BlockInfo ( blockRLP ) )
if ( trueBc . info ( ) ! = BlockInfo ( blockRLP ) )
importedAndBest = false ;
importedAndBest = false ;
@ -470,7 +475,8 @@ void doBlockchainTests(json_spirit::mValue& _v, bool _fillin)
} //all blocks
} //all blocks
BOOST_REQUIRE ( o . count ( " lastblockhash " ) > 0 ) ;
BOOST_REQUIRE ( o . count ( " lastblockhash " ) > 0 ) ;
BOOST_CHECK_MESSAGE ( toString ( trueBc . info ( ) . hash ( ) ) = = o [ " lastblockhash " ] . get_str ( ) , " last block hash of constructed blockchain does not match provided hash of the last block! " ) ;
BOOST_CHECK_MESSAGE ( toString ( trueBc . info ( ) . hash ( ) ) = = o [ " lastblockhash " ] . get_str ( ) ,
" Boost check: " + i . first + " lastblockhash does not match " + toString ( trueBc . info ( ) . hash ( ) ) + " expected: " + o [ " lastblockhash " ] . get_str ( ) ) ;
}
}
}
}
}
}