Skip to content

Commit

Permalink
Merge bitcoin#10072: Remove sources of unreliablility in extended fun…
Browse files Browse the repository at this point in the history
…ctional tests

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

Tree-SHA512: de7d0002ee62ad97059b6f6c89b11f6e9901e3b4164ef6906bcd61e4ca499c277d9034784755966e5baf599869fad611b0b18f5547a384ceb5b7db3cc5bbd132
  • Loading branch information
MarcoFalke committed Apr 2, 2017
2 parents 2b477e6 + a4fd89f commit 12af74b
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 9 deletions.
10 changes: 4 additions & 6 deletions test/functional/bip9-softforks.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,16 +200,14 @@ def test_BIP(self, bipName, activated_version, invalidate, invalidatePostSignatu
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(
Expand Down
15 changes: 12 additions & 3 deletions test/functional/forknotify.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 *
Expand Down Expand Up @@ -41,12 +43,19 @@ def run_test(self):
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()
Expand Down

0 comments on commit 12af74b

Please sign in to comment.