diff --git a/src/gtest/test_checktransaction.cpp b/src/gtest/test_checktransaction.cpp index 9989a4987..d787ccccc 100644 --- a/src/gtest/test_checktransaction.cpp +++ b/src/gtest/test_checktransaction.cpp @@ -744,17 +744,16 @@ TEST(ChecktransactionTests, OverwinterValidTx) { } TEST(ChecktransactionTests, OverwinterExpiryHeight) { - CMutableTransaction mtx = GetValidTransaction(); + const auto& params = RegtestActivateOverwinter(); + CMutableTransaction mtx = GetValidTransaction(0x5ba81b19); mtx.vJoinSplit.resize(0); - mtx.fOverwintered = true; - mtx.nVersion = OVERWINTER_TX_VERSION; - mtx.nVersionGroupId = OVERWINTER_VERSION_GROUP_ID; mtx.nExpiryHeight = 0; { CTransaction tx(mtx); MockCValidationState state; EXPECT_TRUE(CheckTransactionWithoutProofVerification(tx, state)); + EXPECT_TRUE(ContextualCheckTransaction(tx, state, params, 1, true)); } { @@ -762,23 +761,28 @@ TEST(ChecktransactionTests, OverwinterExpiryHeight) { CTransaction tx(mtx); MockCValidationState state; EXPECT_TRUE(CheckTransactionWithoutProofVerification(tx, state)); + EXPECT_TRUE(ContextualCheckTransaction(tx, state, params, 1, true)); } { mtx.nExpiryHeight = TX_EXPIRY_HEIGHT_THRESHOLD; CTransaction tx(mtx); MockCValidationState state; + EXPECT_TRUE(CheckTransactionWithoutProofVerification(tx, state)); EXPECT_CALL(state, DoS(100, false, REJECT_INVALID, "bad-tx-expiry-height-too-high", false)).Times(1); - ContextualCheckTransaction(tx, state, Params(), 1, true); + ContextualCheckTransaction(tx, state, params, 1, true); } { mtx.nExpiryHeight = std::numeric_limits::max(); CTransaction tx(mtx); MockCValidationState state; + EXPECT_TRUE(CheckTransactionWithoutProofVerification(tx, state)); EXPECT_CALL(state, DoS(100, false, REJECT_INVALID, "bad-tx-expiry-height-too-high", false)).Times(1); - CheckTransactionWithoutProofVerification(tx, state); + ContextualCheckTransaction(tx, state, params, 1, true); } + + RegtestDeactivateSapling(); } TEST(checktransaction_tests, BlossomExpiryHeight) { diff --git a/src/utiltest.cpp b/src/utiltest.cpp index 0bfd55743..26d0cfb3e 100644 --- a/src/utiltest.cpp +++ b/src/utiltest.cpp @@ -196,6 +196,16 @@ CWalletTx GetValidSproutSpend(const libzcash::SproutSpendingKey& sk, return wtx; } +const CChainParams& RegtestActivateOverwinter() { + SelectParams(CBaseChainParams::REGTEST); + UpdateNetworkUpgradeParameters(Consensus::UPGRADE_OVERWINTER, Consensus::NetworkUpgrade::ALWAYS_ACTIVE); + return Params(); +} + +void RegtestDeactivateOverwinter() { + UpdateNetworkUpgradeParameters(Consensus::UPGRADE_OVERWINTER, Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT); +} + // Sapling const Consensus::Params& RegtestActivateSapling() { SelectParams(CBaseChainParams::REGTEST); diff --git a/src/utiltest.h b/src/utiltest.h index 0a11bfe48..3f905a66f 100644 --- a/src/utiltest.h +++ b/src/utiltest.h @@ -37,6 +37,9 @@ struct TestSaplingNote { SaplingMerkleTree tree; }; +const CChainParams& RegtestActivateOverwinter(); +void RegtestDeactivateOverwinter(); + const Consensus::Params& RegtestActivateSapling(); void RegtestDeactivateSapling();