summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2006-11-23 20:43:40 +0000
committerAlan Conway <aconway@apache.org>2006-11-23 20:43:40 +0000
commit5c5b418c4db21949d1a526fde57e619195039e54 (patch)
treeb032ed19865964bcdd435b72080434841d75f224 /cpp
parent07c4ffe83617edc973121b41ab23d91be3333c9d (diff)
downloadqpid-python-5c5b418c4db21949d1a526fde57e619195039e54.tar.gz
Scripts to simplify runnning topictest. topicall is the main script.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@478659 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
-rwxr-xr-xcpp/test/bin/broker45
-rwxr-xr-xcpp/test/bin/env23
-rwxr-xr-xcpp/test/bin/topicall25
-rwxr-xr-xcpp/test/bin/topictest42
4 files changed, 135 insertions, 0 deletions
diff --git a/cpp/test/bin/broker b/cpp/test/bin/broker
new file mode 100755
index 0000000000..c49e967466
--- /dev/null
+++ b/cpp/test/bin/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
diff --git a/cpp/test/bin/env b/cpp/test/bin/env
new file mode 100755
index 0000000000..76797b1ef7
--- /dev/null
+++ b/cpp/test/bin/env
@@ -0,0 +1,23 @@
+#!/bin/bash
+# Set environment variables for test scripts.
+
+pathmunge () {
+ if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
+ if [ "$2" = "after" ] ; then
+ PATH=$PATH:$1
+ else
+ PATH=$1:$PATH
+ fi
+ fi
+}
+
+if [ -z QPID_ROOT ] ; then echo "You must set QPID_ROOT" ; fi
+
+pathmunge $QPID_ROOT/cpp/test/bin
+pathmunge $QPID_ROOT/cpp/build/*/bin
+pathmunge $QPID_ROOT/cpp/build/*/test
+
+export QPID_HOME=${QPID_HOME:-$QPID_ROOT/java/build}
+pathmunge $QPID_HOME/bin
+
+
diff --git a/cpp/test/bin/topicall b/cpp/test/bin/topicall
new file mode 100755
index 0000000000..bde04a5b30
--- /dev/null
+++ b/cpp/test/bin/topicall
@@ -0,0 +1,25 @@
+#!/bin/sh
+# Do 3 runs of topictests for C++ and Java brokers with reduced output.
+
+. `dirname $0`/env
+
+# Run a short topictest to warm up the broker and iron out startup effects.
+flush() {
+ topic_listener >/dev/null 2>&1 &
+ topic_publisher >/dev/null 2>&1
+}
+
+echo Java broker
+broker j ; flush
+topictest c | tail -n1
+topictest c | tail -n1
+topictest c | tail -n1
+
+echo C++ broker
+broker c ; flush
+topictest c | tail -n1
+topictest c | tail -n1
+topictest c | tail -n1
+
+# Don't bother with java clients we know they're slower.
+
diff --git a/cpp/test/bin/topictest b/cpp/test/bin/topictest
new file mode 100755
index 0000000000..44a279c363
--- /dev/null
+++ b/cpp/test/bin/topictest
@@ -0,0 +1,42 @@
+#!/bin/sh
+# Run the c++ or java topic test
+
+. `dirname $0`/env
+
+# Edit parameters here:
+
+# Big test:
+# LISTENERS=10
+# MESSAGES=10000
+# BATCHES=20
+
+LISTENERS=10
+MESSAGES=2000
+BATCHES=10
+
+cppcmds() {
+ LISTEN_CMD=topic_listener
+ PUBLISH_CMD="topic_publisher -messages $MESSAGES -batches $BATCHES -subscribers $LISTENERS"
+}
+
+javacmds() {
+ DEF=-Damqj.logging.level="error"
+ LISTEN_CMD="qpid-run $DEF org.apache.qpid.topic.Listener"
+ PUBLISH_CMD="qpid-run $DEF org.apache.qpid.topic.Publisher -messages $MESSAGES -batch $BATCHES -clients $LISTENERS"
+}
+
+case $1 in
+ c) cppcmds ;;
+ j) javacmds ;;
+ *) cppcmds ;;
+esac
+
+for ((i=$LISTENERS ; i--; )); do
+ $LISTEN_CMD > /dev/null 2>&1 &
+done
+sleep 1
+echo $PUBLISH_CMD $OPTIONS
+
+STATS=~/bin/topictest.times
+echo "---- topictest `date`" >> $STATS
+$PUBLISH_CMD $OPTIONS | tee -a $STATS