Author: kpvdr
Date: 2011-07-19 16:00:56 -0400 (Tue, 19 Jul 2011)
New Revision: 4466
Added:
store/trunk/cpp/tests/federation/
store/trunk/cpp/tests/federation/Makefile.am
store/trunk/cpp/tests/federation/federation_tests_env.sh
store/trunk/cpp/tests/federation/run_federation_sys_tests
store/trunk/cpp/tests/federation/run_long_federation_sys_tests
Modified:
store/trunk/cpp/configure.ac
store/trunk/cpp/tests/Makefile.am
store/trunk/cpp/tests/MessageUtils.h
store/trunk/cpp/tests/OrderingTest.cpp
store/trunk/cpp/tests/SimpleTest.cpp
store/trunk/cpp/tests/TransactionalTest.cpp
store/trunk/cpp/tests/TwoPhaseCommitTest.cpp
store/trunk/cpp/tests/cluster/cluster_tests_env.sh
store/trunk/cpp/tests/python_tests/store_test.py
store/trunk/cpp/tests/run_python_tests
store/trunk/cpp/tests/system_test.sh
store/trunk/cpp/tests/tests_env.sh
Log:
Store tests and modifications which correspond with Qpid checkin r.1148503.
QPID-3304/BZ702656
Modified: store/trunk/cpp/configure.ac
===================================================================
--- store/trunk/cpp/configure.ac 2011-07-11 11:55:43 UTC (rev 4465)
+++ store/trunk/cpp/configure.ac 2011-07-19 20:00:56 UTC (rev 4466)
@@ -226,6 +226,7 @@
perf/Makefile
tests/Makefile
tests/cluster/Makefile
+ tests/federation/Makefile
tests/jrnl/Makefile
tests/jrnl/jtt/Makefile
tools/Makefile
Modified: store/trunk/cpp/tests/Makefile.am
===================================================================
--- store/trunk/cpp/tests/Makefile.am 2011-07-11 11:55:43 UTC (rev 4465)
+++ store/trunk/cpp/tests/Makefile.am 2011-07-19 20:00:56 UTC (rev 4466)
@@ -29,10 +29,9 @@
TMP_DATA_DIR=$(abs_srcdir)/tmp_data_dir
TMP_PYTHON_TEST_DIR=$(abs_srcdir)/python_tests.tmp
+SUBDIRS = jrnl . federation
if DO_CLUSTER_TESTS
-SUBDIRS = jrnl . cluster
-else
-SUBDIRS = jrnl .
+SUBDIRS += cluster
endif
TESTS = \
@@ -103,7 +102,6 @@
QPID_BLD=$(QPID_BLD) \
VALGRIND=$(VALGRIND) \
abs_srcdir=$(abs_srcdir) \
- STORE_LIB=$(abs_builddir)/../lib/.libs/msgstore.so \
TMP_DATA_DIR=$(TMP_DATA_DIR) \
TMP_PYTHON_TEST_DIR=$(TMP_PYTHON_TEST_DIR) \
$(srcdir)/run_test
@@ -115,6 +113,7 @@
if DO_CLUSTER_TESTS
$(MAKE) -C cluster check-long
endif
+ $(MAKE) -C federation check-long
check-short: all
$(MAKE) check TESTS="$(SHORT_TESTS)" SUBDIRS=.
Modified: store/trunk/cpp/tests/MessageUtils.h
===================================================================
--- store/trunk/cpp/tests/MessageUtils.h 2011-07-11 11:55:43 UTC (rev 4465)
+++ store/trunk/cpp/tests/MessageUtils.h 2011-07-19 20:00:56 UTC (rev 4466)
@@ -32,7 +32,8 @@
struct MessageUtils
{
static boost::intrusive_ptr<Message> createMessage(const string& exchange,
const string& routingKey,
- const Uuid& messageId=Uuid(),
uint64_t contentSize = 0)
+ const Uuid& messageId=Uuid(),
const bool persistent = false,
+ const uint64_t contentSize = 0,
const std::string& correlationId = std::string())
{
boost::intrusive_ptr<Message> msg(new Message());
@@ -45,7 +46,10 @@
MessageProperties* props =
msg->getFrames().getHeaders()->get<MessageProperties>(true);
props->setContentLength(contentSize);
props->setMessageId(messageId);
+ props->setCorrelationId(correlationId);
msg->getFrames().getHeaders()->get<DeliveryProperties>(true)->setRoutingKey(routingKey);
+ if (persistent)
+
msg->getFrames().getHeaders()->get<DeliveryProperties>(true)->setDeliveryMode(PERSISTENT);
return msg;
}
Modified: store/trunk/cpp/tests/OrderingTest.cpp
===================================================================
--- store/trunk/cpp/tests/OrderingTest.cpp 2011-07-11 11:55:43 UTC (rev 4465)
+++ store/trunk/cpp/tests/OrderingTest.cpp 2011-07-19 20:00:56 UTC (rev 4466)
@@ -75,8 +75,7 @@
Uuid messageId(true);
ids.push(messageId);
- boost::intrusive_ptr<Message> msg =
MessageUtils::createMessage("exchange", "routing_key", messageId, 0);
- msg->getProperties<DeliveryProperties>()->setDeliveryMode(PERSISTENT);
+ boost::intrusive_ptr<Message> msg =
MessageUtils::createMessage("exchange", "routing_key", messageId,
true, 0);
queue->deliver(msg);
}
Modified: store/trunk/cpp/tests/SimpleTest.cpp
===================================================================
--- store/trunk/cpp/tests/SimpleTest.cpp 2011-07-11 11:55:43 UTC (rev 4465)
+++ store/trunk/cpp/tests/SimpleTest.cpp 2011-07-19 20:00:56 UTC (rev 4466)
@@ -281,14 +281,11 @@
FieldTable settings;
queue->create(settings);
- boost::intrusive_ptr<Message> msg = MessageUtils::createMessage(exchange,
routingKey, messageId, 14);
+ boost::intrusive_ptr<Message> msg = MessageUtils::createMessage(exchange,
routingKey, messageId, true, 14);
MessageUtils::addContent(msg, data1);
MessageUtils::addContent(msg, data2);
-
msg->getProperties<DeliveryProperties>()->setDeliveryMode(PERSISTENT);
- FieldTable table;
- table.setString("abc", "xyz");
-
msg->getProperties<MessageProperties>()->setApplicationHeaders(table);
+ msg->insertCustomProperty("abc", "xyz");
queue->enqueue(0, msg);
}//db will be closed
@@ -340,9 +337,8 @@
FieldTable settings;
queue->create(settings);
- boost::intrusive_ptr<Message> msg = MessageUtils::createMessage(exchange,
routingKey, messageId, 7);
+ boost::intrusive_ptr<Message> msg = MessageUtils::createMessage(exchange,
routingKey, messageId, true, 7);
MessageUtils::addContent(msg, data);
-
msg->getProperties<DeliveryProperties>()->setDeliveryMode(PERSISTENT);
QueuedMessage qm;
qm.payload = msg;
Modified: store/trunk/cpp/tests/TransactionalTest.cpp
===================================================================
--- store/trunk/cpp/tests/TransactionalTest.cpp 2011-07-11 11:55:43 UTC (rev 4465)
+++ store/trunk/cpp/tests/TransactionalTest.cpp 2011-07-19 20:00:56 UTC (rev 4466)
@@ -148,9 +148,7 @@
boost::intrusive_ptr<Message> createMessage(const string& id, const string&
exchange="exchange", const string& key="routing_key")
{
- boost::intrusive_ptr<Message> msg = MessageUtils::createMessage(exchange,
key);
- msg->getProperties<MessageProperties>()->setCorrelationId(id);
- msg->getProperties<DeliveryProperties>()->setDeliveryMode(PERSISTENT);
+ boost::intrusive_ptr<Message> msg = MessageUtils::createMessage(exchange, key,
Uuid(), true, 0, id);
return msg;
}
Modified: store/trunk/cpp/tests/TwoPhaseCommitTest.cpp
===================================================================
--- store/trunk/cpp/tests/TwoPhaseCommitTest.cpp 2011-07-11 11:55:43 UTC (rev 4465)
+++ store/trunk/cpp/tests/TwoPhaseCommitTest.cpp 2011-07-19 20:00:56 UTC (rev 4466)
@@ -341,9 +341,7 @@
boost::intrusive_ptr<Message> createMessage(const string& id, const
string& exchange="exchange", const string& key="routing_key")
{
- boost::intrusive_ptr<Message> msg = MessageUtils::createMessage(exchange,
key);
- msg->getProperties<MessageProperties>()->setCorrelationId(id);
-
msg->getProperties<DeliveryProperties>()->setDeliveryMode(PERSISTENT);
+ boost::intrusive_ptr<Message> msg = MessageUtils::createMessage(exchange,
key, Uuid(), true, 0, id);
return msg;
}
Modified: store/trunk/cpp/tests/cluster/cluster_tests_env.sh
===================================================================
--- store/trunk/cpp/tests/cluster/cluster_tests_env.sh 2011-07-11 11:55:43 UTC (rev 4465)
+++ store/trunk/cpp/tests/cluster/cluster_tests_env.sh 2011-07-19 20:00:56 UTC (rev 4466)
@@ -288,7 +288,7 @@
# Check expected environment vars are set
func_checkpaths PYTHON_DIR PYTHONPATH TMP_DATA_DIR
-func_checklibs CLUSTER_LIB TEST_STORE_LIB STORE_LIB STORE_LIB
+func_checklibs CLUSTER_LIB TEST_STORE_LIB STORE_LIB
func_checkexecs CPP_CLUSTER_EXEC PYTHON_CLUSTER_EXEC QPIDD_EXEC QPID_CONFIG_EXEC
QPID_ROUTE_EXEC RECEIVER_EXEC SENDER_EXEC QPID_PYTHON_TEST
FAILING_PYTHON_TESTS="${abs_srcdir}/../failing_python_tests.txt"
Property changes on: store/trunk/cpp/tests/federation
___________________________________________________________________
Added: svn:ignore
+ Makefile
Makefile.in
Added: store/trunk/cpp/tests/federation/Makefile.am
===================================================================
--- store/trunk/cpp/tests/federation/Makefile.am (rev 0)
+++ store/trunk/cpp/tests/federation/Makefile.am 2011-07-19 20:00:56 UTC (rev 4466)
@@ -0,0 +1,50 @@
+# Copyright (c) 2010 Red Hat, Inc.
+#
+# This file is part of the Qpid async store library msgstore.so.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+# USA
+#
+# The GNU Lesser General Public License is available in the file COPYING.
+
+
+abs_builddir=@abs_builddir@
+abs_srcdir=@abs_srcdir@
+
+TMP_DATA_DIR=$(abs_srcdir)/../tmp_data_dir
+
+TESTS = \
+ run_federation_sys_tests
+
+LONG_TESTS = \
+ run_long_federation_sys_tests
+
+EXTRA_DIST = \
+ federation_tests_env.sh \
+ run_federation_sys_tests \
+ run_long_federation_sys_tests
+
+TESTS_ENVIRONMENT = \
+ QPID_DIR=$(QPID_DIR) \
+ QPID_BLD=$(QPID_BLD) \
+ TMP_DATA_DIR=$(TMP_DATA_DIR) \
+ abs_srcdir=$(abs_srcdir) \
+ abs_builddir=$(abs_builddir)
+
+check-long: all
+ $(MAKE) check TESTS="$(LONG_TESTS)" SUBDIRS=.
+
+# END
+
Added: store/trunk/cpp/tests/federation/federation_tests_env.sh
===================================================================
--- store/trunk/cpp/tests/federation/federation_tests_env.sh (rev
0)
+++ store/trunk/cpp/tests/federation/federation_tests_env.sh 2011-07-19 20:00:56 UTC (rev
4466)
@@ -0,0 +1,300 @@
+# Copyright (c) 2008, 2009 Red Hat, Inc.
+#
+# This file is part of the Qpid async store library msgstore.so.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+# USA
+#
+# The GNU Lesser General Public License is available in the file COPYING.
+
+
+# --- Function definitions ---
+
+func_check_required_env ()
+#-------------------------
+# Check that EITHER:
+# QPID_DIR is set (for running against svn QPID)
+# OR
+# QPID_PREFIX is set (for running against installed QPID
+# Will exit with error code 1 if neither of these is defined.
+# Params: None
+# Returns: 0 if env vars ok, 1 otherwise
+{
+ if test -z "${QPID_DIR}" -a -z "${QPID_PREFIX}"; then
+ # Try to find qpidd in the normal installed location
+ if test -x /usr/sbin/qpidd; then
+ QPID_PREFIX=/usr
+ else
+ echo "ERROR: Could not find installed Qpid"
+ echo "Either of the following must be set in the environment for this script to
run:"
+ echo " QPID_DIR for running against a Qpid svn build"
+ echo " QPID_PREFIX for running against an installed Qpid"
+ return 1
+ fi
+ fi
+ return 0
+}
+
+
+func_check_clustering ()
+#-----------------------
+# Check openAIS/corosync is running and user has correct privileges
+# Params: None
+# Returns: 0 if openAIS/corosync is running, 1 otherwise
+# Sets env var COROSYNC to 1 if corosync is running, not set otherwise
+{
+ # Check either aisexec or corosync is running as root
+ cluster_prog=`ps -u root | grep 'aisexec\|corosync'`
+ test -n "$cluster_prog" || NODAEMON="Neither aisexec nor corosync is
running as root"
+ if test -z "$NODAEMON"; then
+ # Test for corosync running
+ echo $cluster_prog | grep "aisexec" > /dev/null || COROSYNC=1
+ if test -n "$COROSYNC"; then
+ # Corosync auth test
+ user=`whoami`
+ ls /etc/corosync/uidgid.d | grep $user > /dev/null || NOAUTH="You are
not authorized to use corosync."
+ else
+ # OpenAis auth test
+ id -nG | grep '\<ais\>' >/dev/null || NOAUTH="You are
not a member of the ais group."
+ fi
+ fi
+
+ if test -n "$NODAEMON" -o -n "$NOAUTH"; then
+ cat <<EOF
+
+ ========== WARNING: NOT RUNNING CLUSTER TESTS ============
+
+ Cluster tests will not be run because:
+
+ $NODAEMON
+ $NOAUTH
+
+ ==========================================================
+
+EOF
+ return 1
+ fi
+ CLUSTERING_ENABLED=1
+ return 0
+}
+
+
+func_check_qpid_python ()
+#------------------------
+# Check that Qpid python environment is ok
+# Params: None
+# Returns: 0 if Python environment is ok; 1 otherwise
+{
+ if ! python -c "import qpid" ; then
+ cat <<EOF
+
+ =========== WARNING: PYTHON TESTS DISABLED ==============
+
+ Unable to load python qpid module - skipping python tests.
+
+ PYTHONPATH=${PYTHONPATH}
+
+ ===========================================================
+
+EOF
+ return 1
+ fi
+ return 0
+}
+
+func_set_env ()
+#--------------
+# Set up the environment based on value of ${QPID_DIR}: if ${QPID_DIR} exists, assume a
svn checkout,
+# otherwise set up for an installed or prefix test.
+# Params: None
+# Returns: Nothing
+{
+ if test "${QPID_DIR}" -a -d "${QPID_DIR}" ; then
+ # QPID_DIR is defined for source tree builds by the --with-qpid-checkout
configure option.
+ # QPID_BLD is defined as the build directory, either $QPID_DIR/cpp or separately
specified with
+ # the --with-qpid-build option for VPATH builds.
+
+ # Check QPID_BLD is also set
+ if test -z ${QPID_BLD}; then
+ QPID_BLD="${QPID_DIR}/cpp"
+ fi
+ source $QPID_BLD/src/tests/test_env.sh
+# CPP_CLUSTER_EXEC="${QPID_BLD}/src/tests/cluster_test"
+# PYTHON_CLUSTER_EXEC="${QPID_DIR}/cpp/src/tests/$PYTHON_TESTNAME"
+
FEDERATION_SYS_TESTS_FAIL="${QPID_DIR}/cpp/src/tests/federation_sys_tests.fail"
+ if test -z ${STORE_LIB}; then
+ STORE_LIB="../../lib/.libs/msgstore.so"
+ fi
+# export STORE_ENABLE=1
+ else
+ # Set up the environment based on value of ${QPID_PREFIX} for testing against an
installed qpid
+ # Alternatively, make sure ${QPID_BIN_DIR}, ${QPID_SBIN_DIR}, ${QPID_LIB_DIR} and
${QPID_LIBEXEC_DIR} are set for
+ # the installed location.
+ if test "${QPID_PREFIX}" -a -d "${QPID_PREFIX}" ; then
+ QPID_BIN_DIR=${QPID_PREFIX}/bin
+ QPID_SBIN_DIR=${QPID_PREFIX}/sbin
+ QPID_LIB_DIR=${QPID_PREFIX}/lib
+ QPID_LIBEXEC_DIR=${QPID_PREFIX}/libexec
+ export
PATH="$QPID_BIN_DIR:$QPID_SBIN_DIR:$QPID_LIBEXEC_DIR/qpid/tests:$PATH"
+ fi
+
+ # These four env vars must be set prior to calling this script
+ func_checkpaths QPID_BIN_DIR QPID_SBIN_DIR QPID_LIB_DIR QPID_LIBEXEC_DIR
+
+ # Paths and dirs
+ export PYTHON_DIR="${QPID_BIN_DIR}"
+ export
PYTHONPATH="${QPID_LIB_DIR}/python:${QPID_LIBEXEC_DIR}/qpid/tests:${QPID_LIB_DIR}/python2.4:${QPID_LIB_DIR}/python2.4/site-packages:${PYTHONPATH}"
+ # Libraries
+ export CLUSTER_LIB="${QPID_LIB_DIR}/qpid/daemon/cluster.so"
+ export ACL_LIB="${QPID_LIB_DIR}/qpid/daemon/acl.so"
+ export TEST_STORE_LIB="${QPID_LIB_DIR}/qpid/tests/test_store.so"
+
+ # Executables
+# CPP_CLUSTER_EXEC="${QPID_LIBEXEC_DIR}/qpid/tests/cluster_test"
+# PYTHON_CLUSTER_EXEC="${QPID_LIBEXEC_DIR}/qpid/tests/$PYTHON_TESTNAME"
+ export QPIDD_EXEC="${QPID_SBIN_DIR}/qpidd"
+ export QPID_CONFIG_EXEC="${QPID_BIN_DIR}/qpid-config"
+ export QPID_ROUTE_EXEC="${QPID_BIN_DIR}/qpid-route"
+ export QPID_CLUSTER_EXEC="${QPID_BIN_DIR}/qpid-cluster"
+# export RECEIVER_EXEC="${QPID_LIBEXEC_DIR}/qpid/tests/receiver"
+# export SENDER_EXEC="${QPID_LIBEXEC_DIR}/qpid/tests/sender"
+ export QPID_PYTHON_TEST="${QPID_BIN_DIR}/qpid-python-test"
+
+ # Data
+
FEDERATION_SYS_TESTS_FAIL="${QPID_LIBEXEC_DIR}/qpid/tests/federation_sys_tests.fail"
+ fi
+}
+
+
+func_mk_data_dir ()
+#------------------
+# Create a data dir at ${TMP_DATA_DIR} if not present, clear it otherwise.
+# Set TMP_DATA_DIR if it is not set.
+# Params: None
+# Returns: Nothing
+{
+ if test -z "${TMP_DATA_DIR}"; then
+ TMP_DATA_DIR=/tmp/federation_sys_tests
+ echo "TMP_DATA_DIR not set; using ${TMP_DATA_DIR}"
+ fi
+
+ # Delete old cluster test dirs if they exist
+ if test -d "${TMP_DATA_DIR}" ; then
+ rm -rf "${TMP_DATA_DIR}/cluster"
+ fi
+ mkdir -p "${TMP_DATA_DIR}/cluster"
+ export TMP_DATA_DIR
+}
+
+
+func_checkvar ()
+#---------------
+# Check that an environment var is set (ie non-zero length)
+# Params: $1 - env var to be checked
+# Returns: 0 = env var is set (ie non-zero length)
+# 1 = env var is not set
+{
+ local loc_VAR=$1
+ if test -z ${!loc_VAR}; then
+ echo "WARNING: environment variable ${loc_VAR} not set."
+ return 1
+ fi
+ return 0
+}
+
+
+func_checkpaths ()
+#-----------------
+# Check a list of paths (each can contain ':'-separated sub-list) is set and
valid (ie each path exists as a dir)
+# Params: $@ - List of path env vars to be checked
+# Returns: Nothing
+{
+ local loc_PATHS=$@
+ for path in ${loc_PATHS}; do
+ func_checkvar ${path}
+ if test $? == 0; then
+ local temp_IFS=${IFS}
+ IFS=":"
+ local pl=${!path}
+ for p in ${pl[@]}; do
+ if test ! -d ${p}; then
+ echo "WARNING: Directory ${p} in var ${path} not found."
+ fi
+ done
+ IFS=${temp_IFS}
+ fi
+ done
+}
+
+
+func_checklibs ()
+#----------------
+# Check that a list of libs is set and valid (ie each lib exists as an executable file)
+# Params: $@ - List of lib values to be checked
+# Returns: Nothing
+{
+ local loc_LIBS=$@
+ for lib in ${loc_LIBS[@]}; do
+ func_checkvar ${lib}
+ if test $? == 0; then
+ if test ! -x ${!lib}; then
+ echo "WARNING: Library ${lib}=${!lib} not found."
+ fi
+ fi
+ done
+}
+
+
+func_checkexecs ()
+#-----------------
+# Check that a list of executable is set and valid (ie each exec exists as an executable
file)
+# Params: $@ - List of exec values to be checked
+# Returns: Nothing
+{
+ local loc_EXECS=$@
+ for exec in ${loc_EXECS[@]}; do
+ func_checkvar ${exec}
+ if test $? == 0; then
+ if test ! -x ${!exec}; then
+ echo "WARNING: Executable ${exec}=${!exec} not found or is not
executable."
+ fi
+ fi
+ done
+}
+
+
+#--- Start of script ---
+
+func_check_required_env || exit 1 # Cannot run, exit with error
+func_check_qpid_python || exit 1 # Cannot run, exit with error
+func_check_clustering # Warning
+
+PYTHON_TESTNAME=federation_sys.py
+func_set_env
+func_mk_data_dir
+
+# Check expected environment vars are set
+func_checkpaths PYTHON_DIR PYTHONPATH TMP_DATA_DIR
+func_checklibs CLUSTER_LIB STORE_LIB
+func_checkexecs QPIDD_EXEC QPID_CONFIG_EXEC QPID_ROUTE_EXEC QPID_PYTHON_TEST
+
+FAILING_PYTHON_TESTS="${abs_srcdir}/../failing_python_tests.txt"
+if test -z $1; then
+ FEDERATION_SYS_TEST="${QPID_PYTHON_TEST} -m cluster_tests -I
${FEDERATION_SYS_TESTS_FAIL}"
+else
+ FEDERATION_SYS_TEST="${QPID_PYTHON_TEST} -m cluster_tests -I
${FEDERATION_SYS_TESTS_FAIL} cluster_tests.LongTests.*"
+ LONG_TEST=1
+fi
+
Property changes on: store/trunk/cpp/tests/federation/federation_tests_env.sh
___________________________________________________________________
Added: svn:executable
+ *
Added: store/trunk/cpp/tests/federation/run_federation_sys_tests
===================================================================
--- store/trunk/cpp/tests/federation/run_federation_sys_tests (rev
0)
+++ store/trunk/cpp/tests/federation/run_federation_sys_tests 2011-07-19 20:00:56 UTC (rev
4466)
@@ -0,0 +1,100 @@
+#!/bin/bash
+#
+# Copyright (c) 2008, 2009 Red Hat, Inc.
+#
+# This file is part of the Qpid async store library msgstore.so.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+# USA
+#
+# The GNU Lesser General Public License is available in the file COPYING.
+
+
+# Run the federation tests.
+
+source ./federation_tests_env.sh
+
+MODULENAME=federation_sys
+
+# Test for long test
+if [[ "$1" == "LONG_TEST" ]]; then
+ USE_LONG_TEST=1
+ shift # get rid of this param so it is not treated as a test name
+fi
+
+trap stop_brokers INT TERM QUIT
+
+MODULES="--load-module ${STORE_LIB} --jfile-size 12 --num-jfiles 4"
+CLUSTER_MODULE="--load-module ${CLUSTER_LIB} "
+if [ -z ${USE_LONG_TEST} ]; then
+ SKIPTESTS="-i federation_sys.A_Long* -i federation_sys.B_Long* -i
federation_sys.E_Long* -i federation_sys.F_Long*"
+fi
+if [ -z ${CLUSTERING_ENABLED} ]; then
+ SKIPTESTS="${SKIPTESTS} -i federation_sys.C_* -i federation_sys.D_* -i
federation_sys.G_* -i federation_sys.H_*"
+elif [ -z ${USE_LONG_TEST} ]; then
+ SKIPTESTS="${SKIPTESTS} -i federation_sys.C_Long* -i federation_sys.D_Long* -i
federation_sys.G_Long* -i federation_sys.H_Long*"
+fi
+
+start_brokers() {
+ clean_or_create_dir() {
+ if [ -n "$1" -a -d $1 ]; then
+ rm -rf $1/*
+ else
+ mkdir -p $1
+ fi
+ }
+ start_broker() {
+ clean_or_create_dir $1
+ ${QPIDD_EXEC} --daemon --port 0 --auth no --data-dir $1 $2 > qpidd.port
+ PORT=`cat qpidd.port`
+ eval "$3=${PORT}"
+ }
+ start_broker ${TMP_DATA_DIR}/local "${MODULES} --log-enable info+ --log-to-file
${TMP_DATA_DIR}/qpidd.log.local" LOCAL_PORT
+ start_broker ${TMP_DATA_DIR}/remote "${MODULES} --log-enable info+ --log-to-file
${TMP_DATA_DIR}/qpidd.log.remote" REMOTE_PORT
+ if [ -n "$CLUSTERING_ENABLED" ]; then
+ start_broker ${TMP_DATA_DIR}/cluster/c1.1 "${MODULES} ${CLUSTER_MODULE}
--cluster-name test-cluster-1 --log-enable info+ --log-to-file
${TMP_DATA_DIR}/qpidd.log.cluster1.1" CLUSTER_C1_1
+ start_broker ${TMP_DATA_DIR}/cluster/c1.2 "${MODULES} ${CLUSTER_MODULE}
--cluster-name test-cluster-1 --log-enable info+ --log-to-file
${TMP_DATA_DIR}/qpidd.log.cluster1.2" CLUSTER_C1_2
+ start_broker ${TMP_DATA_DIR}/cluster/c2.1 "${MODULES} ${CLUSTER_MODULE}
--cluster-name test-cluster-2 --log-enable info+ --log-to-file
${TMP_DATA_DIR}/qpidd.log.cluster2.1" CLUSTER_C2_1
+ start_broker ${TMP_DATA_DIR}/cluster/c2.2 "${MODULES} ${CLUSTER_MODULE}
--cluster-name test-cluster-2 --log-enable info+ --log-to-file
${TMP_DATA_DIR}/qpidd.log.cluster2.2" CLUSTER_C2_2
+ fi
+ rm qpidd.port
+}
+
+stop_brokers() {
+ ${QPIDD_EXEC} -q --port ${LOCAL_PORT}
+ ${QPIDD_EXEC} -q --port ${REMOTE_PORT}
+ if [ -n "${CLUSTERING_ENABLED}" ]; then
+ ${QPID_CLUSTER_EXEC} --all-stop --force localhost:${CLUSTER_C1_1}
+ ${QPID_CLUSTER_EXEC} --all-stop --force localhost:${CLUSTER_C2_1}
+ fi
+}
+
+if test -d ${PYTHON_DIR} ; then
+ start_brokers
+ if [ -z ${CLUSTERING_ENABLED} ]; then
+ echo "Running federation tests using brokers on local port ${LOCAL_PORT},
remote port ${REMOTE_PORT} (NOTE: clustering is DISABLED)"
+ else
+ echo "Running federation tests using brokers on local port ${LOCAL_PORT},
remote port ${REMOTE_PORT}, local cluster nodes ${CLUSTER_C1_1} ${CLUSTER_C1_2}, remote
cluster nodes ${CLUSTER_C2_1} ${CLUSTER_C2_2}"
+ fi
+ if [ -z ${USE_LONG_TEST} ]; then
+ echo "NOTE: To run a full set of federation system tests, use \"make
check-long\"."
+ fi
+ ${QPID_PYTHON_TEST} -m ${MODULENAME} ${SKIPTESTS} -b localhost:$REMOTE_PORT
-Dlocal-port=$LOCAL_PORT -Dremote-port=$REMOTE_PORT
-Dlocal-cluster-ports="$CLUSTER_C1_1 $CLUSTER_C1_2"
-Dremote-cluster-ports="$CLUSTER_C2_1 $CLUSTER_C2_2" $@
+ RETCODE=$?
+ stop_brokers
+ if test x$RETCODE != x0; then
+ echo "FAIL federation tests"; exit 1;
+ fi
+fi
Property changes on: store/trunk/cpp/tests/federation/run_federation_sys_tests
___________________________________________________________________
Added: svn:executable
+ *
Added: store/trunk/cpp/tests/federation/run_long_federation_sys_tests
===================================================================
--- store/trunk/cpp/tests/federation/run_long_federation_sys_tests
(rev 0)
+++ store/trunk/cpp/tests/federation/run_long_federation_sys_tests 2011-07-19 20:00:56 UTC
(rev 4466)
@@ -0,0 +1,27 @@
+#! /bin/bash
+#
+# Copyright (c) 2010 Red Hat, Inc.
+#
+# This file is part of the Qpid async store library msgstore.so.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+# USA
+#
+# The GNU Lesser General Public License is available in the file COPYING.
+
+
+# Run the federation system tests (long version).
+
+./run_federation_sys_tests LONG_TEST $@
Property changes on: store/trunk/cpp/tests/federation/run_long_federation_sys_tests
___________________________________________________________________
Added: svn:executable
+ *
Modified: store/trunk/cpp/tests/python_tests/store_test.py
===================================================================
--- store/trunk/cpp/tests/python_tests/store_test.py 2011-07-11 11:55:43 UTC (rev 4465)
+++ store/trunk/cpp/tests/python_tests/store_test.py 2011-07-19 20:00:56 UTC (rev 4466)
@@ -31,8 +31,8 @@
"""Return the broker args necessary to load the async
store"""
assert BrokerTest.store_lib
if store_dir == None:
- return ["--load-module", BrokerTest.store_lib]
- return ["--load-module", BrokerTest.store_lib, "--store-dir",
store_dir]
+ return []
+ return ["--store-dir", store_dir]
class Qmf:
"""
Modified: store/trunk/cpp/tests/run_python_tests
===================================================================
--- store/trunk/cpp/tests/run_python_tests 2011-07-11 11:55:43 UTC (rev 4465)
+++ store/trunk/cpp/tests/run_python_tests 2011-07-19 20:00:56 UTC (rev 4466)
@@ -46,7 +46,7 @@
xLONG_TEST)
DEFAULT_PYTHON_TESTS= ;;
x)
- DEFAULT_PYTHON_TESTS="*.client_persistence.*
*.flow_to_disk.SimpleMaxSizeCountTest.*
*.flow_to_disk.MultiDurableQueue*.test_mixed_limit_1
*.flow_to_disk.MultiQueue*.test_mixed_limit_1 *.resize.SimpleTest.*" ;;
+ DEFAULT_PYTHON_TESTS="*.client_persistence.*
*.flow_to_disk.SimpleMaxSizeCountTest.*
*.flow_to_disk.MultiDurableQueue*.test_mixed_limit_1
*.flow_to_disk.MultiQueue*.test_mixed_limit_1 *.resize.SimpleTest.* *.federation.*"
;;
*)
DEFAULT_PYTHON_TESTS=$1
esac
Modified: store/trunk/cpp/tests/system_test.sh
===================================================================
--- store/trunk/cpp/tests/system_test.sh 2011-07-11 11:55:43 UTC (rev 4465)
+++ store/trunk/cpp/tests/system_test.sh 2011-07-19 20:00:56 UTC (rev 4466)
@@ -29,6 +29,7 @@
echo "WARNING: QPID_DIR is not set skipping system tests."
exit
fi
+STORE_LIB=../lib/.libs/msgstore.so
xml_spec=$QPID_DIR/specs/amqp.0-10-qpid-errata.xml
test -f $xml_spec || error "$xml_spec not found: invalid \$QPID_DIR ?"
Modified: store/trunk/cpp/tests/tests_env.sh
===================================================================
--- store/trunk/cpp/tests/tests_env.sh 2011-07-11 11:55:43 UTC (rev 4465)
+++ store/trunk/cpp/tests/tests_env.sh 2011-07-19 20:00:56 UTC (rev 4466)
@@ -91,6 +91,19 @@
fi
# Paths and dirs
+ #if test -z ${abs_srcdir}; then
+ # abs_srcdir=`pwd`
+ #fi
+ source $QPID_BLD/src/tests/test_env.sh
+ # Override these two settings from test_env.sh:
+ export RECEIVER_EXEC=$QPID_TEST_EXEC_DIR/qpid-receive
+ export SENDER_EXEC=$QPID_TEST_EXEC_DIR/qpid-send
+
+ echo "abs_srcdir=$abs_srcdir"
+ export STORE_LIB="`pwd`/../lib/.libs/msgstore.so"
+ export STORE_ENABLE=1
+ export CLUSTER_LIB="${QPID_BLD}/src/.libs/cluster.so"
+
PYTHON_DIR="${QPID_DIR}/python"
export
PYTHONPATH="${PYTHONPATH}":"${PYTHON_DIR}":"${QPID_DIR}/extras/qmf/src/py":"${QPID_DIR}/tools/src/py":"${QPID_DIR}/cpp/src/tests":"${abs_srcdir}"
@@ -128,7 +141,6 @@
# Test Data
fi
-
}
@@ -244,8 +256,8 @@
# Check expected environment vars are set
func_checkpaths PYTHON_DIR PYTHONPATH TMP_DATA_DIR
-func_checklibs STORE_LIB
-func_checkexecs QPIDD_EXEC
+func_checklibs STORE_LIB CLUSTER_LIB
+func_checkexecs QPIDD_EXEC QPID_CONFIG_EXEC QPID_ROUTE_EXEC SENDER_EXEC RECEIVER_EXEC
FAILING_PYTHON_TESTS="${abs_srcdir}/failing_python_tests.txt"