#!/bin/bash # Copyright (c) 2013 The Bitcoin Core developers # Distributed under the MIT/X11 software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. # DATADIR="@abs_top_builddir@/.bitcoin" rm -rf "$DATADIR" mkdir -p "$DATADIR"/regtest touch "$DATADIR/regtest/debug.log" tail -q -n 1 -F "$DATADIR/regtest/debug.log" | grep -m 1 -q "Done loading" & WAITER=$! PORT=`expr 10000 + $$ % 55536` "@abs_top_builddir@/src/bitcoind@EXEEXT@" -connect=0.0.0.0 -datadir="$DATADIR" -rpcuser=user -rpcpassword=pass -listen -keypool=3 -debug -debug=net -logtimestamps -port=$PORT -whitelist=127.0.0.1 -regtest -rpcport=`expr $PORT + 1` & BITCOIND=$! #Install a watchdog. (sleep 10 && kill -0 $WAITER 2>/dev/null && kill -9 $BITCOIND $$)& wait $WAITER if [ -n "$TIMEOUT" ]; then timeout "$TIMEOUT"s "$@" $PORT RETURN=$? else "$@" $PORT RETURN=$? fi (sleep 15 && kill -0 $BITCOIND 2>/dev/null && kill -9 $BITCOIND $$)& kill $BITCOIND && wait $BITCOIND # timeout returns 124 on timeout, otherwise the return value of the child # If $RETURN is not 0, the test failed. Dump the tail of the debug log. if [ $RETURN -ne 0 ]; then tail -n 200 $DATADIR/regtest/debug.log; fi exit $RETURN