aboutsummaryrefslogtreecommitdiff
path: root/test/functional/test_framework/util.py
diff options
context:
space:
mode:
authorSuhas Daftuar <sdaftuar@gmail.com>2017-06-15 17:08:48 -0400
committerPieter Wuille <pieter.wuille@gmail.com>2017-06-26 14:48:42 -0700
commit176c021d085f5a45bc9e038e760942aa648dd797 (patch)
treecd057e23d8dedece53ffa4db73efa245c204b796 /test/functional/test_framework/util.py
parentd6af06d68aae985436cbc942f0d11078041d121b (diff)
downloadbitcoin-176c021d085f5a45bc9e038e760942aa648dd797.tar.xz
[qa] Test non-atomic chainstate writes
Adds new functional test, dbcrash.py, which uses -dbcrashratio to exercise the logic for recovering from a crash during chainstate flush. dbcrash.py is added to the extended tests, as it may take ~10 minutes to run Use _Exit() instead of exit() for crash simulation This eliminates stderr output such as: terminate called without an active exception or Assertion failed: (!pthread_mutex_destroy(&m)), function ~recursive_mutex, file /usr/local/include/boost/thread/pthread/recursive_mutex.hpp, line 104. Eliminating the stderr output on crash simulation allows testing with test_runner.py, which reports a test as failed if stderr is produced.
Diffstat (limited to 'test/functional/test_framework/util.py')
-rw-r--r--test/functional/test_framework/util.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/test/functional/test_framework/util.py b/test/functional/test_framework/util.py
index fa6388bf96..2a4f3104aa 100644
--- a/test/functional/test_framework/util.py
+++ b/test/functional/test_framework/util.py
@@ -249,6 +249,8 @@ def wait_for_bitcoind_start(process, datadir, i, rpchost=None):
raise
time.sleep(0.25)
+def wait_for_node_exit(node_index, timeout):
+ bitcoind_processes[node_index].wait(timeout)
def _start_node(i, dirname, extra_args=None, rpchost=None, timewait=None, binary=None, stderr=None):
"""Start a bitcoind and return RPC connection to it