|
|
@ -30,6 +30,7 @@ |
|
|
|
#include <boost/assign/list_of.hpp> |
|
|
|
#include <boost/test/unit_test.hpp> |
|
|
|
#include <boost/assign/list_of.hpp> |
|
|
|
#include <boost/test/data/test_case.hpp> |
|
|
|
|
|
|
|
#include <univalue.h> |
|
|
|
|
|
|
@ -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<int>(Consensus::MAX_NETWORK_UPGRADES))) |
|
|
|
{ |
|
|
|
uint32_t consensusBranchId = SPROUT_BRANCH_ID; |
|
|
|
uint32_t consensusBranchId = NetworkUpgradeInfo[sample].nBranchId; |
|
|
|
|
|
|
|
CBasicKeyStore keystore; |
|
|
|
CCoinsView coinsDummy; |
|
|
|