diff options
Diffstat (limited to 'src/test/auxpow_tests.cpp')
| -rw-r--r-- | src/test/auxpow_tests.cpp | 39 |
1 files changed, 21 insertions, 18 deletions
diff --git a/src/test/auxpow_tests.cpp b/src/test/auxpow_tests.cpp index 1630d000d..566c88feb 100644 --- a/src/test/auxpow_tests.cpp +++ b/src/test/auxpow_tests.cpp @@ -5,6 +5,7 @@ #include "auxpow.h" #include "chainparams.h" #include "coins.h" +#include "dogecoin.h" #include "main.h" #include "uint256.h" #include "primitives/block.h" @@ -110,7 +111,7 @@ public: CAuxpowBuilder::CAuxpowBuilder(int baseVersion, int chainId) : auxpowChainIndex(-1) { - parentBlock.nVersion.SetBaseVersion(baseVersion); + parentBlock.nVersion = baseVersion; parentBlock.nVersion.SetChainId(chainId); } @@ -330,7 +331,7 @@ mineBlock(CBlockHeader& block, bool ok, int nBits = -1) block.nNonce = 0; while (true) { - const bool nowOk = (UintToArith256(block.GetHash()) <= target); + const bool nowOk = (UintToArith256(block.GetPoWHash()) <= target); if ((ok && nowOk) || (!ok && !nowOk)) break; @@ -338,9 +339,9 @@ mineBlock(CBlockHeader& block, bool ok, int nBits = -1) } if (ok) - BOOST_CHECK(CheckProofOfWork(block.GetHash(), nBits, Params().GetConsensus())); + BOOST_CHECK(CheckProofOfWork(block.GetPoWHash(), nBits, Params().GetConsensus())); else - BOOST_CHECK(!CheckProofOfWork(block.GetHash(), nBits, Params().GetConsensus())); + BOOST_CHECK(!CheckProofOfWork(block.GetPoWHash(), nBits, Params().GetConsensus())); } BOOST_AUTO_TEST_CASE(auxpow_pow) @@ -357,20 +358,22 @@ BOOST_AUTO_TEST_CASE(auxpow_pow) block.nVersion.SetGenesisVersion(1); mineBlock(block, true); - BOOST_CHECK(CheckProofOfWork(block, params)); + BOOST_CHECK(CheckAuxPowProofOfWork(block, params)); - block.nVersion.SetGenesisVersion(2); + // Dogecoin block version 2 can be both AuxPoW and regular, so test 3 + + block.nVersion.SetGenesisVersion(3); mineBlock(block, true); - BOOST_CHECK(!CheckProofOfWork(block, params)); + BOOST_CHECK(!CheckAuxPowProofOfWork(block, params)); - block.nVersion.SetBaseVersion(2); + block.nVersion = 2; block.nVersion.SetChainId(params.nAuxpowChainId); mineBlock(block, true); - BOOST_CHECK(CheckProofOfWork(block, params)); + BOOST_CHECK(CheckAuxPowProofOfWork(block, params)); block.nVersion.SetChainId(params.nAuxpowChainId + 1); mineBlock(block, true); - BOOST_CHECK(!CheckProofOfWork(block, params)); + BOOST_CHECK(!CheckAuxPowProofOfWork(block, params)); /* Check the case when the block does not have auxpow (this is true right now). */ @@ -378,13 +381,13 @@ BOOST_AUTO_TEST_CASE(auxpow_pow) block.nVersion.SetChainId(params.nAuxpowChainId); block.nVersion.SetAuxpow(true); mineBlock(block, true); - BOOST_CHECK(!CheckProofOfWork(block, params)); + BOOST_CHECK(!CheckAuxPowProofOfWork(block, params)); block.nVersion.SetAuxpow(false); mineBlock(block, true); - BOOST_CHECK(CheckProofOfWork(block, params)); + BOOST_CHECK(CheckAuxPowProofOfWork(block, params)); mineBlock(block, false); - BOOST_CHECK(!CheckProofOfWork(block, params)); + BOOST_CHECK(!CheckAuxPowProofOfWork(block, params)); /* ****************************************** */ /* Check the case that the block has auxpow. */ @@ -404,10 +407,10 @@ BOOST_AUTO_TEST_CASE(auxpow_pow) builder.setCoinbase(CScript() << data); mineBlock(builder.parentBlock, false, block.nBits); block.SetAuxpow(new CAuxPow(builder.get())); - BOOST_CHECK(!CheckProofOfWork(block, params)); + BOOST_CHECK(!CheckAuxPowProofOfWork(block, params)); mineBlock(builder.parentBlock, true, block.nBits); block.SetAuxpow(new CAuxPow(builder.get())); - BOOST_CHECK(CheckProofOfWork(block, params)); + BOOST_CHECK(CheckAuxPowProofOfWork(block, params)); /* Mismatch between auxpow being present and block.nVersion. Note that block.SetAuxpow sets also the version and that we want to ensure @@ -423,7 +426,7 @@ BOOST_AUTO_TEST_CASE(auxpow_pow) BOOST_CHECK(hashAux != block.GetHash()); block.nVersion.SetAuxpow(false); BOOST_CHECK(hashAux == block.GetHash()); - BOOST_CHECK(!CheckProofOfWork(block, params)); + BOOST_CHECK(!CheckAuxPowProofOfWork(block, params)); /* Modifying the block invalidates the PoW. */ block.nVersion.SetAuxpow(true); @@ -432,9 +435,9 @@ BOOST_AUTO_TEST_CASE(auxpow_pow) builder.setCoinbase(CScript() << data); mineBlock(builder.parentBlock, true, block.nBits); block.SetAuxpow(new CAuxPow(builder.get())); - BOOST_CHECK(CheckProofOfWork(block, params)); + BOOST_CHECK(CheckAuxPowProofOfWork(block, params)); tamperWith(block.hashMerkleRoot); - BOOST_CHECK(!CheckProofOfWork(block, params)); + BOOST_CHECK(!CheckAuxPowProofOfWork(block, params)); } /* ************************************************************************** */ |