mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-12-14 06:32:33 +01:00
[rpc] getblockchaininfo: add size_on_disk, prune_target_size, automatic_pruning
Fix pruneheight help text. Move fPruneMode block to match output ordering with help text. Add functional tests for new fields in getblockchaininfo.
This commit is contained in:
@@ -24,6 +24,8 @@ import subprocess
|
||||
from test_framework.test_framework import BitcoinTestFramework
|
||||
from test_framework.util import (
|
||||
assert_equal,
|
||||
assert_greater_than,
|
||||
assert_greater_than_or_equal,
|
||||
assert_raises,
|
||||
assert_raises_jsonrpc,
|
||||
assert_is_hex_string,
|
||||
@@ -58,21 +60,43 @@ class BlockchainTest(BitcoinTestFramework):
|
||||
'headers',
|
||||
'mediantime',
|
||||
'pruned',
|
||||
'size_on_disk',
|
||||
'softforks',
|
||||
'verificationprogress',
|
||||
'warnings',
|
||||
]
|
||||
res = self.nodes[0].getblockchaininfo()
|
||||
# result should have pruneheight and default keys if pruning is enabled
|
||||
assert_equal(sorted(res.keys()), sorted(['pruneheight'] + keys))
|
||||
|
||||
# result should have these additional pruning keys if manual pruning is enabled
|
||||
assert_equal(sorted(res.keys()), sorted(['pruneheight', 'automatic_pruning'] + keys))
|
||||
|
||||
# size_on_disk should be > 0
|
||||
assert_greater_than(res['size_on_disk'], 0)
|
||||
|
||||
# pruneheight should be greater or equal to 0
|
||||
assert res['pruneheight'] >= 0
|
||||
assert_greater_than_or_equal(res['pruneheight'], 0)
|
||||
|
||||
# check other pruning fields given that prune=1
|
||||
assert res['pruned']
|
||||
assert not res['automatic_pruning']
|
||||
|
||||
self.restart_node(0, ['-stopatheight=207'])
|
||||
res = self.nodes[0].getblockchaininfo()
|
||||
# should have exact keys
|
||||
assert_equal(sorted(res.keys()), keys)
|
||||
|
||||
self.restart_node(0, ['-stopatheight=207', '-prune=550'])
|
||||
res = self.nodes[0].getblockchaininfo()
|
||||
# result should have these additional pruning keys if prune=550
|
||||
assert_equal(sorted(res.keys()), sorted(['pruneheight', 'automatic_pruning', 'prune_target_size'] + keys))
|
||||
|
||||
# check related fields
|
||||
assert res['pruned']
|
||||
assert_equal(res['pruneheight'], 0)
|
||||
assert res['automatic_pruning']
|
||||
assert_equal(res['prune_target_size'], 576716800)
|
||||
assert_greater_than(res['size_on_disk'], 0)
|
||||
|
||||
def _test_getchaintxstats(self):
|
||||
chaintxstats = self.nodes[0].getchaintxstats(1)
|
||||
# 200 txs plus genesis tx
|
||||
|
||||
Reference in New Issue
Block a user