@ -8,7 +8,6 @@
# include <boost/test/unit_test.hpp>
# include <boost/test/unit_test.hpp>
extern CWallet * pwalletMain ;
extern void SHA256Transform ( void * pstate , void * pinput , const void * pinit ) ;
extern void SHA256Transform ( void * pstate , void * pinput , const void * pinit ) ;
BOOST_AUTO_TEST_SUITE ( miner_tests )
BOOST_AUTO_TEST_SUITE ( miner_tests )
@ -51,7 +50,7 @@ struct {
// NOTE: These tests rely on CreateNewBlock doing its own self-validation!
// NOTE: These tests rely on CreateNewBlock doing its own self-validation!
BOOST_AUTO_TEST_CASE ( CreateNewBlock_validity )
BOOST_AUTO_TEST_CASE ( CreateNewBlock_validity )
{
{
CReserveKey reservekey ( pwalletMain ) ;
CScript scriptPubKey = CScript ( ) < < ParseHex ( " 04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f " ) < < OP_CHECKSIG ;
CBlockTemplate * pblocktemplate ;
CBlockTemplate * pblocktemplate ;
CTransaction tx ;
CTransaction tx ;
CScript script ;
CScript script ;
@ -60,7 +59,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
LOCK ( cs_main ) ;
LOCK ( cs_main ) ;
// Simple block creation, nothing special yet:
// Simple block creation, nothing special yet:
BOOST_CHECK ( pblocktemplate = CreateNewBlockWithKey ( reservek ey ) ) ;
BOOST_CHECK ( pblocktemplate = CreateNewBlock ( scriptPubK ey) ) ;
// We can't make transactions until we have inputs
// We can't make transactions until we have inputs
// Therefore, load 100 blocks :)
// Therefore, load 100 blocks :)
@ -86,7 +85,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
delete pblocktemplate ;
delete pblocktemplate ;
// Just to make sure we can still make simple blocks
// Just to make sure we can still make simple blocks
BOOST_CHECK ( pblocktemplate = CreateNewBlockWithKey ( reservek ey ) ) ;
BOOST_CHECK ( pblocktemplate = CreateNewBlock ( scriptPubK ey) ) ;
delete pblocktemplate ;
delete pblocktemplate ;
// block sigops > limit: 1000 CHECKMULTISIG + 1
// block sigops > limit: 1000 CHECKMULTISIG + 1
@ -104,7 +103,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
mempool . addUnchecked ( hash , CTxMemPoolEntry ( tx , 11 , GetTime ( ) , 111.0 , 11 ) ) ;
mempool . addUnchecked ( hash , CTxMemPoolEntry ( tx , 11 , GetTime ( ) , 111.0 , 11 ) ) ;
tx . vin [ 0 ] . prevout . hash = hash ;
tx . vin [ 0 ] . prevout . hash = hash ;
}
}
BOOST_CHECK ( pblocktemplate = CreateNewBlockWithKey ( reservek ey ) ) ;
BOOST_CHECK ( pblocktemplate = CreateNewBlock ( scriptPubK ey) ) ;
delete pblocktemplate ;
delete pblocktemplate ;
mempool . clear ( ) ;
mempool . clear ( ) ;
@ -124,14 +123,14 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
mempool . addUnchecked ( hash , CTxMemPoolEntry ( tx , 11 , GetTime ( ) , 111.0 , 11 ) ) ;
mempool . addUnchecked ( hash , CTxMemPoolEntry ( tx , 11 , GetTime ( ) , 111.0 , 11 ) ) ;
tx . vin [ 0 ] . prevout . hash = hash ;
tx . vin [ 0 ] . prevout . hash = hash ;
}
}
BOOST_CHECK ( pblocktemplate = CreateNewBlockWithKey ( reservek ey ) ) ;
BOOST_CHECK ( pblocktemplate = CreateNewBlock ( scriptPubK ey) ) ;
delete pblocktemplate ;
delete pblocktemplate ;
mempool . clear ( ) ;
mempool . clear ( ) ;
// orphan in mempool
// orphan in mempool
hash = tx . GetHash ( ) ;
hash = tx . GetHash ( ) ;
mempool . addUnchecked ( hash , CTxMemPoolEntry ( tx , 11 , GetTime ( ) , 111.0 , 11 ) ) ;
mempool . addUnchecked ( hash , CTxMemPoolEntry ( tx , 11 , GetTime ( ) , 111.0 , 11 ) ) ;
BOOST_CHECK ( pblocktemplate = CreateNewBlockWithKey ( reservek ey ) ) ;
BOOST_CHECK ( pblocktemplate = CreateNewBlock ( scriptPubK ey) ) ;
delete pblocktemplate ;
delete pblocktemplate ;
mempool . clear ( ) ;
mempool . clear ( ) ;
@ -149,7 +148,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
tx . vout [ 0 ] . nValue = 5900000000LL ;
tx . vout [ 0 ] . nValue = 5900000000LL ;
hash = tx . GetHash ( ) ;
hash = tx . GetHash ( ) ;
mempool . addUnchecked ( hash , CTxMemPoolEntry ( tx , 11 , GetTime ( ) , 111.0 , 11 ) ) ;
mempool . addUnchecked ( hash , CTxMemPoolEntry ( tx , 11 , GetTime ( ) , 111.0 , 11 ) ) ;
BOOST_CHECK ( pblocktemplate = CreateNewBlockWithKey ( reservek ey ) ) ;
BOOST_CHECK ( pblocktemplate = CreateNewBlock ( scriptPubK ey) ) ;
delete pblocktemplate ;
delete pblocktemplate ;
mempool . clear ( ) ;
mempool . clear ( ) ;
@ -160,7 +159,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
tx . vout [ 0 ] . nValue = 0 ;
tx . vout [ 0 ] . nValue = 0 ;
hash = tx . GetHash ( ) ;
hash = tx . GetHash ( ) ;
mempool . addUnchecked ( hash , CTxMemPoolEntry ( tx , 11 , GetTime ( ) , 111.0 , 11 ) ) ;
mempool . addUnchecked ( hash , CTxMemPoolEntry ( tx , 11 , GetTime ( ) , 111.0 , 11 ) ) ;
BOOST_CHECK ( pblocktemplate = CreateNewBlockWithKey ( reservek ey ) ) ;
BOOST_CHECK ( pblocktemplate = CreateNewBlock ( scriptPubK ey) ) ;
delete pblocktemplate ;
delete pblocktemplate ;
mempool . clear ( ) ;
mempool . clear ( ) ;
@ -178,7 +177,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
tx . vout [ 0 ] . nValue - = 1000000 ;
tx . vout [ 0 ] . nValue - = 1000000 ;
hash = tx . GetHash ( ) ;
hash = tx . GetHash ( ) ;
mempool . addUnchecked ( hash , CTxMemPoolEntry ( tx , 11 , GetTime ( ) , 111.0 , 11 ) ) ;
mempool . addUnchecked ( hash , CTxMemPoolEntry ( tx , 11 , GetTime ( ) , 111.0 , 11 ) ) ;
BOOST_CHECK ( pblocktemplate = CreateNewBlockWithKey ( reservek ey ) ) ;
BOOST_CHECK ( pblocktemplate = CreateNewBlock ( scriptPubK ey) ) ;
delete pblocktemplate ;
delete pblocktemplate ;
mempool . clear ( ) ;
mempool . clear ( ) ;
@ -192,17 +191,17 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
tx . vout [ 0 ] . scriptPubKey = CScript ( ) < < OP_2 ;
tx . vout [ 0 ] . scriptPubKey = CScript ( ) < < OP_2 ;
hash = tx . GetHash ( ) ;
hash = tx . GetHash ( ) ;
mempool . addUnchecked ( hash , CTxMemPoolEntry ( tx , 11 , GetTime ( ) , 111.0 , 11 ) ) ;
mempool . addUnchecked ( hash , CTxMemPoolEntry ( tx , 11 , GetTime ( ) , 111.0 , 11 ) ) ;
BOOST_CHECK ( pblocktemplate = CreateNewBlockWithKey ( reservek ey ) ) ;
BOOST_CHECK ( pblocktemplate = CreateNewBlock ( scriptPubK ey) ) ;
delete pblocktemplate ;
delete pblocktemplate ;
mempool . clear ( ) ;
mempool . clear ( ) ;
// subsidy changing
// subsidy changing
int nHeight = chainActive . Height ( ) ;
int nHeight = chainActive . Height ( ) ;
chainActive . Tip ( ) - > nHeight = 209999 ;
chainActive . Tip ( ) - > nHeight = 209999 ;
BOOST_CHECK ( pblocktemplate = CreateNewBlockWithKey ( reservek ey ) ) ;
BOOST_CHECK ( pblocktemplate = CreateNewBlock ( scriptPubK ey) ) ;
delete pblocktemplate ;
delete pblocktemplate ;
chainActive . Tip ( ) - > nHeight = 210000 ;
chainActive . Tip ( ) - > nHeight = 210000 ;
BOOST_CHECK ( pblocktemplate = CreateNewBlockWithKey ( reservek ey ) ) ;
BOOST_CHECK ( pblocktemplate = CreateNewBlock ( scriptPubK ey) ) ;
delete pblocktemplate ;
delete pblocktemplate ;
chainActive . Tip ( ) - > nHeight = nHeight ;
chainActive . Tip ( ) - > nHeight = nHeight ;