From 59bd89f11636e90b2d684e8f411d8d7a88622458 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 9 Mar 2015 16:04:43 +0100 Subject: test: Remove UNITTEST params UNITTEST parameter are not used by any current tests, and the model (modifyable parameters) is inconvenient when unit-testing. As they are stored in a global structure eevery test would have to (re)set up its own parameters. For consistency it is also better to test with MAIN parameters. --- src/chainparams.cpp | 45 --------------------------------------------- src/chainparams.h | 22 ---------------------- src/chainparamsbase.cpp | 3 --- src/chainparamsbase.h | 1 - src/test/base58_tests.cpp | 4 ++-- src/test/test_bitcoin.cpp | 2 +- 6 files changed, 3 insertions(+), 74 deletions(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 1fd3b01681..c48ccbc08a 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -281,51 +281,8 @@ public: }; static CRegTestParams regTestParams; -/** - * Unit test - */ -class CUnitTestParams : public CMainParams, public CModifiableParams { -public: - CUnitTestParams() { - strNetworkID = "unittest"; - nDefaultPort = 18445; - vFixedSeeds.clear(); //! Unit test mode doesn't have any fixed seeds. - vSeeds.clear(); //! Unit test mode doesn't have any DNS seeds. - - fRequireRPCPassword = false; - fMiningRequiresPeers = false; - fDefaultCheckMemPool = true; - fAllowMinDifficultyBlocks = false; - fMineBlocksOnDemand = true; - } - - const Checkpoints::CCheckpointData& Checkpoints() const - { - // UnitTest share the same checkpoints as MAIN - return data; - } - - //! Published setters to allow changing values in unit test cases - virtual void setSubsidyHalvingInterval(int anSubsidyHalvingInterval) { nSubsidyHalvingInterval=anSubsidyHalvingInterval; } - virtual void setEnforceBlockUpgradeMajority(int anEnforceBlockUpgradeMajority) { nEnforceBlockUpgradeMajority=anEnforceBlockUpgradeMajority; } - virtual void setRejectBlockOutdatedMajority(int anRejectBlockOutdatedMajority) { nRejectBlockOutdatedMajority=anRejectBlockOutdatedMajority; } - virtual void setToCheckBlockUpgradeMajority(int anToCheckBlockUpgradeMajority) { nToCheckBlockUpgradeMajority=anToCheckBlockUpgradeMajority; } - virtual void setDefaultCheckMemPool(bool afDefaultCheckMemPool) { fDefaultCheckMemPool=afDefaultCheckMemPool; } - virtual void setAllowMinDifficultyBlocks(bool afAllowMinDifficultyBlocks) { fAllowMinDifficultyBlocks=afAllowMinDifficultyBlocks; } - virtual void setSkipProofOfWorkCheck(bool afSkipProofOfWorkCheck) { fSkipProofOfWorkCheck = afSkipProofOfWorkCheck; } -}; -static CUnitTestParams unitTestParams; - - static CChainParams *pCurrentParams = 0; -CModifiableParams *ModifiableParams() -{ - assert(pCurrentParams); - assert(pCurrentParams==&unitTestParams); - return (CModifiableParams*)&unitTestParams; -} - const CChainParams &Params() { assert(pCurrentParams); return *pCurrentParams; @@ -339,8 +296,6 @@ CChainParams &Params(CBaseChainParams::Network network) { return testNetParams; case CBaseChainParams::REGTEST: return regTestParams; - case CBaseChainParams::UNITTEST: - return unitTestParams; default: assert(false && "Unimplemented network"); return mainParams; diff --git a/src/chainparams.h b/src/chainparams.h index 78b575d8f3..48b1383a67 100644 --- a/src/chainparams.h +++ b/src/chainparams.h @@ -108,25 +108,6 @@ protected: bool fTestnetToBeDeprecatedFieldRPC; }; -/** - * Modifiable parameters interface is used by test cases to adapt the parameters in order - * to test specific features more easily. Test cases should always restore the previous - * values after finalization. - */ - -class CModifiableParams { -public: - //! Published setters to allow changing values in unit test cases - virtual void setSubsidyHalvingInterval(int anSubsidyHalvingInterval) =0; - virtual void setEnforceBlockUpgradeMajority(int anEnforceBlockUpgradeMajority)=0; - virtual void setRejectBlockOutdatedMajority(int anRejectBlockOutdatedMajority)=0; - virtual void setToCheckBlockUpgradeMajority(int anToCheckBlockUpgradeMajority)=0; - virtual void setDefaultCheckMemPool(bool aDefaultCheckMemPool)=0; - virtual void setAllowMinDifficultyBlocks(bool aAllowMinDifficultyBlocks)=0; - virtual void setSkipProofOfWorkCheck(bool aSkipProofOfWorkCheck)=0; -}; - - /** * Return the currently selected parameters. This won't change after app startup * outside of the unit tests. @@ -136,9 +117,6 @@ const CChainParams &Params(); /** Return parameters for the given network. */ CChainParams &Params(CBaseChainParams::Network network); -/** Get modifiable network parameters (UNITTEST only) */ -CModifiableParams *ModifiableParams(); - /** Sets the params returned by Params() to those for the given network. */ void SelectParams(CBaseChainParams::Network network); diff --git a/src/chainparamsbase.cpp b/src/chainparamsbase.cpp index c42fd106be..7d82d689ec 100644 --- a/src/chainparamsbase.cpp +++ b/src/chainparamsbase.cpp @@ -82,9 +82,6 @@ void SelectBaseParams(CBaseChainParams::Network network) case CBaseChainParams::REGTEST: pCurrentBaseParams = ®TestParams; break; - case CBaseChainParams::UNITTEST: - pCurrentBaseParams = &unitTestParams; - break; default: assert(false && "Unimplemented network"); return; diff --git a/src/chainparamsbase.h b/src/chainparamsbase.h index cebe7aa01a..421a3a06ff 100644 --- a/src/chainparamsbase.h +++ b/src/chainparamsbase.h @@ -19,7 +19,6 @@ public: MAIN, TESTNET, REGTEST, - UNITTEST, MAX_NETWORK_TYPES }; diff --git a/src/test/base58_tests.cpp b/src/test/base58_tests.cpp index e7d0281881..c242dd26e2 100644 --- a/src/test/base58_tests.cpp +++ b/src/test/base58_tests.cpp @@ -127,6 +127,7 @@ BOOST_AUTO_TEST_CASE(base58_keys_valid_parse) std::vector result; CBitcoinSecret secret; CBitcoinAddress addr; + SelectParams(CBaseChainParams::MAIN); BOOST_FOREACH(Value& tv, tests) { @@ -176,7 +177,6 @@ BOOST_AUTO_TEST_CASE(base58_keys_valid_parse) BOOST_CHECK_MESSAGE(!secret.IsValid(), "IsValid pubkey as privkey:" + strTest); } } - SelectParams(CBaseChainParams::UNITTEST); } // Goal: check that generated keys match test vectors @@ -244,7 +244,7 @@ BOOST_AUTO_TEST_CASE(base58_keys_valid_gen) CTxDestination nodest = CNoDestination(); BOOST_CHECK(!dummyAddr.Set(nodest)); - SelectParams(CBaseChainParams::UNITTEST); + SelectParams(CBaseChainParams::MAIN); } // Goal: check that base58 parsing code is robust against a variety of corrupted data diff --git a/src/test/test_bitcoin.cpp b/src/test/test_bitcoin.cpp index 5df417b8e5..a1355ad445 100644 --- a/src/test/test_bitcoin.cpp +++ b/src/test/test_bitcoin.cpp @@ -29,7 +29,7 @@ extern void noui_connect(); TestingSetup::TestingSetup() { fPrintToDebugLog = false; // don't want to write to debug.log file - SelectParams(CBaseChainParams::UNITTEST); + SelectParams(CBaseChainParams::MAIN); noui_connect(); #ifdef ENABLE_WALLET bitdb.MakeMock(); -- cgit v1.2.3 From 3aa0130b963087025b64108225bbadea36d8c6df Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 9 Mar 2015 16:09:54 +0100 Subject: test: remove fSkipProofOfWork Not used, and REGTEST already allows creating blocks at the lowerst possible difficulty. --- src/chainparams.cpp | 1 - src/chainparams.h | 3 --- src/main.cpp | 3 +-- src/pow.cpp | 3 --- 4 files changed, 1 insertion(+), 9 deletions(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index c48ccbc08a..2bc8976510 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -170,7 +170,6 @@ public: fAllowMinDifficultyBlocks = false; fRequireStandard = true; fMineBlocksOnDemand = false; - fSkipProofOfWorkCheck = false; fTestnetToBeDeprecatedFieldRPC = false; } diff --git a/src/chainparams.h b/src/chainparams.h index 48b1383a67..134dcd6558 100644 --- a/src/chainparams.h +++ b/src/chainparams.h @@ -60,8 +60,6 @@ public: bool DefaultCheckMemPool() const { return fDefaultCheckMemPool; } /** Allow mining of a min-difficulty block */ bool AllowMinDifficultyBlocks() const { return fAllowMinDifficultyBlocks; } - /** Skip proof-of-work check: allow mining of any difficulty block */ - bool SkipProofOfWorkCheck() const { return fSkipProofOfWorkCheck; } /** Make standard checks */ bool RequireStandard() const { return fRequireStandard; } int64_t TargetTimespan() const { return nTargetTimespan; } @@ -104,7 +102,6 @@ protected: bool fAllowMinDifficultyBlocks; bool fRequireStandard; bool fMineBlocksOnDemand; - bool fSkipProofOfWorkCheck; bool fTestnetToBeDeprecatedFieldRPC; }; diff --git a/src/main.cpp b/src/main.cpp index 0b36b5f219..f47155ca90 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2593,8 +2593,7 @@ bool ContextualCheckBlockHeader(const CBlockHeader& block, CValidationState& sta int nHeight = pindexPrev->nHeight+1; // Check proof of work - if ((!Params().SkipProofOfWorkCheck()) && - (block.nBits != GetNextWorkRequired(pindexPrev, &block))) + if ((block.nBits != GetNextWorkRequired(pindexPrev, &block))) return state.DoS(100, error("%s: incorrect proof of work", __func__), REJECT_INVALID, "bad-diffbits"); diff --git a/src/pow.cpp b/src/pow.cpp index b75b293c90..eb899ffc94 100644 --- a/src/pow.cpp +++ b/src/pow.cpp @@ -87,9 +87,6 @@ bool CheckProofOfWork(uint256 hash, unsigned int nBits) bool fOverflow; arith_uint256 bnTarget; - if (Params().SkipProofOfWorkCheck()) - return true; - bnTarget.SetCompact(nBits, &fNegative, &fOverflow); // Check range -- cgit v1.2.3