aboutsummaryrefslogtreecommitdiff
path: root/test/functional/wallet_import_rescan.py
diff options
context:
space:
mode:
authorAndrew Chow <github@achow101.com>2022-12-06 19:36:22 -0500
committerAndrew Chow <github@achow101.com>2022-12-09 13:57:01 -0500
commit4ad7272f8b24843582e05e7dfc15f1e058e1a0f3 (patch)
treeb40fc13e84ec7fdd55f9aa199bdb429b27ccf868 /test/functional/wallet_import_rescan.py
parent9e229a542ff2107be43eff2e4b992841367f0366 (diff)
downloadbitcoin-4ad7272f8b24843582e05e7dfc15f1e058e1a0f3.tar.xz
tests: reduce number of generated blocks for wallet_import_rescan
Generating blocks is slow, especially when --enable-debug. There is no need to generate a new block for each transaction, so avoid doing that to improve this test's runtime.
Diffstat (limited to 'test/functional/wallet_import_rescan.py')
-rwxr-xr-xtest/functional/wallet_import_rescan.py30
1 files changed, 24 insertions, 6 deletions
diff --git a/test/functional/wallet_import_rescan.py b/test/functional/wallet_import_rescan.py
index 64f8f2eb6e..4dc39e83f8 100755
--- a/test/functional/wallet_import_rescan.py
+++ b/test/functional/wallet_import_rescan.py
@@ -179,7 +179,16 @@ class ImportRescanTest(BitcoinTestFramework):
# Create one transaction on node 0 with a unique amount for
# each possible type of wallet import RPC.
+ last_variants = []
for i, variant in enumerate(IMPORT_VARIANTS):
+ if i % 10 == 0:
+ blockhash = self.generate(self.nodes[0], 1)[0]
+ conf_height = self.nodes[0].getblockcount()
+ timestamp = self.nodes[0].getblockheader(blockhash)["time"]
+ for var in last_variants:
+ var.confirmation_height = conf_height
+ var.timestamp = timestamp
+ last_variants.clear()
variant.label = "label {} {}".format(i, variant)
variant.address = self.nodes[1].getaddressinfo(self.nodes[1].getnewaddress(
label=variant.label,
@@ -188,9 +197,15 @@ class ImportRescanTest(BitcoinTestFramework):
variant.key = self.nodes[1].dumpprivkey(variant.address["address"])
variant.initial_amount = get_rand_amount()
variant.initial_txid = self.nodes[0].sendtoaddress(variant.address["address"], variant.initial_amount)
- self.generate(self.nodes[0], 1) # Generate one block for each send
- variant.confirmation_height = self.nodes[0].getblockcount()
- variant.timestamp = self.nodes[0].getblockheader(self.nodes[0].getbestblockhash())["time"]
+ last_variants.append(variant)
+
+ blockhash = self.generate(self.nodes[0], 1)[0]
+ conf_height = self.nodes[0].getblockcount()
+ timestamp = self.nodes[0].getblockheader(blockhash)["time"]
+ for var in last_variants:
+ var.confirmation_height = conf_height
+ var.timestamp = timestamp
+ last_variants.clear()
# Generate a block further in the future (past the rescan window).
assert_equal(self.nodes[0].getrawmempool(), [])
@@ -217,11 +232,14 @@ class ImportRescanTest(BitcoinTestFramework):
variant.check()
# Create new transactions sending to each address.
- for variant in IMPORT_VARIANTS:
+ for i, variant in enumerate(IMPORT_VARIANTS):
+ if i % 10 == 0:
+ blockhash = self.generate(self.nodes[0], 1)[0]
+ conf_height = self.nodes[0].getblockcount() + 1
variant.sent_amount = get_rand_amount()
variant.sent_txid = self.nodes[0].sendtoaddress(variant.address["address"], variant.sent_amount)
- self.generate(self.nodes[0], 1) # Generate one block for each send
- variant.confirmation_height = self.nodes[0].getblockcount()
+ variant.confirmation_height = conf_height
+ self.generate(self.nodes[0], 1)
assert_equal(self.nodes[0].getrawmempool(), [])
self.sync_all()