test: roundtrip wallet backwards compat downgrade

Test that old nodes don't mess up new wallets by loading a downgraded
wallet in master again.
This commit is contained in:
Andrew Chow 2023-07-03 22:51:09 -04:00
parent bbf43c63b9
commit afd9a673c4

View file

@ -226,8 +226,10 @@ class BackwardsCompatibilityTest(BitcoinTestFramework):
if self.major_version_less_than(node, 22) and wallet_name == "w1" and self.options.descriptors:
# Descriptor wallets created after 0.21 have taproot descriptors which 0.21 does not support, tested below
continue
node.loadwallet(wallet_name)
wallet = node.get_wallet_rpc(wallet_name)
# Also try to reopen on master after opening on old
for n in [node, node_master]:
n.loadwallet(wallet_name)
wallet = n.get_wallet_rpc(wallet_name)
info = wallet.getwalletinfo()
if wallet_name == "w1":
assert info['private_keys_enabled'] == True
@ -251,6 +253,15 @@ class BackwardsCompatibilityTest(BitcoinTestFramework):
assert info['private_keys_enabled'] == True
assert info['keypoolsize'] == 0
# Copy back to master
wallet.unloadwallet()
if n == node:
shutil.rmtree(node_master.wallets_path / wallet_name)
shutil.copytree(
n.wallets_path / wallet_name,
node_master.wallets_path / wallet_name,
)
# Check that descriptor wallets don't work on legacy only nodes
if self.options.descriptors:
self.log.info("Test descriptor wallet incompatibility on:")