This PR adds test coverage for migrating legacy Bitcoin Core wallets from v0.14.3 (released in 2017) to the descriptor wallet format. The test validates that users can safely upgrade their wallets while preserving all funds, transaction history, and addresses.
This test was originally developed on top of #32977, as it was requested in reviews. However, since it also increases test coverage, it can be merged independently.
The test covers two wallet migration scenarios:
- Non-HD Wallet Migration - Tests migration of non-HD wallets (created with
-usehd=0) - Single Chain HD Wallet Migration - Tests migration of HD wallets from v0.14.3 (
VERSION_HD_BASE)
The node v0.14.3 cannot be synced using the normal test framework helpers because it does not have the syncwithvalidationinterfacequeue RPC, so the test uses dumb_sync_blocks to submit blocks from the ancient node to the modern node before migrating the wallet.
Each scenario uses its own dedicated old/new node pair, which keeps the setup isolated and makes this testing best managed in a separate file rather than in the existing migration test files.
On the Windows cross-built CI job, this test is excluded from the main functional test runner and re-run sequentially in an ASCII-only tmpdir, because the v0.14.3 binary cannot handle non-ASCII characters in the temporary directory path.