Skip to content

Commit b769cd1

Browse files
committed
[test] add v0.17.1 wallet upgrade test
1 parent 9d9390d commit b769cd1

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

test/functional/feature_backwards_compatibility.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import shutil
2020

2121
from test_framework.test_framework import BitcoinTestFramework, SkipTest
22+
from test_framework.descriptors import descsum_create
2223

2324
from test_framework.util import (
2425
assert_equal,
@@ -240,6 +241,28 @@ def run_test(self):
240241
self.stop_node(self.num_nodes - 1)
241242
node_v17.assert_start_raises_init_error(["-wallet=w3_v18"], "Error: Error loading w3_v18: Wallet requires newer version of Bitcoin Core")
242243
node_v17.assert_start_raises_init_error(["-wallet=w3"], "Error: Error loading w3: Wallet requires newer version of Bitcoin Core")
244+
self.start_node(self.num_nodes - 1)
245+
246+
self.log.info("Test wallet upgrade path...")
247+
# u1: regular wallet, created with v0.17
248+
node_v17.createwallet(wallet_name="u1_v17")
249+
wallet = node_v17.get_wallet_rpc("u1_v17")
250+
address = wallet.getnewaddress("bech32")
251+
info = wallet.getaddressinfo(address)
252+
hdkeypath = info["hdkeypath"]
253+
pubkey = info["pubkey"]
254+
255+
# Copy the wallet to the last Bitcoin Core version and open it:
256+
node_v17.unloadwallet("u1_v17")
257+
shutil.copytree(
258+
os.path.join(node_v17_wallets_dir, "u1_v17"),
259+
os.path.join(node_master_wallets_dir, "u1_v17")
260+
)
261+
node_master.loadwallet("u1_v17")
262+
wallet = node_master.get_wallet_rpc("u1_v17")
263+
info = wallet.getaddressinfo(address)
264+
descriptor = "wpkh([" + info["hdmasterfingerprint"] + hdkeypath[1:] + "]" + pubkey + ")"
265+
assert_equal(info["desc"], descsum_create(descriptor))
243266

244267
if __name__ == '__main__':
245268
BackwardsCompatibilityTest().main()

0 commit comments

Comments
 (0)