Skip to content

Commit

Permalink
Make forknotify.py more robust
Browse files Browse the repository at this point in the history
forknotify would intermittently fail because the alert file was not
being written fast enough. This commit adds a timeout so the test does
not fail immediately.
  • Loading branch information
jnewbery committed Mar 28, 2017
1 parent 1f3d78b commit a4fd89f
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions test/functional/forknotify.py
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 a4fd89f

Please sign in to comment.