[rhmessaging-commits] rhmessaging commits: r4466 - in store/trunk/cpp: tests and 3 other directories.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Tue Jul 19 16:00:56 EDT 2011


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"
 



More information about the rhmessaging-commits mailing list