diff --git a/src/test/activation_tests.cpp b/src/test/activation_tests.cpp index 2207026e8..d39ede140 100644 --- a/src/test/activation_tests.cpp +++ b/src/test/activation_tests.cpp @@ -1,84 +1,76 @@ // Copyright (c) 2019 The Bitcoin developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include #include #include #include #include #include BOOST_FIXTURE_TEST_SUITE(activation_tests, BasicTestingSetup) static void SetMTP(std::array &blocks, int64_t mtp) { size_t len = blocks.size(); for (size_t i = 0; i < len; ++i) { blocks[i].nTime = mtp + (i - (len / 2)); } BOOST_CHECK_EQUAL(blocks.back().GetMedianTimePast(), mtp); } -BOOST_AUTO_TEST_CASE(isgravitonenabled) { - const auto params = CreateChainParams(CBaseChainParams::MAIN); - const auto &consensus = params->GetConsensus(); - - BOOST_CHECK(!IsGravitonEnabled(consensus, nullptr)); +static void testPastActivation( + std::function func, + const Consensus::Params ¶ms, int activationHeight) { + BOOST_CHECK(!func(params, nullptr)); std::array blocks; - blocks[0].nHeight = consensus.gravitonHeight - 2; + blocks[0].nHeight = activationHeight - 2; for (size_t i = 1; i < blocks.size(); ++i) { blocks[i].pprev = &blocks[i - 1]; blocks[i].nHeight = blocks[i - 1].nHeight + 1; } - BOOST_CHECK(!IsGravitonEnabled(consensus, &blocks[0])); - BOOST_CHECK(!IsGravitonEnabled(consensus, &blocks[1])); - BOOST_CHECK(IsGravitonEnabled(consensus, &blocks[2])); - BOOST_CHECK(IsGravitonEnabled(consensus, &blocks[3])); + + BOOST_CHECK(!func(params, &blocks[0])); + BOOST_CHECK(!func(params, &blocks[1])); + BOOST_CHECK(func(params, &blocks[2])); + BOOST_CHECK(func(params, &blocks[3])); } -BOOST_AUTO_TEST_CASE(isphononenabled) { - const Consensus::Params &consensus = Params().GetConsensus(); - BOOST_CHECK(!IsPhononEnabled(consensus, nullptr)); +BOOST_AUTO_TEST_CASE(test_previous_activations_by_height) { + const auto params = CreateChainParams(CBaseChainParams::MAIN); + const auto consensus = params->GetConsensus(); - std::array blocks; - blocks[0].nHeight = consensus.phononHeight - 2; - for (size_t i = 1; i < blocks.size(); ++i) { - blocks[i].pprev = &blocks[i - 1]; - blocks[i].nHeight = blocks[i - 1].nHeight + 1; - } - BOOST_CHECK(!IsPhononEnabled(consensus, &blocks[0])); - BOOST_CHECK(!IsPhononEnabled(consensus, &blocks[1])); - BOOST_CHECK(IsPhononEnabled(consensus, &blocks[2])); - BOOST_CHECK(IsPhononEnabled(consensus, &blocks[3])); + testPastActivation(IsGravitonEnabled, consensus, consensus.gravitonHeight); + testPastActivation(IsPhononEnabled, consensus, consensus.phononHeight); } BOOST_AUTO_TEST_CASE(isaxionenabled) { const Consensus::Params ¶ms = Params().GetConsensus(); const auto activation = gArgs.GetArg("-axionactivationtime", params.axionActivationTime); SetMockTime(activation - 1000000); BOOST_CHECK(!IsAxionEnabled(params, nullptr)); std::array blocks; for (size_t i = 1; i < blocks.size(); ++i) { blocks[i].pprev = &blocks[i - 1]; } BOOST_CHECK(!IsAxionEnabled(params, &blocks.back())); SetMTP(blocks, activation - 1); BOOST_CHECK(!IsAxionEnabled(params, &blocks.back())); SetMTP(blocks, activation); BOOST_CHECK(IsAxionEnabled(params, &blocks.back())); SetMTP(blocks, activation + 1); BOOST_CHECK(IsAxionEnabled(params, &blocks.back())); } BOOST_AUTO_TEST_SUITE_END()