[test] Add getblockchaininfo functional test

This commit is contained in:
João Barbosa 2017-09-20 00:45:39 +01:00
parent fd8f45fe88
commit f6ffb14367

View File

@ -33,9 +33,10 @@ from test_framework.util import (
class BlockchainTest(BitcoinTestFramework): class BlockchainTest(BitcoinTestFramework):
def set_test_params(self): def set_test_params(self):
self.num_nodes = 1 self.num_nodes = 1
self.extra_args = [['-stopatheight=207']] self.extra_args = [['-stopatheight=207', '-prune=1']]
def run_test(self): def run_test(self):
self._test_getblockchaininfo()
self._test_getchaintxstats() self._test_getchaintxstats()
self._test_gettxoutsetinfo() self._test_gettxoutsetinfo()
self._test_getblockheader() self._test_getblockheader()
@ -44,6 +45,33 @@ class BlockchainTest(BitcoinTestFramework):
self._test_stopatheight() self._test_stopatheight()
assert self.nodes[0].verifychain(4, 0) assert self.nodes[0].verifychain(4, 0)
def _test_getblockchaininfo(self):
self.log.info("Test getblockchaininfo")
keys = [
'bestblockhash',
'bip9_softforks',
'blocks',
'chain',
'chainwork',
'difficulty',
'headers',
'mediantime',
'pruned',
'softforks',
'verificationprogress',
]
res = self.nodes[0].getblockchaininfo()
# result should have pruneheight and default keys if pruning is enabled
assert_equal(sorted(res.keys()), sorted(['pruneheight'] + keys))
# pruneheight should be greater or equal to 0
assert res['pruneheight'] >= 0
self.restart_node(0, ['-stopatheight=207'])
res = self.nodes[0].getblockchaininfo()
# should have exact keys
assert_equal(sorted(res.keys()), keys)
def _test_getchaintxstats(self): def _test_getchaintxstats(self):
chaintxstats = self.nodes[0].getchaintxstats(1) chaintxstats = self.nodes[0].getchaintxstats(1)
# 200 txs plus genesis tx # 200 txs plus genesis tx