test: check wallet rescan properly in feature_pruning

This commit is contained in:
brunoerg
2025-12-31 15:11:16 -03:00
parent 9b57c8d2bd
commit 8fb5e5f41d

View File

@@ -346,16 +346,22 @@ class PruneTest(BitcoinTestFramework):
self.log.info("Success")
def wallet_test(self):
def test_wallet_rescan(self):
# check that the pruning node's wallet is still in good shape
self.log.info("Stop and start pruning node to trigger wallet rescan")
self.restart_node(2, extra_args=["-prune=550"])
self.log.info("Success")
wallet_info = self.nodes[2].getwalletinfo()
self.wait_until(lambda: wallet_info["scanning"] == False)
self.wait_until(lambda: wallet_info["lastprocessedblock"]["height"] == self.nodes[2].getblockcount())
# check that wallet loads successfully when restarting a pruned node after IBD.
# this was reported to fail in #7494.
self.restart_node(5, extra_args=["-prune=550", "-blockfilterindex=1"]) # restart to trigger rescan
self.log.info("Success")
wallet_info = self.nodes[5].getwalletinfo()
self.wait_until(lambda: wallet_info["scanning"] == False)
self.wait_until(lambda: wallet_info["lastprocessedblock"]["height"] == self.nodes[0].getblockcount())
def run_test(self):
self.log.info("Warning! This test requires 4GB of disk space")
@@ -469,7 +475,7 @@ class PruneTest(BitcoinTestFramework):
if self.is_wallet_compiled():
self.log.info("Test wallet re-scan")
self.wallet_test()
self.test_wallet_rescan()
self.log.info("Test it's not possible to rescan beyond pruned data")
self.test_rescan_blockchain()