summaryrefslogtreecommitdiff
path: root/cpp/tests/broker
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/tests/broker')
-rwxr-xr-xcpp/tests/broker45
1 files changed, 45 insertions, 0 deletions
diff --git a/cpp/tests/broker b/cpp/tests/broker
new file mode 100755
index 0000000000..c49e967466
--- /dev/null
+++ b/cpp/tests/broker
@@ -0,0 +1,45 @@
+#!/bin/sh
+. `dirname $0`/env
+
+brokerpid() {
+ netstat -tpl 2> /dev/null | awk '/amqp/ {print gensub("/.*$","","g",$7) }'
+}
+
+killbroker () {
+ PID=`brokerpid`
+ if [ -n "$PID" ] ; then kill $PID ; fi
+ for ((i=5;i--;)) {
+ if [ -z "`brokerpid`" ] ; then exit 0 ; fi
+ sleep 1
+ }
+ echo "Broker `brokerpid` refuses to die."
+}
+
+waitbroker () {
+ while [ -z `brokerpid` ] ; do sleep 1 ; done
+}
+
+startbroker() {
+ case $1 in
+ j)
+ export AMQJ_LOGGING_LEVEL=fatal
+ export JDPA_OPTS=
+ export QPID_OPTS=-Xmx1024M
+ export debug=1
+ CMD="qpid-server"
+ qpid-run -run:print-command # Show the command line.
+ ;;
+ c) CMD=qpidd ;;
+ esac
+ nohup $CMD > /dev/null 2>&1 &
+ waitbroker
+ echo Broker started: $CMD
+}
+
+
+case $1 in
+ j|c) startbroker $1 ;;
+ stop|kill) killbroker ;;
+ wait) waitbroker ;;
+ pid) brokerpid ;;
+esac