aboutsummaryrefslogtreecommitdiff
path: root/qa/rpc-tests/send.sh
diff options
context:
space:
mode:
Diffstat (limited to 'qa/rpc-tests/send.sh')
-rwxr-xr-xqa/rpc-tests/send.sh31
1 files changed, 31 insertions, 0 deletions
diff --git a/qa/rpc-tests/send.sh b/qa/rpc-tests/send.sh
new file mode 100755
index 0000000000..2d54cc6ded
--- /dev/null
+++ b/qa/rpc-tests/send.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+# Copyright (c) 2014 The Bitcoin Core developers
+# Distributed under the MIT software license, see the accompanying
+# file COPYING or http://www.opensource.org/licenses/mit-license.php.
+TIMEOUT=10
+SIGNAL=HUP
+PIDFILE=.send.pid
+if [ $# -eq 0 ]; then
+ echo -e "Usage:\t$0 <cmd>"
+ echo -e "\tRuns <cmd> and wait ${TIMEOUT} seconds or until SIG${SIGNAL} is received."
+ echo -e "\tReturns: 0 if SIG${SIGNAL} is received, 1 otherwise."
+ echo -e "Or:\t$0 -STOP"
+ echo -e "\tsends SIG${SIGNAL} to running send.sh"
+ exit 0
+fi
+
+if [ $1 = "-STOP" ]; then
+ if [ -s ${PIDFILE} ]; then
+ kill -s ${SIGNAL} $(<$PIDFILE 2>/dev/null) 2>/dev/null
+ fi
+ exit 0
+fi
+
+trap '[[ ${PID} ]] && kill ${PID}' ${SIGNAL}
+trap 'rm -f ${PIDFILE}' EXIT
+echo $$ > ${PIDFILE}
+"$@"
+sleep ${TIMEOUT} & PID=$!
+wait ${PID} && exit 1
+
+exit 0