diff --git a/src/config.h b/src/config.h --- a/src/config.h +++ b/src/config.h @@ -50,9 +50,8 @@ explicit DummyConfig(std::string net); explicit DummyConfig(std::unique_ptr chainParamsIn); bool SetMaxBlockSize(uint64_t maxBlockSize) override { return false; } - uint64_t GetMaxBlockSize() const override { return 0; } + uint64_t GetMaxBlockSize() const override { return 32'000'000; } - void SetChainParams(std::string net); const CChainParams &GetChainParams() const override { return *chainParams; } void SetCashAddrEncoding(bool) override {} diff --git a/src/config.cpp b/src/config.cpp --- a/src/config.cpp +++ b/src/config.cpp @@ -50,7 +50,3 @@ DummyConfig::DummyConfig(std::unique_ptr chainParamsIn) : chainParams(std::move(chainParamsIn)) {} - -void DummyConfig::SetChainParams(std::string net) { - chainParams = CreateChainParams(net); -} diff --git a/src/test/checkpoints_tests.cpp b/src/test/checkpoints_tests.cpp --- a/src/test/checkpoints_tests.cpp +++ b/src/test/checkpoints_tests.cpp @@ -24,9 +24,9 @@ #include -BOOST_FIXTURE_TEST_SUITE(checkpoints_tests, TestingSetup) +BOOST_AUTO_TEST_SUITE(checkpoints_tests) -BOOST_AUTO_TEST_CASE(sanity) { +BOOST_FIXTURE_TEST_CASE(sanity, TestingSetup) { const auto params = CreateChainParams(CBaseChainParams::MAIN); const CCheckpointData &checkpoints = params->Checkpoints(); BlockHash p11111 = BlockHash::fromHex( @@ -70,6 +70,15 @@ } }; +static const MainnetConfigWithTestCheckpoints g_config{}; + +struct CheckpointsTestingSetup : public TestingSetup { + CheckpointsTestingSetup() + : TestingSetup{CBaseChainParams::MAIN, /*extra_args=*/{}, + /*coins_db_in_memory=*/true, + /*block_tree_db_in_memory=*/true, g_config} {} +}; + /** * This test has 4 precomputed blocks mined ontop of the genesis block: * G ---> A ---> AA (checkpointed) @@ -79,8 +88,11 @@ * * B should be rejected for forking prior to an accepted checkpoint * * AB should be rejected for forking at an accepted checkpoint */ -BOOST_AUTO_TEST_CASE(ban_fork_prior_to_and_at_checkpoints) { - MainnetConfigWithTestCheckpoints config; +BOOST_FIXTURE_TEST_CASE(ban_fork_prior_to_and_at_checkpoints, + CheckpointsTestingSetup) { + const Config &config = m_node.chainman->GetConfig(); + assert(std::addressof(config) == std::addressof(g_config)); + const CBlockIndex *pindex = nullptr; // Start with mainnet genesis block diff --git a/src/test/util/setup_common.h b/src/test/util/setup_common.h --- a/src/test/util/setup_common.h +++ b/src/test/util/setup_common.h @@ -7,6 +7,7 @@ #include #include +#include #include #include #include @@ -120,7 +121,8 @@ explicit ChainTestingSetup( const std::string &chainName = CBaseChainParams::MAIN, - const std::vector &extra_args = {}); + const std::vector &extra_args = {}, + const Config &config = ::GetConfig()); ~ChainTestingSetup(); }; @@ -136,7 +138,8 @@ explicit TestingSetup(const std::string &chainName = CBaseChainParams::MAIN, const std::vector &extra_args = {}, const bool coins_db_in_memory = true, - const bool block_tree_db_in_memory = true); + const bool block_tree_db_in_memory = true, + const Config &config = ::GetConfig()); }; /** Identical to TestingSetup, but chain set to regtest */ diff --git a/src/test/util/setup_common.cpp b/src/test/util/setup_common.cpp --- a/src/test/util/setup_common.cpp +++ b/src/test/util/setup_common.cpp @@ -194,10 +194,9 @@ } ChainTestingSetup::ChainTestingSetup( - const std::string &chainName, const std::vector &extra_args) + const std::string &chainName, const std::vector &extra_args, + const Config &config) : BasicTestingSetup(chainName, extra_args) { - const Config &config = GetConfig(); - // We have to run a scheduler thread to prevent ActivateBestChain // from blocking due to queue overrun. m_node.scheduler = std::make_unique(); @@ -273,12 +272,11 @@ TestingSetup::TestingSetup(const std::string &chainName, const std::vector &extra_args, const bool coins_db_in_memory, - const bool block_tree_db_in_memory) - : ChainTestingSetup(chainName, extra_args), + const bool block_tree_db_in_memory, + const Config &config) + : ChainTestingSetup(chainName, extra_args, config), m_coins_db_in_memory(coins_db_in_memory), m_block_tree_db_in_memory(block_tree_db_in_memory) { - const Config &config = GetConfig(); - // Ideally we'd move all the RPC tests to the functional testing framework // instead of unit tests, but for now we need these here. RPCServer rpcServer;