From 2c17232270d26c3fce3b937544ac4a5690ac74fb Mon Sep 17 00:00:00 2001 From: fanquake Date: Fri, 5 May 2023 15:56:21 +0100 Subject: [PATCH] Merge bitcoin/bitcoin#27554: test: Treat `bitcoin-wallet` binary in the same way as others f6d7636be4eb0b19878428906dd5e394df7d07a2 test: Treat `bitcoin-wallet` binary in the same way as others (Hennadii Stepanov) dda961cec5fef318c0b043a09367d14daa87f089 test, refactor: Add `set_binary_paths` function (Hennadii Stepanov) Pull request description: This PR makes the `bitcoin-wallet` binary path customizable in the same way how it can be done now with other ones, including `bitcoind`, `bitcoin-cli` and `bitcoin-util`. ACKs for top commit: stickies-v: re-ACK f6d7636be4eb0b19878428906dd5e394df7d07a2 Tree-SHA512: 480fae14c5440e530ba78a2be19eaaf642260070435e533fc7ab98ddcc2fcac7ad83f2c7e7c6706db3167e8391d7d4abf8784889796c218c2d5bba043144e787 --- .../test_framework/test_framework.py | 30 +++++++++++-------- test/functional/tool_wallet.py | 7 ++--- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/test/functional/test_framework/test_framework.py b/test/functional/test_framework/test_framework.py index a5227c26ddc8..d92aeabaf165 100755 --- a/test/functional/test_framework/test_framework.py +++ b/test/functional/test_framework/test_framework.py @@ -263,6 +263,23 @@ def parse_args(self): PortSeed.n = self.options.port_seed + def set_binary_paths(self): + """Update self.options with the paths of all binaries from environment variables or their default values""" + + binaries = { + "dashd": ("bitcoind", "BITCOIND"), + "dash-cli": ("bitcoincli", "BITCOINCLI"), + "dash-util": ("bitcoinutil", "BITCOINUTIL"), + "dash-wallet": ("bitcoinwallet", "BITCOINWALLET"), + } + for binary, [attribute_name, env_variable_name] in binaries.items(): + default_filename = os.path.join( + self.config["environment"]["BUILDDIR"], + "src", + binary + self.config["environment"]["EXEEXT"], + ) + setattr(self.options, attribute_name, os.getenv(env_variable_name, default=default_filename)) + def setup(self): """Call this method to start up the test framework object with options set.""" @@ -272,18 +289,7 @@ def setup(self): config = self.config - fname_bitcoind = os.path.join( - config["environment"]["BUILDDIR"], - "src", - "dashd" + config["environment"]["EXEEXT"], - ) - fname_bitcoincli = os.path.join( - config["environment"]["BUILDDIR"], - "src", - "dash-cli" + config["environment"]["EXEEXT"], - ) - self.options.bitcoind = os.getenv("BITCOIND", default=fname_bitcoind) - self.options.bitcoincli = os.getenv("BITCOINCLI", default=fname_bitcoincli) + self.set_binary_paths() self.extra_args_from_options = self.options.dashd_extra_args diff --git a/test/functional/tool_wallet.py b/test/functional/tool_wallet.py index 7f5b47bb6fec..e7f9d6293f34 100755 --- a/test/functional/tool_wallet.py +++ b/test/functional/tool_wallet.py @@ -28,12 +28,11 @@ def skip_test_if_missing_module(self): self.skip_if_no_wallet_tool() def dash_wallet_process(self, *args): - binary = self.config["environment"]["BUILDDIR"] + '/src/dash-wallet' + self.config["environment"]["EXEEXT"] default_args = ['-datadir={}'.format(self.nodes[0].datadir), '-chain=%s' % self.chain] if self.options.descriptors and 'create' in args: default_args.append('-descriptors') - return subprocess.Popen([binary] + default_args + list(args), stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) + return subprocess.Popen([self.options.bitcoinwallet] + default_args + list(args), stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) def assert_raises_tool_error(self, error, *args): p = self.dash_wallet_process(*args) @@ -368,12 +367,12 @@ def test_dump_createfromdump(self): bad_ver_wallet_dump = os.path.join(self.nodes[0].datadir, "wallet-bad_ver1.dump") dump_data["BITCOIN_CORE_WALLET_DUMP"] = "0" self.write_dump(dump_data, bad_ver_wallet_dump) - self.assert_raises_tool_error('Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version 0', '-wallet=badload', '-dumpfile={}'.format(bad_ver_wallet_dump), 'createfromdump') + self.assert_raises_tool_error('Error: Dumpfile version is not supported. This version of dash-wallet only supports version 1 dumpfiles. Got dumpfile with version 0', '-wallet=badload', '-dumpfile={}'.format(bad_ver_wallet_dump), 'createfromdump') assert not os.path.isdir(os.path.join(self.nodes[0].datadir, "regtest/wallets", "badload")) bad_ver_wallet_dump = os.path.join(self.nodes[0].datadir, "wallet-bad_ver2.dump") dump_data["BITCOIN_CORE_WALLET_DUMP"] = "2" self.write_dump(dump_data, bad_ver_wallet_dump) - self.assert_raises_tool_error('Error: Dumpfile version is not supported. This version of bitcoin-wallet only supports version 1 dumpfiles. Got dumpfile with version 2', '-wallet=badload', '-dumpfile={}'.format(bad_ver_wallet_dump), 'createfromdump') + self.assert_raises_tool_error('Error: Dumpfile version is not supported. This version of dash-wallet only supports version 1 dumpfiles. Got dumpfile with version 2', '-wallet=badload', '-dumpfile={}'.format(bad_ver_wallet_dump), 'createfromdump') assert not os.path.isdir(os.path.join(self.nodes[0].datadir, "regtest/wallets", "badload")) bad_magic_wallet_dump = os.path.join(self.nodes[0].datadir, "wallet-bad_magic.dump") del dump_data["BITCOIN_CORE_WALLET_DUMP"]