Changeset View
Changeset View
Standalone View
Standalone View
src/test/miner_tests.cpp
Show All 25 Lines | |||||
#include <boost/test/unit_test.hpp> | #include <boost/test/unit_test.hpp> | ||||
BOOST_FIXTURE_TEST_SUITE(miner_tests, TestingSetup) | BOOST_FIXTURE_TEST_SUITE(miner_tests, TestingSetup) | ||||
static CFeeRate blockMinFeeRate = CFeeRate(DEFAULT_BLOCK_MIN_TX_FEE); | static CFeeRate blockMinFeeRate = CFeeRate(DEFAULT_BLOCK_MIN_TX_FEE); | ||||
static struct { | static struct { | ||||
uint8_t extranonce; | uint8_t extranonce; | ||||
unsigned int nonce; | uint32_t nonce; | ||||
} blockinfo[] = { | } blockinfo[] = { | ||||
{4, 0xa4a3e223}, {2, 0x15c32f9e}, {1, 0x0375b547}, {1, 0x7004a8a5}, | {4, 0xa4a3e223}, {2, 0x15c32f9e}, {1, 0x0375b547}, {1, 0x7004a8a5}, | ||||
{2, 0xce440296}, {2, 0x52cfe198}, {1, 0x77a72cd0}, {2, 0xbb5d6f84}, | {2, 0xce440296}, {2, 0x52cfe198}, {1, 0x77a72cd0}, {2, 0xbb5d6f84}, | ||||
{2, 0x83f30c2c}, {1, 0x48a73d5b}, {1, 0xef7dcd01}, {2, 0x6809c6c4}, | {2, 0x83f30c2c}, {1, 0x48a73d5b}, {1, 0xef7dcd01}, {2, 0x6809c6c4}, | ||||
{2, 0x0883ab3c}, {1, 0x087bbbe2}, {2, 0x2104a814}, {2, 0xdffb6daa}, | {2, 0x0883ab3c}, {1, 0x087bbbe2}, {2, 0x2104a814}, {2, 0xdffb6daa}, | ||||
{1, 0xee8a0a08}, {2, 0xba4237c1}, {1, 0xa70349dc}, {1, 0x344722bb}, | {1, 0xee8a0a08}, {2, 0xba4237c1}, {1, 0xa70349dc}, {1, 0x344722bb}, | ||||
{3, 0xd6294733}, {2, 0xec9f5c94}, {2, 0xca2fbc28}, {1, 0x6ba4f406}, | {3, 0xd6294733}, {2, 0xec9f5c94}, {2, 0xca2fbc28}, {1, 0x6ba4f406}, | ||||
{2, 0x015d4532}, {1, 0x6e119b7c}, {2, 0x43e8f314}, {2, 0x27962f38}, | {2, 0x015d4532}, {1, 0x6e119b7c}, {2, 0x43e8f314}, {2, 0x27962f38}, | ||||
▲ Show 20 Lines • Show All 675 Lines • ▼ Show 20 Lines | BOOST_AUTO_TEST_CASE(BlockAssembler_construction) { | ||||
CheckBlockMaxSize(chainparams, 1001, 1001); | CheckBlockMaxSize(chainparams, 1001, 1001); | ||||
CheckBlockMaxSize(chainparams, 12345, 12345); | CheckBlockMaxSize(chainparams, 12345, 12345); | ||||
CheckBlockMaxSize(chainparams, ONE_MEGABYTE - 1001, ONE_MEGABYTE - 1001); | CheckBlockMaxSize(chainparams, ONE_MEGABYTE - 1001, ONE_MEGABYTE - 1001); | ||||
CheckBlockMaxSize(chainparams, ONE_MEGABYTE - 1000, ONE_MEGABYTE - 1000); | CheckBlockMaxSize(chainparams, ONE_MEGABYTE - 1000, ONE_MEGABYTE - 1000); | ||||
CheckBlockMaxSize(chainparams, ONE_MEGABYTE - 999, ONE_MEGABYTE - 999); | CheckBlockMaxSize(chainparams, ONE_MEGABYTE - 999, ONE_MEGABYTE - 999); | ||||
CheckBlockMaxSize(chainparams, ONE_MEGABYTE, ONE_MEGABYTE - 999); | CheckBlockMaxSize(chainparams, ONE_MEGABYTE, ONE_MEGABYTE - 999); | ||||
// Test around higher limit such as 8MB | // The maximum block size to be generated before the May 15, 2018 HF | ||||
static const auto EIGHT_MEGABYTES = 8 * ONE_MEGABYTE; | static const auto EIGHT_MEGABYTES = 8 * ONE_MEGABYTE; | ||||
config.SetMaxBlockSize(EIGHT_MEGABYTES); | static const auto LEGACY_CAP = EIGHT_MEGABYTES - 1000; | ||||
// Test around historical 8MB cap. | |||||
config.SetMaxBlockSize(EIGHT_MEGABYTES + 1); | |||||
CheckBlockMaxSize(chainparams, EIGHT_MEGABYTES - 1001, | CheckBlockMaxSize(chainparams, EIGHT_MEGABYTES - 1001, | ||||
EIGHT_MEGABYTES - 1001); | EIGHT_MEGABYTES - 1001); | ||||
CheckBlockMaxSize(chainparams, EIGHT_MEGABYTES - 1000, | CheckBlockMaxSize(chainparams, EIGHT_MEGABYTES - 1000, LEGACY_CAP); | ||||
EIGHT_MEGABYTES - 1000); | CheckBlockMaxSize(chainparams, EIGHT_MEGABYTES - 999, LEGACY_CAP); | ||||
CheckBlockMaxSize(chainparams, EIGHT_MEGABYTES - 999, | |||||
EIGHT_MEGABYTES - 1000); | |||||
CheckBlockMaxSize(chainparams, EIGHT_MEGABYTES, EIGHT_MEGABYTES - 1000); | CheckBlockMaxSize(chainparams, EIGHT_MEGABYTES, EIGHT_MEGABYTES - 1000); | ||||
// Test around default cap | // Test around default cap | ||||
config.SetMaxBlockSize(DEFAULT_MAX_BLOCK_SIZE); | config.SetMaxBlockSize(DEFAULT_MAX_BLOCK_SIZE); | ||||
// We are stuck at the legacy cap before activation. | |||||
CheckBlockMaxSize(chainparams, DEFAULT_MAX_BLOCK_SIZE, LEGACY_CAP); | |||||
// Activate May 15, 2018 HF the dirty way | |||||
const int64_t monolithTime = | |||||
config.GetChainParams().GetConsensus().monolithActivationTime; | |||||
auto pindex = chainActive.Tip(); | |||||
for (size_t i = 0; pindex && i < 5; i++) { | |||||
BOOST_CHECK(!IsMonolithEnabled(config, chainActive.Tip())); | |||||
pindex->nTime = monolithTime; | |||||
pindex = pindex->pprev; | |||||
} | |||||
BOOST_CHECK(IsMonolithEnabled(config, chainActive.Tip())); | |||||
// Now we can use the default max block size. | |||||
CheckBlockMaxSize(chainparams, DEFAULT_MAX_BLOCK_SIZE - 1001, | CheckBlockMaxSize(chainparams, DEFAULT_MAX_BLOCK_SIZE - 1001, | ||||
DEFAULT_MAX_BLOCK_SIZE - 1001); | DEFAULT_MAX_BLOCK_SIZE - 1001); | ||||
CheckBlockMaxSize(chainparams, DEFAULT_MAX_BLOCK_SIZE - 1000, | CheckBlockMaxSize(chainparams, DEFAULT_MAX_BLOCK_SIZE - 1000, | ||||
DEFAULT_MAX_BLOCK_SIZE - 1000); | DEFAULT_MAX_BLOCK_SIZE - 1000); | ||||
CheckBlockMaxSize(chainparams, DEFAULT_MAX_BLOCK_SIZE - 999, | CheckBlockMaxSize(chainparams, DEFAULT_MAX_BLOCK_SIZE - 999, | ||||
DEFAULT_MAX_BLOCK_SIZE - 1000); | DEFAULT_MAX_BLOCK_SIZE - 1000); | ||||
CheckBlockMaxSize(chainparams, DEFAULT_MAX_BLOCK_SIZE, | CheckBlockMaxSize(chainparams, DEFAULT_MAX_BLOCK_SIZE, | ||||
DEFAULT_MAX_BLOCK_SIZE - 1000); | DEFAULT_MAX_BLOCK_SIZE - 1000); | ||||
Show All 12 Lines |