From 68cc95301252bd4a1d82d750d9a771ccefd57d4e Mon Sep 17 00:00:00 2001 From: Simon Date: Mon, 26 Mar 2018 16:22:37 -0700 Subject: [PATCH] Part of #2966, extending Sprout tests to other epochs. Tests updated: - test_Get - test_simple_joinsplit_invalidity --- src/test/transaction_tests.cpp | 35 ++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/src/test/transaction_tests.cpp b/src/test/transaction_tests.cpp index 80173a25f..094cd5a90 100644 --- a/src/test/transaction_tests.cpp +++ b/src/test/transaction_tests.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include @@ -398,12 +399,9 @@ BOOST_AUTO_TEST_CASE(test_basic_joinsplit_verification) } } -BOOST_AUTO_TEST_CASE(test_simple_joinsplit_invalidity) +void test_simple_joinsplit_invalidity(uint32_t consensusBranchId, CMutableTransaction tx) { - uint32_t consensusBranchId = SPROUT_BRANCH_ID; auto verifier = libzcash::ProofVerifier::Strict(); - CMutableTransaction tx; - tx.nVersion = 2; { // Ensure that empty vin/vout remain invalid without // joinsplits. @@ -531,9 +529,34 @@ BOOST_AUTO_TEST_CASE(test_simple_joinsplit_invalidity) } } -BOOST_AUTO_TEST_CASE(test_Get) +BOOST_AUTO_TEST_CASE(test_simple_joinsplit_invalidity_driver) { + { + CMutableTransaction mtx; + mtx.nVersion = 2; + test_simple_joinsplit_invalidity(SPROUT_BRANCH_ID, mtx); + } + { + // Switch to regtest parameters so we can activate Overwinter + SelectParams(CBaseChainParams::REGTEST); + + CMutableTransaction mtx; + mtx.fOverwintered = true; + mtx.nVersionGroupId = OVERWINTER_VERSION_GROUP_ID; + mtx.nVersion = 3; + + UpdateNetworkUpgradeParameters(Consensus::UPGRADE_OVERWINTER, Consensus::NetworkUpgrade::ALWAYS_ACTIVE); + test_simple_joinsplit_invalidity(NetworkUpgradeInfo[Consensus::UPGRADE_OVERWINTER].nBranchId, mtx); + UpdateNetworkUpgradeParameters(Consensus::UPGRADE_OVERWINTER, Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT); + + // Switch back to mainnet parameters as originally selected in test fixture + SelectParams(CBaseChainParams::MAIN); + } +} + +// Parameterized testing over consensus branch ids +BOOST_DATA_TEST_CASE(test_Get, boost::unit_test::data::xrange(static_cast(Consensus::MAX_NETWORK_UPGRADES))) { - uint32_t consensusBranchId = SPROUT_BRANCH_ID; + uint32_t consensusBranchId = NetworkUpgradeInfo[sample].nBranchId; CBasicKeyStore keystore; CCoinsView coinsDummy;