Browse Source

Merge #10072: Remove sources of unreliablility in extended functional tests

a4fd89f Make forknotify.py more robust (John Newbery)
1f3d78b Wait for connection to open in bip9-softforks.py (John Newbery)

Tree-SHA512: de7d0002ee62ad97059b6f6c89b11f6e9901e3b4164ef6906bcd61e4ca499c277d9034784755966e5baf599869fad611b0b18f5547a384ceb5b7db3cc5bbd132
0.15
MarcoFalke 7 years ago
parent
commit
12af74b289
No known key found for this signature in database
GPG Key ID: D2EA4850E7528B25
  1. 10
      test/functional/bip9-softforks.py
  2. 15
      test/functional/forknotify.py

10
test/functional/bip9-softforks.py

@ -200,16 +200,14 @@ class BIP9SoftForksTest(ComparisonTestFramework): @@ -200,16 +200,14 @@ class BIP9SoftForksTest(ComparisonTestFramework):
yield TestInstance([[block, False]])
# Restart all
self.test.block_store.close()
self.test.clear_all_connections()
stop_nodes(self.nodes)
shutil.rmtree(self.options.tmpdir)
shutil.rmtree(self.options.tmpdir + "/node0")
self.setup_chain()
self.setup_network()
self.test.block_store = BlockStore(self.options.tmpdir)
self.test.clear_all_connections()
self.test.add_all_connections(self.nodes)
NetworkThread().start() # Start up network handling in another thread
NetworkThread().start()
self.test.test_nodes[0].wait_for_verack()
def get_tests(self):
for test in itertools.chain(

15
test/functional/forknotify.py

@ -3,6 +3,8 @@ @@ -3,6 +3,8 @@
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
"""Test the -alertnotify option."""
import os
import time
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import *
@ -41,12 +43,19 @@ class ForkNotifyTest(BitcoinTestFramework): @@ -41,12 +43,19 @@ class ForkNotifyTest(BitcoinTestFramework):
self.nodes[1].generate(1)
self.sync_all()
# Give bitcoind 10 seconds to write the alert notification
timeout = 10.0
while timeout > 0:
if os.path.exists(self.alert_filename) and os.path.getsize(self.alert_filename):
break
time.sleep(0.1)
timeout -= 0.1
else:
assert False, "-alertnotify did not warn of up-version blocks"
with open(self.alert_filename, 'r', encoding='utf8') as f:
alert_text = f.read()
if len(alert_text) == 0:
raise AssertionError("-alertnotify did not warn of up-version blocks")
# Mine more up-version blocks, should not get more alerts:
self.nodes[1].generate(1)
self.sync_all()

Loading…
Cancel
Save