mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-19 01:42:58 +01:00
test: add coverage to getblock and getblockstats
also removes an unnecessary newline. Co-authored-by: tdb3 <106488469+tdb3@users.noreply.github.com>
This commit is contained in:
parent
5290cbd585
commit
69fc867ea1
@ -633,6 +633,19 @@ class BlockchainTest(BitcoinTestFramework):
|
||||
assert 'previousblockhash' not in node.getblock(node.getblockhash(0))
|
||||
assert 'nextblockhash' not in node.getblock(node.getbestblockhash())
|
||||
|
||||
self.log.info("Test getblock when only header is known")
|
||||
current_height = node.getblock(node.getbestblockhash())['height']
|
||||
block_time = node.getblock(node.getbestblockhash())['time'] + 1
|
||||
block = create_block(int(blockhash, 16), create_coinbase(current_height + 1, nValue=100), block_time)
|
||||
block.solve()
|
||||
node.submitheader(block.serialize().hex())
|
||||
assert_raises_rpc_error(-1, "Block not available (not fully downloaded)", lambda: node.getblock(block.hash))
|
||||
|
||||
self.log.info("Test getblock when block is missing")
|
||||
move_block_file('blk00000.dat', 'blk00000.dat.bak')
|
||||
assert_raises_rpc_error(-1, "Block not found on disk", node.getblock, blockhash)
|
||||
move_block_file('blk00000.dat.bak', 'blk00000.dat')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
BlockchainTest(__file__).main()
|
||||
|
@ -114,7 +114,7 @@ class GetblockstatsTest(BitcoinTestFramework):
|
||||
assert_equal(stats[self.max_stat_pos]['height'], self.start_height + self.max_stat_pos)
|
||||
|
||||
for i in range(self.max_stat_pos+1):
|
||||
self.log.info('Checking block %d\n' % (i))
|
||||
self.log.info('Checking block %d' % (i))
|
||||
assert_equal(stats[i], self.expected_stats[i])
|
||||
|
||||
# Check selecting block by hash too
|
||||
@ -182,5 +182,16 @@ class GetblockstatsTest(BitcoinTestFramework):
|
||||
assert_equal(tip_stats["utxo_increase_actual"], 4)
|
||||
assert_equal(tip_stats["utxo_size_inc_actual"], 300)
|
||||
|
||||
self.log.info("Test when only header is known")
|
||||
block = self.generateblock(self.nodes[0], output="raw(55)", transactions=[], submit=False)
|
||||
self.nodes[0].submitheader(block["hex"])
|
||||
assert_raises_rpc_error(-1, "Block not available (not fully downloaded)", lambda: self.nodes[0].getblockstats(block['hash']))
|
||||
|
||||
self.log.info('Test when block is missing')
|
||||
(self.nodes[0].blocks_path / 'blk00000.dat').rename(self.nodes[0].blocks_path / 'blk00000.dat.backup')
|
||||
assert_raises_rpc_error(-1, 'Block not found on disk', self.nodes[0].getblockstats, hash_or_height=1)
|
||||
(self.nodes[0].blocks_path / 'blk00000.dat.backup').rename(self.nodes[0].blocks_path / 'blk00000.dat')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
GetblockstatsTest(__file__).main()
|
||||
|
Loading…
Reference in New Issue
Block a user