[tests] add test for submit block

This commit is contained in:
John Newbery 2017-04-11 16:42:35 -04:00
parent 9bf0d80ab0
commit b29dd41f0f

View File

@ -53,12 +53,17 @@ class GetBlockTemplateProposalTest(BitcoinTestFramework):
self.log.info("getblocktemplate: Test valid block") self.log.info("getblocktemplate: Test valid block")
assert_template(node, block, None) assert_template(node, block, None)
self.log.info("submitblock: Test block decode failure")
assert_raises_jsonrpc(-22, "Block decode failed", node.submitblock, b2x(block.serialize()[:-15]))
self.log.info("getblocktemplate: Test bad input hash for coinbase transaction") self.log.info("getblocktemplate: Test bad input hash for coinbase transaction")
bad_block = copy.deepcopy(block) bad_block = copy.deepcopy(block)
bad_block.vtx[0].vin[0].prevout.hash += 1 bad_block.vtx[0].vin[0].prevout.hash += 1
bad_block.vtx[0].rehash() bad_block.vtx[0].rehash()
assert_template(node, bad_block, 'bad-cb-missing') assert_template(node, bad_block, 'bad-cb-missing')
self.log.info("submitblock: Test invalid coinbase transaction")
assert_raises_jsonrpc(-22, "Block does not start with a coinbase", node.submitblock, b2x(bad_block.serialize()))
self.log.info("getblocktemplate: Test truncated final transaction") self.log.info("getblocktemplate: Test truncated final transaction")
assert_raises_jsonrpc(-22, "Block decode failed", node.getblocktemplate, {'data': b2x(block.serialize()[:-1]), 'mode': 'proposal'}) assert_raises_jsonrpc(-22, "Block decode failed", node.getblocktemplate, {'data': b2x(block.serialize()[:-1]), 'mode': 'proposal'})