diff options
Diffstat (limited to 'cpp/src/tests')
| -rw-r--r-- | cpp/src/tests/cluster.mk | 2 | ||||
| -rwxr-xr-x | cpp/src/tests/start_cluster | 23 | ||||
| -rwxr-xr-x | cpp/src/tests/stop_cluster | 13 |
3 files changed, 37 insertions, 1 deletions
diff --git a/cpp/src/tests/cluster.mk b/cpp/src/tests/cluster.mk index 9190eee4e5..8b83e927ec 100644 --- a/cpp/src/tests/cluster.mk +++ b/cpp/src/tests/cluster.mk @@ -12,7 +12,7 @@ lib_cluster = $(abs_builddir)/../libqpidcluster.la # ais_check checks pre-requisites for cluster tests and runs them if ok. TESTS+=ais_check -EXTRA_DIST+=ais_check +EXTRA_DIST+=ais_check start_cluster stop_cluster check_PROGRAMS+=cluster_test cluster_test_SOURCES=unit_test.cpp cluster_test.cpp diff --git a/cpp/src/tests/start_cluster b/cpp/src/tests/start_cluster new file mode 100755 index 0000000000..e399d213dc --- /dev/null +++ b/cpp/src/tests/start_cluster @@ -0,0 +1,23 @@ +#!/bin/sh +# Start a cluster of brokers on local host, put the list of ports for cluster members in cluster.ports +# +echo $1 | grep '^[0-9][0-9]*$' > /dev/null || { echo "Usage: $0 cluster-size [options]"; exit 1; } + +# Execute command with the ais group set. +with_ais_group() { + id -nG | grep '\<ais\>' >/dev/null || { echo "You are not a member of the ais group."; exit 1; } + echo $* | newgrp ais +} + +test -f cluster.ports && { echo "cluster.ports file already exists" ; exit 1; } +rm -f cluster*.log +SIZE=$1; shift +CLUSTER=`pwd` # Cluster name=pwd, avoid clashes. + +for (( i=0; i<SIZE; ++i )); do + OPTS="--load-module ../.libs/libqpidcluster.so -dp0 --log-output=cluster$i.log --cluster-name=$CLUSTER --no-data-dir --auth=no $*" + PORT=`with_ais_group ../qpidd $OPTS` || exit 1 + echo $PORT >> cluster.ports +done + + diff --git a/cpp/src/tests/stop_cluster b/cpp/src/tests/stop_cluster new file mode 100755 index 0000000000..9bd05092de --- /dev/null +++ b/cpp/src/tests/stop_cluster @@ -0,0 +1,13 @@ +#!/bin/sh +# Stop brokers on ports listed in cluster.ports + +PORTS=`cat cluster.ports` +for PORT in $PORTS ; do + ../qpidd -qp $PORT || ERROR="$ERROR $PORT" +done +rm -f cluster.ports + +if [ -n "$ERROR" ]; then + echo "Errors stopping brokers on ports: $ERROR" + exit 1 +fi |
