Skip to content

Commit af6cffa

Browse files
committed
Merge bitcoin/bitcoin#32350: test: Slim down previous releases bdb check
fa58f40 test: Slim down previous releases bdb check (MarcoFalke) Pull request description: The check iterates over several previous BDB-only releases to check that descriptor wallets are considered "corrupt" when loading. It is unclear why this needs to be done for more than one release. Avoid the confusion by removing the unused releases from the test and from the download script. ACKs for top commit: achow101: ACK fa58f40 rkrux: ACK fa58f40 Tree-SHA512: 8084392481bfe1fba9b80bb865ffbdfa454e9e6e14e02c39fa3f61c1a596b1def2c531c5da1c7566e5fddb77ac7e56f19feabaaf9b5af043fa6c230d9e2370b5
2 parents 33e6538 + fa58f40 commit af6cffa

File tree

2 files changed

+11
-46
lines changed

2 files changed

+11
-46
lines changed

test/functional/wallet_backwards_compatibility.py

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
class BackwardsCompatibilityTest(BitcoinTestFramework):
3131
def set_test_params(self):
3232
self.setup_clean_chain = True
33-
self.num_nodes = 10
33+
self.num_nodes = 8
3434
# Add new version after each release:
3535
self.extra_args = [
3636
["-addresstype=bech32", "[email protected]"], # Pre-release: use to mine blocks. noban for immediate tx relay
@@ -41,8 +41,6 @@ def set_test_params(self):
4141
["-nowallet", "-walletrbf=1", "-addresstype=bech32", "[email protected]"], # v22.0
4242
["-nowallet", "-walletrbf=1", "-addresstype=bech32", "[email protected]"], # v0.21.0
4343
["-nowallet", "-walletrbf=1", "-addresstype=bech32", "[email protected]"], # v0.20.1
44-
["-nowallet", "-walletrbf=1", "-addresstype=bech32", "[email protected]"], # v0.19.1
45-
["-nowallet", "-walletrbf=1", "-addresstype=bech32", "-whitelist=127.0.0.1"], # v0.18.1
4644
]
4745
self.wallet_names = [self.default_wallet_name]
4846

@@ -60,8 +58,6 @@ def setup_nodes(self):
6058
220000,
6159
210000,
6260
200100,
63-
190100,
64-
180100,
6561
])
6662

6763
self.start_nodes()
@@ -88,18 +84,16 @@ def major_version_at_least(self, node, major):
8884
def run_test(self):
8985
node_miner = self.nodes[0]
9086
node_master = self.nodes[1]
91-
node_v21 = self.nodes[self.num_nodes - 4]
92-
node_v18 = self.nodes[self.num_nodes - 1]
87+
node_v21 = self.nodes[self.num_nodes - 2]
88+
node_v20 = self.nodes[self.num_nodes - 1] # bdb only
9389

9490
legacy_nodes = self.nodes[2:] # Nodes that support legacy wallets
95-
legacy_only_nodes = self.nodes[-3:] # Nodes that only support legacy wallets
96-
descriptors_nodes = self.nodes[2:-3] # Nodes that support descriptor wallets
91+
descriptors_nodes = self.nodes[2:-1] # Nodes that support descriptor wallets
9792

9893
self.generatetoaddress(node_miner, COINBASE_MATURITY + 1, node_miner.getnewaddress())
9994

10095
# Sanity check the test framework:
101-
res = node_v18.getblockchaininfo()
102-
assert_equal(res['blocks'], COINBASE_MATURITY + 1)
96+
assert_equal(node_v20.getblockchaininfo()["blocks"], COINBASE_MATURITY + 1)
10397

10498
self.log.info("Test wallet backwards compatibility...")
10599
# Create a number of wallets and open them in older versions:
@@ -206,13 +200,11 @@ def run_test(self):
206200
)
207201

