Changeset View
Changeset View
Standalone View
Standalone View
src/bench/duplicate_inputs.cpp
Show First 20 Lines • Show All 51 Lines • ▼ Show 20 Lines | static void DuplicateInputs(benchmark::State &state) { | ||||
naughtyTx.vin.emplace_back(naughtyTx.vin.back()); | naughtyTx.vin.emplace_back(naughtyTx.vin.back()); | ||||
block.vtx.push_back(MakeTransactionRef(std::move(coinbaseTx))); | block.vtx.push_back(MakeTransactionRef(std::move(coinbaseTx))); | ||||
block.vtx.push_back(MakeTransactionRef(std::move(naughtyTx))); | block.vtx.push_back(MakeTransactionRef(std::move(naughtyTx))); | ||||
block.hashMerkleRoot = BlockMerkleRoot(block); | block.hashMerkleRoot = BlockMerkleRoot(block); | ||||
while (state.KeepRunning()) { | while (state.KeepRunning()) { | ||||
CValidationState cvstate{}; | BlockValidationState cvstate{}; | ||||
assert(!CheckBlock(block, cvstate, chainparams.GetConsensus(), | assert(!CheckBlock(block, cvstate, chainparams.GetConsensus(), | ||||
BlockValidationOptions(GetConfig()) | BlockValidationOptions(GetConfig()) | ||||
.withCheckPoW(false) | .withCheckPoW(false) | ||||
.withCheckMerkleRoot(false))); | .withCheckMerkleRoot(false))); | ||||
assert(cvstate.GetRejectReason() == "bad-txns-inputs-duplicate"); | assert(cvstate.GetRejectReason() == "bad-txns-inputs-duplicate"); | ||||
} | } | ||||
} | } | ||||
BENCHMARK(DuplicateInputs, 10); | BENCHMARK(DuplicateInputs, 10); |