[qa] backport: Test for duplicate inputs within a transaction

This commit is contained in:
Suhas Daftuar 2018-09-17 16:15:02 -04:00 committed by Matt Corallo
parent 833180f538
commit 0d49c82edd

View file

@ -81,6 +81,16 @@ class InvalidBlockRequestTest(BitcoinTestFramework):
node.p2p.send_blocks_and_test([block2], node, False, False, 16, b'bad-txns-duplicate') node.p2p.send_blocks_and_test([block2], node, False, False, 16, b'bad-txns-duplicate')
# Check transactions for duplicate inputs
self.log.info("Test duplicate input block.")
block2_orig.vtx[2].vin.append(block2_orig.vtx[2].vin[0])
block2_orig.vtx[2].rehash()
block2_orig.hashMerkleRoot = block2_orig.calc_merkle_root()
block2_orig.rehash()
block2_orig.solve()
node.p2p.send_blocks_and_test([block2_orig], node, success=False, request_block=False, reject_reason=b'bad-txns-inputs-duplicate')
self.log.info("Test very broken block.") self.log.info("Test very broken block.")
block3 = create_block(tip, create_coinbase(height), block_time) block3 = create_block(tip, create_coinbase(height), block_time)