208202
# Check that descriptor wallets don't work on legacy only nodes
209-
self.log.info("Test descriptor wallet incompatibility on:")
210-
for node in legacy_only_nodes:
211-
self.log.info(f"- {node.version}")
212-
# Descriptor wallets appear to be corrupted wallets to old software
213-
assert self.major_version_less_than(node, 21)
214-
for wallet_name in ["w1", "w2", "w3"]:
215-
assert_raises_rpc_error(-4, "Wallet file verification failed: wallet.dat corrupt, salvage failed", node.loadwallet, wallet_name)
203+
self.log.info("Test descriptor wallet incompatibility on v0.20")
204+
# Descriptor wallets appear to be corrupted wallets to old software
205+
assert self.major_version_equals(node_v20, 20)
206+
for wallet_name in ["w1", "w2", "w3"]:
207+
assert_raises_rpc_error(-4, "Wallet file verification failed: wallet.dat corrupt, salvage failed", node_v20.loadwallet, wallet_name)
216208

217209
# w1 cannot be opened by 0.21 since it contains a taproot descriptor
218210
self.log.info("Test that 0.21 cannot open wallet containing tr() descriptors")

test/get_previous_releases.py

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -24,34 +24,7 @@
2424
"d86fc90824a85c38b25c8488115178d5785dbc975f5ff674f9f5716bc8ad6e65": {"tag": "v0.14.3", "tarball": "bitcoin-0.14.3-arm-linux-gnueabihf.tar.gz"},
2525
"1b0a7408c050e3d09a8be8e21e183ef7ee570385dc41216698cc3ab392a484e7": {"tag": "v0.14.3", "tarball": "bitcoin-0.14.3-osx64.tar.gz"},
2626
"706e0472dbc933ed2757650d54cbcd780fd3829ebf8f609b32780c7eedebdbc9": {"tag": "v0.14.3", "tarball": "bitcoin-0.14.3-x86_64-linux-gnu.tar.gz"},
27-
#
28-
"d40f18b4e43c6e6370ef7db9131f584fbb137276ec2e3dba67a4b267f81cb644": {"tag": "v0.15.2", "tarball": "bitcoin-0.15.2-aarch64-linux-gnu.tar.gz"},
29-
"54fb877a148a6ad189a1e1ab1ff8b11181e58ff2aaf430da55b3fd46ae549a6b": {"tag": "v0.15.2", "tarball": "bitcoin-0.15.2-arm-linux-gnueabihf.tar.gz"},
30-
"87e9340ff3d382d543b2b69112376077f0c8b4f7450d372e83b68f5a1e22b2df": {"tag": "v0.15.2", "tarball": "bitcoin-0.15.2-osx64.tar.gz"},
31-
"566be44190fd76daa01f13d428939dadfb8e3daacefc8fa17f433cad28f73bd5": {"tag": "v0.15.2", "tarball": "bitcoin-0.15.2-x86_64-linux-gnu.tar.gz"},
32-
#
33-
"0768c6c15caffbaca6524824c9563b42c24f70633c681c2744649158aa3fd484": {"tag": "v0.16.3", "tarball": "bitcoin-0.16.3-aarch64-linux-gnu.tar.gz"},
34-
"fb2818069854a6ad20ea03b28b55dbd35d8b1f7d453e90b83eace5d0098a2a87": {"tag": "v0.16.3", "tarball": "bitcoin-0.16.3-arm-linux-gnueabihf.tar.gz"},
35-
"78c3bff3b619a19aed575961ea43cc9e142959218835cf51aede7f0b764fc25d": {"tag": "v0.16.3", "tarball": "bitcoin-0.16.3-osx64.tar.gz"},
36-
"5d422a9d544742bc0df12427383f9c2517433ce7b58cf672b9a9b17c2ef51e4f": {"tag": "v0.16.3", "tarball": "bitcoin-0.16.3-x86_64-linux-gnu.tar.gz"},
37-
#
38-
"5a6b35d1a348a402f2d2d6ab5aed653a1a1f13bc63aaaf51605e3501b0733b7a": {"tag": "v0.17.2", "tarball": "bitcoin-0.17.2-aarch64-linux-gnu.tar.gz"},
39-
"d1913a5d19c8e8da4a67d1bd5205d03c8614dfd2e02bba2fe3087476643a729e": {"tag": "v0.17.2", "tarball": "bitcoin-0.17.2-arm-linux-gnueabihf.tar.gz"},
40-
"a783ba20706dbfd5b47fbedf42165fce70fbbc7d78003305d964f6b3da14887f": {"tag": "v0.17.2", "tarball": "bitcoin-0.17.2-osx64.tar.gz"},
41-
"943f9362b9f11130177839116f48f809d83478b4c28591d486ee9a7e35179da6": {"tag": "v0.17.2", "tarball": "bitcoin-0.17.2-x86_64-linux-gnu.tar.gz"},
42-
#
43-
"88f343af72803b851c7da13874cc5525026b0b55e63e1b5e1298390c4688adc6": {"tag": "v0.18.1", "tarball": "bitcoin-0.18.1-aarch64-linux-gnu.tar.gz"},
44-
"cc7d483e4b20c5dabd4dcaf304965214cf4934bcc029ca99cbc9af00d3771a1f": {"tag": "v0.18.1", "tarball": "bitcoin-0.18.1-arm-linux-gnueabihf.tar.gz"},
45-
"b7bbcee7a7540f711b171d6981f939ca8482005fde22689bc016596d80548bb1": {"tag": "v0.18.1", "tarball": "bitcoin-0.18.1-osx64.tar.gz"},
46-
"425ee5ec631ae8da71ebc1c3f5c0269c627cf459379b9b030f047107a28e3ef8": {"tag": "v0.18.1", "tarball": "bitcoin-0.18.1-riscv64-linux-gnu.tar.gz"},
47-
"600d1db5e751fa85903e935a01a74f5cc57e1e7473c15fd3e17ed21e202cfe5a": {"tag": "v0.18.1", "tarball": "bitcoin-0.18.1-x86_64-linux-gnu.tar.gz"},
48-
#
49-
"3a80431717842672df682bdb619e66523b59541483297772a7969413be3502ff": {"tag": "v0.19.1", "tarball": "bitcoin-0.19.1-aarch64-linux-gnu.tar.gz"},
50-
"657f28213823d240dd3324d14829702f9ad6f0710f8bdd1c379cb3c447197f48": {"tag": "v0.19.1", "tarball": "bitcoin-0.19.1-arm-linux-gnueabihf.tar.gz"},
51-
"1ae1b87de26487075cd2fd22e0d4ead87d969bd55c44f2f1d873ecdc6147ebb3": {"tag": "v0.19.1", "tarball": "bitcoin-0.19.1-osx64.tar.gz"},
52-
"aa7a9563b48aa79252c8e7b6a41c07a5441bd9f14c5e4562cc72720ea6cb0ee5": {"tag": "v0.19.1", "tarball": "bitcoin-0.19.1-riscv64-linux-gnu.tar.gz"},
53-
"5fcac9416e486d4960e1a946145566350ca670f9aaba99de6542080851122e4c": {"tag": "v0.19.1", "tarball": "bitcoin-0.19.1-x86_64-linux-gnu.tar.gz"},
54-
#
27+
5528
"60c93e3462c303eb080be7cf623f1a7684b37fd47a018ad3848bc23e13c84e1c": {"tag": "v0.20.1", "tarball": "bitcoin-0.20.1-aarch64-linux-gnu.tar.gz"},
5629
"55b577e0fb306fb429d4be6c9316607753e8543e5946b542d75d876a2f08654c": {"tag": "v0.20.1", "tarball": "bitcoin-0.20.1-arm-linux-gnueabihf.tar.gz"},
5730
"b9024dde373ea7dad707363e07ec7e265383204127539ae0c234bff3a61da0d1": {"tag": "v0.20.1", "tarball": "bitcoin-0.20.1-osx64.tar.gz"},

0 commit comments

Comments
 (0)