Update test_pow for shorter block times
This commit is contained in:
parent
c192e3a75d
commit
ff0820df5e
|
@ -4,10 +4,10 @@
|
|||
#include "chainparams.h"
|
||||
#include "pow.h"
|
||||
#include "random.h"
|
||||
#include "utiltest.h"
|
||||
|
||||
TEST(PoW, DifficultyAveraging) {
|
||||
SelectParams(CBaseChainParams::MAIN);
|
||||
const Consensus::Params& params = Params().GetConsensus();
|
||||
void TestDifficultyAveragigingImpl(const Consensus::Params& params)
|
||||
{
|
||||
size_t lastBlk = 2*params.nPowAveragingWindow;
|
||||
size_t firstBlk = lastBlk - params.nPowAveragingWindow;
|
||||
|
||||
|
@ -73,6 +73,16 @@ TEST(PoW, DifficultyAveraging) {
|
|||
GetNextWorkRequired(&blocks[lastBlk], nullptr, params));
|
||||
}
|
||||
|
||||
TEST(PoW, DifficultyAveraging) {
|
||||
SelectParams(CBaseChainParams::MAIN);
|
||||
TestDifficultyAveragigingImpl(Params().GetConsensus());
|
||||
}
|
||||
|
||||
TEST(PoW, DifficultyAveragingBlossom) {
|
||||
TestDifficultyAveragigingImpl(ActivateBlossom(true));
|
||||
DeactivateBlossom();
|
||||
}
|
||||
|
||||
TEST(PoW, MinDifficultyRules) {
|
||||
SelectParams(CBaseChainParams::TESTNET);
|
||||
const Consensus::Params& params = Params().GetConsensus();
|
||||
|
|
|
@ -5,29 +5,13 @@
|
|||
#include "main.h"
|
||||
#include "pow.h"
|
||||
#include "util.h"
|
||||
#include "utiltest.h"
|
||||
#include "test/test_bitcoin.h"
|
||||
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
using namespace std;
|
||||
|
||||
const Consensus::Params& ActivateBlossom() {
|
||||
SelectParams(CBaseChainParams::REGTEST);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_OVERWINTER, Consensus::NetworkUpgrade::ALWAYS_ACTIVE);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_SAPLING, Consensus::NetworkUpgrade::ALWAYS_ACTIVE);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_BLOSSOM, Consensus::NetworkUpgrade::ALWAYS_ACTIVE);
|
||||
UpdateRegtestPow(32, 16, uint256S("0007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"));
|
||||
return Params().GetConsensus();
|
||||
}
|
||||
|
||||
void DeactivateBlossom() {
|
||||
UpdateRegtestPow(0, 0, uint256S("0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f"));
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_BLOSSOM, Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_SAPLING, Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_OVERWINTER, Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT);
|
||||
SelectParams(CBaseChainParams::MAIN);
|
||||
}
|
||||
|
||||
BOOST_FIXTURE_TEST_SUITE(pow_tests, BasicTestingSetup)
|
||||
|
||||
/* Test calculation of next difficulty target with no constraints applying */
|
||||
|
@ -48,7 +32,7 @@ BOOST_AUTO_TEST_CASE(get_next_work)
|
|||
|
||||
BOOST_AUTO_TEST_CASE(get_next_work_blossom)
|
||||
{
|
||||
const Consensus::Params& params = ActivateBlossom();
|
||||
const Consensus::Params& params = ActivateBlossom(true);
|
||||
BOOST_CHECK_EQUAL(75, params.PoWTargetSpacing(0));
|
||||
|
||||
int64_t nLastRetargetTime = 1000000000; // NOTE: Not an actual block time
|
||||
|
@ -77,7 +61,7 @@ BOOST_AUTO_TEST_CASE(get_next_work_pow_limit)
|
|||
|
||||
BOOST_AUTO_TEST_CASE(get_next_work_pow_limit_blossom)
|
||||
{
|
||||
const Consensus::Params& params = ActivateBlossom();
|
||||
const Consensus::Params& params = ActivateBlossom(true);
|
||||
|
||||
int64_t nLastRetargetTime = 1231006505;
|
||||
int64_t nThisTime = 1233061996;
|
||||
|
@ -107,7 +91,7 @@ BOOST_AUTO_TEST_CASE(get_next_work_lower_limit_actual)
|
|||
|
||||
BOOST_AUTO_TEST_CASE(get_next_work_lower_limit_actual_blossom)
|
||||
{
|
||||
const Consensus::Params& params = ActivateBlossom();
|
||||
const Consensus::Params& params = ActivateBlossom(true);
|
||||
|
||||
int64_t nLastRetargetTime = 1000000000; // NOTE: Not an actual block time
|
||||
int64_t nThisTime = 1000000458;
|
||||
|
@ -136,7 +120,7 @@ BOOST_AUTO_TEST_CASE(get_next_work_upper_limit_actual)
|
|||
|
||||
BOOST_AUTO_TEST_CASE(get_next_work_upper_limit_actual_blossom)
|
||||
{
|
||||
const Consensus::Params& params = ActivateBlossom();
|
||||
const Consensus::Params& params = ActivateBlossom(true);
|
||||
|
||||
int64_t nLastRetargetTime = 1000000000; // NOTE: Not an actual block time
|
||||
int64_t nThisTime = 1000002908;
|
||||
|
@ -176,7 +160,7 @@ BOOST_AUTO_TEST_CASE(GetBlockProofEquivalentTime_test)
|
|||
|
||||
BOOST_AUTO_TEST_CASE(GetBlockProofEquivalentTime_test_blossom)
|
||||
{
|
||||
GetBlockProofEquivalentTimeImpl(ActivateBlossom());
|
||||
GetBlockProofEquivalentTimeImpl(ActivateBlossom(true));
|
||||
DeactivateBlossom();
|
||||
}
|
||||
|
||||
|
|
|
@ -200,6 +200,26 @@ void RegtestDeactivateSapling() {
|
|||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_OVERWINTER, Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT);
|
||||
}
|
||||
|
||||
const Consensus::Params& ActivateBlossom(bool updatePow) {
|
||||
SelectParams(CBaseChainParams::REGTEST);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_OVERWINTER, Consensus::NetworkUpgrade::ALWAYS_ACTIVE);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_SAPLING, Consensus::NetworkUpgrade::ALWAYS_ACTIVE);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_BLOSSOM, Consensus::NetworkUpgrade::ALWAYS_ACTIVE);
|
||||
if (updatePow) {
|
||||
UpdateRegtestPow(32, 16, uint256S("0007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"));
|
||||
}
|
||||
return Params().GetConsensus();
|
||||
}
|
||||
|
||||
void DeactivateBlossom() {
|
||||
UpdateRegtestPow(0, 0, uint256S("0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f"));
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_BLOSSOM, Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_SAPLING, Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT);
|
||||
UpdateNetworkUpgradeParameters(Consensus::UPGRADE_OVERWINTER, Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT);
|
||||
SelectParams(CBaseChainParams::MAIN);
|
||||
}
|
||||
|
||||
|
||||
libzcash::SaplingExtendedSpendingKey GetTestMasterSaplingSpendingKey() {
|
||||
std::vector<unsigned char, secure_allocator<unsigned char>> rawSeed(32);
|
||||
HDSeed seed(rawSeed);
|
||||
|
|
|
@ -43,6 +43,10 @@ const Consensus::Params& RegtestActivateSapling();
|
|||
|
||||
void RegtestDeactivateSapling();
|
||||
|
||||
const Consensus::Params& ActivateBlossom(bool updatePow);
|
||||
|
||||
void DeactivateBlossom();
|
||||
|
||||
libzcash::SaplingExtendedSpendingKey GetTestMasterSaplingSpendingKey();
|
||||
|
||||
CKey AddTestCKeyToKeyStore(CBasicKeyStore& keyStore);
|
||||
|
|
Loading…
Reference in New Issue