Don't assert(foo()) where foo has side effects

This commit is contained in:
practicalswift 2018-06-26 17:19:31 +02:00
parent 0212187fc6
commit 6ad0328f1c
5 changed files with 14 additions and 8 deletions

View file

@ -41,7 +41,8 @@ static CTxIn MineBlock(const CScript& coinbase_scriptPubKey)
auto block = PrepareBlock(coinbase_scriptPubKey); auto block = PrepareBlock(coinbase_scriptPubKey);
while (!CheckProofOfWork(block->GetHash(), block->nBits, Params().GetConsensus())) { while (!CheckProofOfWork(block->GetHash(), block->nBits, Params().GetConsensus())) {
assert(++block->nNonce); ++block->nNonce;
assert(block->nNonce);
} }
bool processed{ProcessNewBlock(Params(), block, true, nullptr)}; bool processed{ProcessNewBlock(Params(), block, true, nullptr)};

View file

@ -28,7 +28,8 @@ static void DeserializeBlockTest(benchmark::State& state)
while (state.KeepRunning()) { while (state.KeepRunning()) {
CBlock block; CBlock block;
stream >> block; stream >> block;
assert(stream.Rewind(sizeof(block_bench::block413567))); bool rewound = stream.Rewind(sizeof(block_bench::block413567));
assert(rewound);
} }
} }
@ -45,10 +46,12 @@ static void DeserializeAndCheckBlockTest(benchmark::State& state)
while (state.KeepRunning()) { while (state.KeepRunning()) {
CBlock block; // Note that CBlock caches its checked state, so we need to recreate it here CBlock block; // Note that CBlock caches its checked state, so we need to recreate it here
stream >> block; stream >> block;
assert(stream.Rewind(sizeof(block_bench::block413567))); bool rewound = stream.Rewind(sizeof(block_bench::block413567));
assert(rewound);
CValidationState validationState; CValidationState validationState;
assert(CheckBlock(block, validationState, chainParams->GetConsensus())); bool checked = CheckBlock(block, validationState, chainParams->GetConsensus());
assert(checked);
} }
} }

View file

@ -240,8 +240,9 @@ bool StartHTTPRPC()
// ifdef can be removed once we switch to better endpoint support and API versioning // ifdef can be removed once we switch to better endpoint support and API versioning
RegisterHTTPHandler("/wallet/", false, HTTPReq_JSONRPC); RegisterHTTPHandler("/wallet/", false, HTTPReq_JSONRPC);
#endif #endif
assert(EventBase()); struct event_base* eventBase = EventBase();
httpRPCTimerInterface = MakeUnique<HTTPRPCTimerInterface>(EventBase()); assert(eventBase);
httpRPCTimerInterface = MakeUnique<HTTPRPCTimerInterface>(eventBase);
RPCSetTimerInterface(httpRPCTimerInterface.get()); RPCSetTimerInterface(httpRPCTimerInterface.get());
return true; return true;
} }

View file

@ -424,7 +424,8 @@ bool IsSolvable(const SigningProvider& provider, const CScript& script)
static_assert(STANDARD_SCRIPT_VERIFY_FLAGS & SCRIPT_VERIFY_WITNESS_PUBKEYTYPE, "IsSolvable requires standard script flags to include WITNESS_PUBKEYTYPE"); static_assert(STANDARD_SCRIPT_VERIFY_FLAGS & SCRIPT_VERIFY_WITNESS_PUBKEYTYPE, "IsSolvable requires standard script flags to include WITNESS_PUBKEYTYPE");
if (ProduceSignature(provider, DUMMY_SIGNATURE_CREATOR, script, sigs)) { if (ProduceSignature(provider, DUMMY_SIGNATURE_CREATOR, script, sigs)) {
// VerifyScript check is just defensive, and should never fail. // VerifyScript check is just defensive, and should never fail.
assert(VerifyScript(sigs.scriptSig, script, &sigs.scriptWitness, STANDARD_SCRIPT_VERIFY_FLAGS, DUMMY_CHECKER)); bool verified = VerifyScript(sigs.scriptSig, script, &sigs.scriptWitness, STANDARD_SCRIPT_VERIFY_FLAGS, DUMMY_CHECKER);
assert(verified);
return true; return true;
} }
return false; return false;

View file

@ -30,7 +30,7 @@ BOOST_FIXTURE_TEST_CASE(tx_mempool_reject_coinbase, TestChain100Setup)
coinbaseTx.vout[0].nValue = 1 * CENT; coinbaseTx.vout[0].nValue = 1 * CENT;
coinbaseTx.vout[0].scriptPubKey = scriptPubKey; coinbaseTx.vout[0].scriptPubKey = scriptPubKey;
assert(CTransaction(coinbaseTx).IsCoinBase()); BOOST_CHECK(CTransaction(coinbaseTx).IsCoinBase());
CValidationState state; CValidationState state;