Merge #17362: test: speed up wallet_avoidreuse, add logging

0e7c90eb37a687158c261ddd1ff9f1028a1e7012 test: speed up wallet_avoidreuse.py (Jon Atack)
6d50b2606ea9249627556051637080c3587b1b04 test: add logging to wallet_avoidreuse.py (Jon Atack)

Pull request description:

  Inspired by PRs #17340 and #15881.

  - add logging
  - pass -whitelist in `set_test_params` to speed up transaction relay

  `wallet_avoidreuse.py` is not intended to test P2P transaction relay/timing, so it should be fine to do this here. This reduces test run time variability and speeds up the test by 2-3 times on average.

  Test run times in seconds:

  - before: 20, 24, 22, 17, 27, 40, 30

  - after: 10, 10, 8, 9, 10, 7, 8

ACKs for top commit:
  MarcoFalke:
    ACK 0e7c90eb37a687158c261ddd1ff9f1028a1e7012 🐊
  fanquake:
    ACK 0e7c90eb37a687158c261ddd1ff9f1028a1e7012

Tree-SHA512: 6d954a0aaf402c9594201626b59d29263479059e68fa5155bb44ed973cd0c3347729dd78b78b4d5a2275e45da365dc1afb4cc7e3293dea33fcc2e3e83a39faf5
This commit is contained in:
fanquake 2019-11-07 11:34:23 -05:00 committed by pasta
parent 951398e8b3
commit 262671182d
No known key found for this signature in database
GPG Key ID: 52527BEDABE87984

View File

@ -68,6 +68,9 @@ class AvoidReuseTest(BitcoinTestFramework):
def set_test_params(self): def set_test_params(self):
self.setup_clean_chain = False self.setup_clean_chain = False
self.num_nodes = 2 self.num_nodes = 2
# This test isn't testing txn relay/timing, so set whitelist on the
# peers for instant txn relay. This speeds up the test run time 2-3x.
self.extra_args = [["-whitelist=127.0.0.1"]] * self.num_nodes
def skip_test_if_missing_module(self): def skip_test_if_missing_module(self):
self.skip_if_no_wallet() self.skip_if_no_wallet()
@ -87,6 +90,8 @@ class AvoidReuseTest(BitcoinTestFramework):
def test_persistence(self): def test_persistence(self):
'''Test that wallet files persist the avoid_reuse flag.''' '''Test that wallet files persist the avoid_reuse flag.'''
self.log.info("Test wallet files persist avoid_reuse flag")
# Configure node 1 to use avoid_reuse # Configure node 1 to use avoid_reuse
self.nodes[1].setwalletflag('avoid_reuse') self.nodes[1].setwalletflag('avoid_reuse')
@ -109,6 +114,8 @@ class AvoidReuseTest(BitcoinTestFramework):
def test_immutable(self): def test_immutable(self):
'''Test immutable wallet flags''' '''Test immutable wallet flags'''
self.log.info("Test immutable wallet flags")
# Attempt to set the disable_private_keys flag; this should not work # Attempt to set the disable_private_keys flag; this should not work
assert_raises_rpc_error(-8, "Wallet flag is immutable", self.nodes[1].setwalletflag, 'disable_private_keys') assert_raises_rpc_error(-8, "Wallet flag is immutable", self.nodes[1].setwalletflag, 'disable_private_keys')
@ -130,6 +137,7 @@ class AvoidReuseTest(BitcoinTestFramework):
the avoid_reuse flag set to false. This means the 10 BTC send should succeed, the avoid_reuse flag set to false. This means the 10 BTC send should succeed,
where it fails in test_fund_send_fund_send. where it fails in test_fund_send_fund_send.
''' '''
self.log.info("Test fund send fund send dirty")
fundaddr = self.nodes[1].getnewaddress() fundaddr = self.nodes[1].getnewaddress()
retaddr = self.nodes[0].getnewaddress() retaddr = self.nodes[0].getnewaddress()
@ -173,6 +181,7 @@ class AvoidReuseTest(BitcoinTestFramework):
[1] tries to spend 10 BTC (fails; dirty). [1] tries to spend 10 BTC (fails; dirty).
[1] tries to spend 4 BTC (succeeds; change address sufficient) [1] tries to spend 4 BTC (succeeds; change address sufficient)
''' '''
self.log.info("Test fund send fund send")
fundaddr = self.nodes[1].getnewaddress() fundaddr = self.nodes[1].getnewaddress()
retaddr = self.nodes[0].getnewaddress() retaddr = self.nodes[0].getnewaddress()