You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2009/11/30 20:34:39 UTC

svn commit: r885557 - in /qpid/trunk/qpid/cpp: ./ examples/ src/ src/tests/

Author: aconway
Date: Mon Nov 30 19:34:36 2009
New Revision: 885557

URL: http://svn.apache.org/viewvc?rev=885557&view=rev
Log:
Clean up test environment variables, prepare for running more tests in cmake.

   - consolidate test env vars in test_env.sh, also useful from command line.
   - generate test_env.sh with autoconf/cmake to cover library location differences.
   - Remove explicit mention of .libs, use $QPID_MODULE_DIR to load modules.
   - Fix run_test to run valgrind under cmake

Added:
    qpid/trunk/qpid/cpp/src/tests/test_env.sh.in
Removed:
    qpid/trunk/qpid/cpp/src/tests/python_env.sh
    qpid/trunk/qpid/cpp/src/tests/test_env.sh
Modified:
    qpid/trunk/qpid/cpp/bootstrap
    qpid/trunk/qpid/cpp/configure.ac
    qpid/trunk/qpid/cpp/examples/verify
    qpid/trunk/qpid/cpp/src/CMakeLists.txt
    qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt
    qpid/trunk/qpid/cpp/src/tests/ClusterFailover.cpp
    qpid/trunk/qpid/cpp/src/tests/Makefile.am
    qpid/trunk/qpid/cpp/src/tests/PartialFailure.cpp
    qpid/trunk/qpid/cpp/src/tests/ReplicationTest.cpp
    qpid/trunk/qpid/cpp/src/tests/XmlClientSessionTest.cpp
    qpid/trunk/qpid/cpp/src/tests/cluster_test.cpp
    qpid/trunk/qpid/cpp/src/tests/clustered_replication_test
    qpid/trunk/qpid/cpp/src/tests/federated_cluster_test
    qpid/trunk/qpid/cpp/src/tests/federated_topic_test
    qpid/trunk/qpid/cpp/src/tests/python_tests
    qpid/trunk/qpid/cpp/src/tests/reliable_replication_test
    qpid/trunk/qpid/cpp/src/tests/replication_test
    qpid/trunk/qpid/cpp/src/tests/run_acl_tests
    qpid/trunk/qpid/cpp/src/tests/run_cli_tests
    qpid/trunk/qpid/cpp/src/tests/run_cluster_tests
    qpid/trunk/qpid/cpp/src/tests/run_failover_soak
    qpid/trunk/qpid/cpp/src/tests/run_federation_tests
    qpid/trunk/qpid/cpp/src/tests/run_header_test
    qpid/trunk/qpid/cpp/src/tests/run_ring_queue_test
    qpid/trunk/qpid/cpp/src/tests/run_test
    qpid/trunk/qpid/cpp/src/tests/ssl_test
    qpid/trunk/qpid/cpp/src/tests/start_cluster
    qpid/trunk/qpid/cpp/src/tests/test_tools.h

Modified: qpid/trunk/qpid/cpp/bootstrap
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bootstrap?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bootstrap (original)
+++ qpid/trunk/qpid/cpp/bootstrap Mon Nov 30 19:34:36 2009
@@ -8,7 +8,7 @@
 # the real ones.
 cat > src/rubygen.mk <<EOF
 \$(srcdir)/rubygen.mk: force
-	\$(rgen_cmd)
+	\$(rgen_cmd)  \$(srcdir)/rubygen.mk
 EOF
 cat > src/managementgen.mk <<EOF
 \$(srcdir)/managementgen.mk: force

Modified: qpid/trunk/qpid/cpp/configure.ac
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/configure.ac?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/configure.ac (original)
+++ qpid/trunk/qpid/cpp/configure.ac Mon Nov 30 19:34:36 2009
@@ -499,6 +499,10 @@
 
 AM_PATH_PYTHON()
 
+# Used by env scripts to find libraries in cmake or autoconf builds.
+builddir_lib_suffix="/.libs"
+AC_SUBST([builddir_lib_suffix])
+
 # Files to generate	
 AC_CONFIG_FILES([
   Makefile
@@ -520,6 +524,7 @@
   etc/Makefile
   src/Makefile
   src/tests/Makefile
+  src/tests/test_env.sh
   docs/man/Makefile
   docs/api/Makefile
   docs/api/user.doxygen

Modified: qpid/trunk/qpid/cpp/examples/verify
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/examples/verify?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/examples/verify (original)
+++ qpid/trunk/qpid/cpp/examples/verify Mon Nov 30 19:34:36 2009
@@ -30,7 +30,8 @@
 #
 
 QPID_DATA_DIR=
-export QPID_DATA_DIR
+QPID_NO_MODULE_DIR=1
+export QPID_DATA_DIR QPID_NO_MODULE_DIR
 
 cleanup() {
     test -n "$QPIDD" &&  $QPIDD -q # Private broker

Modified: qpid/trunk/qpid/cpp/src/CMakeLists.txt
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/CMakeLists.txt?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/src/CMakeLists.txt Mon Nov 30 19:34:36 2009
@@ -324,6 +324,7 @@
                qpid/xml/XmlExchange.cpp
                qpid/xml/XmlExchange.h
                qpid/xml/XmlExchangePlugin.cpp)
+  set_target_properties (xml PROPERTIES PREFIX "")
   target_link_libraries (xml xerces-c xqilla qpidbroker pthread)
   if (CMAKE_COMPILER_IS_GNUCXX)
     set_target_properties (xml PROPERTIES
@@ -356,6 +357,7 @@
        qpid/acl/AclReader.h
       )
   add_library (acl MODULE ${acl_SOURCES})
+  set_target_properties (acl PROPERTIES PREFIX "")
   target_link_libraries (acl qpidbroker ${Boost_PROGRAM_OPTIONS_LIBRARY})
   if (CMAKE_COMPILER_IS_GNUCXX)
     set_target_properties (acl PROPERTIES
@@ -873,8 +875,7 @@
              qpid/replication/ReplicatingEventListener.h
             )
 target_link_libraries (replicating_listener qpidbroker ${Boost_PROGRAM_OPTIONS_LIBRARY})
-set_target_properties (replicating_listener PROPERTIES
-                       PREFIX "")
+set_target_properties (replicating_listener PROPERTIES PREFIX "")
 if (CMAKE_COMPILER_IS_GNUCXX)
   set_target_properties(replicating_listener PROPERTIES
                         LINK_FLAGS -Wl,--no-undefined)
@@ -893,8 +894,7 @@
              qpid/replication/ReplicationExchange.h
             )
 target_link_libraries (replicating_exchange qpidbroker)
-set_target_properties (replicating_exchange PROPERTIES
-                       PREFIX "")
+set_target_properties (replicating_exchange PROPERTIES PREFIX "")
 if (CMAKE_COMPILER_IS_GNUCXX)
   set_target_properties(replicating_exchange PROPERTIES
                         LINK_FLAGS -Wl,--no-undefined)

Modified: qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt Mon Nov 30 19:34:36 2009
@@ -28,6 +28,16 @@
 
 include (FindPythonInterp)
 
+# Create the environment scripts for tests
+set (abs_srcdir ${CMAKE_CURRENT_SOURCE_DIR})
+set (abs_builddir ${CMAKE_CURRENT_BINARY_DIR})
+set (abs_top_srcdir ${CMAKE_SOURCE_DIR})
+set (abs_top_builddir ${CMAKE_BINARY_DIR})
+set (builddir_lib_suffix "")
+configure_file (${CMAKE_CURRENT_SOURCE_DIR}/test_env.sh.in
+  ${CMAKE_CURRENT_BINARY_DIR}/test_env.sh)
+
+
 # If valgrind is selected in the configuration step, set up the path to it
 # for CTest.
 if (ENABLE_VALGRIND)
@@ -158,9 +168,10 @@
 remember_location(unit_test)
 
 add_library (shlibtest MODULE shlibtest.cpp)
-#libshlibtest_la_LDFLAGS = -module -rpath $(abs_builddir)
 
-#include cluster.mk
+# include(cluster.cmake)
+
+# FIXME aconway 2009-11-30: enable SSL
 #if SSL
 #include ssl.mk
 #endif

Modified: qpid/trunk/qpid/cpp/src/tests/ClusterFailover.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/ClusterFailover.cpp?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/ClusterFailover.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/ClusterFailover.cpp Mon Nov 30 19:34:36 2009
@@ -54,7 +54,7 @@
 // Test re-connecting with same session name after a failure.
 QPID_AUTO_TEST_CASE(testReconnectSameSessionName) {
     ostringstream clusterLib;
-    clusterLib << getLibPath("CLUSTER_LIB", "../.libs/cluster.so");
+    clusterLib << getLibPath("CLUSTER_LIB");
     ClusterFixture::Args args = list_of<string>("--auth")("no")("--no-module-dir")("--no-data-dir")("--load-module")(clusterLib.str());
     ClusterFixture cluster(2, args, -1);
     Client c0(cluster[0], "foo");

Modified: qpid/trunk/qpid/cpp/src/tests/Makefile.am
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/Makefile.am?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/Makefile.am (original)
+++ qpid/trunk/qpid/cpp/src/tests/Makefile.am Mon Nov 30 19:34:36 2009
@@ -23,6 +23,7 @@
 
 abs_builddir=@abs_builddir@
 abs_srcdir=@abs_srcdir@
+
 extra_libs = 
 lib_client = $(abs_builddir)/../libqpidclient.la
 lib_common = $(abs_builddir)/../libqpidcommon.la
@@ -280,12 +281,7 @@
 TESTS_ENVIRONMENT = \
     VALGRIND=$(VALGRIND) \
     LIBTOOL="$(LIBTOOL)" \
-    srcdir=$(srcdir) \
-    top_builddir=$(top_builddir) \
     QPID_DATA_DIR= \
-    ACL_LIB=../.libs/acl.so \
-    CLUSTER_LIB=../.libs/cluster.so \
-    TEST_STORE_LIB=.libs/test_store.so \
     BOOST_TEST_SHOW_PROGRESS=yes \
     $(srcdir)/run_test 
 
@@ -332,7 +328,6 @@
 
 EXTRA_DIST+=						\
 	CMakeLists.txt					\
-	python_env.sh					\
 	fanout_perftest					\
 	shared_perftest					\
 	multiq_perftest					\

Modified: qpid/trunk/qpid/cpp/src/tests/PartialFailure.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/PartialFailure.cpp?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/PartialFailure.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/PartialFailure.cpp Mon Nov 30 19:34:36 2009
@@ -53,8 +53,8 @@
 
 void updateArgs(ClusterFixture::Args& args, size_t index) {
     ostringstream clusterLib, testStoreLib, storeName;
-    clusterLib << getLibPath("CLUSTER_LIB", "../.libs/cluster.so");
-    testStoreLib << getLibPath("TEST_STORE_LIB", ".libs/test_store.so");
+    clusterLib << getLibPath("CLUSTER_LIB");
+    testStoreLib << getLibPath("TEST_STORE_LIB");
     storeName << "s" << index;
     args.push_back("--auth");
     args.push_back("no");

Modified: qpid/trunk/qpid/cpp/src/tests/ReplicationTest.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/ReplicationTest.cpp?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/ReplicationTest.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/ReplicationTest.cpp Mon Nov 30 19:34:36 2009
@@ -47,12 +47,13 @@
 
 QPID_AUTO_TEST_SUITE(ReplicationTestSuite)
 
+// FIXME aconway 2009-11-26: clean this up.
 // The CMake-based build passes in the module suffix; if it's not there, this
 // is a Linux/UNIX libtool-based build.
 #if defined (QPID_MODULE_SUFFIX)
 qpid::sys::Shlib plugin("replicating_listener" QPID_MODULE_SUFFIX);
 #else
-qpid::sys::Shlib plugin("../.libs/replicating_listener.so");
+qpid::sys::Shlib plugin(getLibPath("REPLICATING_LISTENER_LIB"));
 #endif
 
 qpid::broker::Broker::Options getBrokerOpts(const std::vector<std::string>& args)

Modified: qpid/trunk/qpid/cpp/src/tests/XmlClientSessionTest.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/XmlClientSessionTest.cpp?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/XmlClientSessionTest.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/XmlClientSessionTest.cpp Mon Nov 30 19:34:36 2009
@@ -55,11 +55,8 @@
 using std::cout;
 using std::endl;
 
-#if defined (QPID_MODULE_SUFFIX)
-    Shlib shlib("../xml" QPID_MODULE_SUFFIX);
-#else
-    Shlib shlib("../.libs/xml.so");
-#endif
+
+Shlib shlib(getLibPath("XML_LIB"));
 
 class SubscribedLocalQueue : public LocalQueue {
   private:

Modified: qpid/trunk/qpid/cpp/src/tests/cluster_test.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/cluster_test.cpp?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/cluster_test.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/cluster_test.cpp Mon Nov 30 19:34:36 2009
@@ -72,7 +72,7 @@
 
 void prepareArgs(ClusterFixture::Args& args, const bool durableFlag = false) {
     ostringstream clusterLib;
-    clusterLib << getLibPath("CLUSTER_LIB", "../.libs/cluster.so");
+    clusterLib << getLibPath("CLUSTER_LIB");
     args += "--auth", "no", "--no-module-dir", "--load-module", clusterLib.str();
     if (durableFlag)
         args += "--load-module", getLibPath("STORE_LIB"), "TMP_DATA_DIR";
@@ -227,7 +227,7 @@
     char cwd[1024];
     BOOST_CHECK(::getcwd(cwd, sizeof(cwd)));
     ostringstream aclLib;
-    aclLib << getLibPath("ACL_LIB", "../.libs/acl.so");
+    aclLib << getLibPath("ACL_LIB");
     ClusterFixture::Args args;
     prepareArgs(args, durableFlag);
     args += "--log-enable=critical"; // Supress expected errors

Modified: qpid/trunk/qpid/cpp/src/tests/clustered_replication_test
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/clustered_replication_test?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/clustered_replication_test (original)
+++ qpid/trunk/qpid/cpp/src/tests/clustered_replication_test Mon Nov 30 19:34:36 2009
@@ -21,8 +21,7 @@
 
 # Test reliability of the replication feature in the face of link
 # failures:
-srcdir=`dirname $0`
-. $srcdir/python_env.sh
+source ./test_env.sh
 
 trap stop_brokers INT EXIT
 
@@ -58,8 +57,8 @@
     DR_CLUSTER=DR_$(hostname)_$$
 
     GENERAL_OPTS="--auth no --no-module-dir --no-data-dir --daemon --port 0 --log-to-stderr false"
-    PRIMARY_OPTS="--load-module ../.libs/replicating_listener.so --create-replication-queue true --replication-queue REPLICATION_QUEUE --load-module ../.libs/cluster.so --cluster-name $PRIMARY_CLUSTER"
-    DR_OPTS="--load-module ../.libs/replication_exchange.so --load-module ../.libs/cluster.so --cluster-name $DR_CLUSTER"
+    PRIMARY_OPTS="--load-module $QPID_MODULE_DIR/replicating_listener.so --create-replication-queue true --replication-queue REPLICATION_QUEUE --load-module $QPID_MODULE_DIR/cluster.so --cluster-name $PRIMARY_CLUSTER"
+    DR_OPTS="--load-module $QPID_MODULE_DIR/replication_exchange.so --load-module $QPID_MODULE_DIR/cluster.so --cluster-name $DR_CLUSTER"
 
     rm -f repl*.tmp #cleanup any files left from previous run
 

Modified: qpid/trunk/qpid/cpp/src/tests/federated_cluster_test
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/federated_cluster_test?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/federated_cluster_test (original)
+++ qpid/trunk/qpid/cpp/src/tests/federated_cluster_test Mon Nov 30 19:34:36 2009
@@ -22,7 +22,7 @@
 # Test reliability of the replication feature in the face of link
 # failures:
 srcdir=`dirname $0`
-. $srcdir/python_env.sh
+source ./test_env.sh
 
 trap stop_brokers EXIT
 

Modified: qpid/trunk/qpid/cpp/src/tests/federated_topic_test
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/federated_topic_test?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/federated_topic_test (original)
+++ qpid/trunk/qpid/cpp/src/tests/federated_topic_test Mon Nov 30 19:34:36 2009
@@ -43,7 +43,7 @@
 done
 
 MY_DIR=$(dirname $(which $0))
-. $MY_DIR/python_env.sh
+source ./test_env.sh
 
 trap stop_brokers EXIT
 

Modified: qpid/trunk/qpid/cpp/src/tests/python_tests
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/python_tests?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/python_tests (original)
+++ qpid/trunk/qpid/cpp/src/tests/python_tests Mon Nov 30 19:34:36 2009
@@ -20,10 +20,9 @@
 #
 
 # Run the python tests.
-. `dirname $0`/python_env.sh
+source ./test_env.sh
 QPID_PORT=${QPID_PORT:-5672}
 PYTHON_TESTS=${PYTHON_TESTS:-$*}
 FAILING=${FAILING:-/dev/null}
 
-cd $PYTHON_DIR
-python commands/qpid-python-test -b localhost:$QPID_PORT -I $FAILING $PYTHON_TESTS || exit 1
+python $QPID_PYTHON_TEST -b localhost:$QPID_PORT -I $FAILING $PYTHON_TESTS || exit 1

Modified: qpid/trunk/qpid/cpp/src/tests/reliable_replication_test
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/reliable_replication_test?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/reliable_replication_test (original)
+++ qpid/trunk/qpid/cpp/src/tests/reliable_replication_test Mon Nov 30 19:34:36 2009
@@ -21,8 +21,8 @@
 
 # Test reliability of the replication feature in the face of link
 # failures:
-MY_DIR=`dirname \`which $0\``
-. ${MY_DIR}/python_env.sh
+
+source ./test_env.sh
 
 trap stop_brokers EXIT
 
@@ -39,19 +39,18 @@
 
 setup() {
     rm -f replication-source.log replication-dest.log
-    ../qpidd --daemon --port 0 --no-data-dir --no-module-dir --auth no --load-module ../.libs/replicating_listener.so --replication-queue replication --create-replication-queue true  --log-enable trace+ --log-to-file replication-source.log --log-to-stderr 0 > qpidd-repl.port
+    ../qpidd --daemon --port 0 --no-data-dir --no-module-dir --auth no --load-module $QPID_MODULE_DIR/replicating_listener.so --replication-queue replication --create-replication-queue true  --log-enable trace+ --log-to-file replication-source.log --log-to-stderr 0 > qpidd-repl.port
     BROKER_A=`cat qpidd-repl.port`
 
-    ../qpidd --daemon --port 0 --no-data-dir --no-module-dir --auth no --load-module ../.libs/replication_exchange.so  --log-enable info+ --log-to-file replication-dest.log --log-to-stderr 0 > qpidd-repl.port
+    ../qpidd --daemon --port 0 --no-data-dir --no-module-dir --auth no --load-module $QPID_MODULE_DIR/replication_exchange.so  --log-enable info+ --log-to-file replication-dest.log --log-to-stderr 0 > qpidd-repl.port
     BROKER_B=`cat qpidd-repl.port`
 
-    #../qpidd --port 5555 --no-data-dir --no-module-dir --auth no --load-module ../.libs/replicating_listener.so --replication-queue replication --create-replication-queue true  --log-enable trace+ --log-to-file replication-source.log --log-to-stderr 0 &
+    #../qpidd --port 5555 --no-data-dir --no-module-dir --auth no --load-module $QPID_MODULE_DIR/replicating_listener.so --replication-queue replication --create-replication-queue true  --log-enable trace+ --log-to-file replication-source.log --log-to-stderr 0 &
     #BROKER_A=5555
 
-    #../qpidd --port 6666 --no-data-dir --no-module-dir --auth no --load-module ../.libs/replication_exchange.so  --log-enable info+ --log-to-file replication-dest.log --log-to-stderr 0 &
+    #../qpidd --port 6666 --no-data-dir --no-module-dir --auth no --load-module $QPID_MODULE_DIR/replication_exchange.so  --log-enable info+ --log-to-file replication-dest.log --log-to-stderr 0 &
     #BROKER_B=6666
     echo "Testing replication from port $BROKER_A to port $BROKER_B"
-    export PYTHONPATH=$PYTHON_DIR
 
     $PYTHON_COMMANDS/qpid-config -a "localhost:$BROKER_B" add exchange replication replication
     $PYTHON_COMMANDS/qpid-route --ack 500 queue add "localhost:$BROKER_B" "localhost:$BROKER_A" replication replication
@@ -79,7 +78,7 @@
     echo "Route re-established"
 }
 
-if test -d ${PYTHON_DIR} && test -e ../.libs/replicating_listener.so && test -e ../.libs/replication_exchange.so ;  then
+if test -d ${PYTHON_DIR} && test -e $QPID_MODULE_DIR/replicating_listener.so && test -e $QPID_MODULE_DIR/replication_exchange.so ;  then
     setup
     for i in `seq 1 100000`; do echo Message $i; done > replicated.expected
     send &

Modified: qpid/trunk/qpid/cpp/src/tests/replication_test
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/replication_test?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/replication_test (original)
+++ qpid/trunk/qpid/cpp/src/tests/replication_test Mon Nov 30 19:34:36 2009
@@ -20,8 +20,8 @@
 #
 
 # Run a test of the replication feature
-MY_DIR=`dirname \`which $0\``
-. `dirname $0`/python_env.sh
+
+source ./test_env.sh
 
 trap stop_brokers INT TERM QUIT
 
@@ -36,16 +36,14 @@
     fi
 }
 
-if test -d ${PYTHON_DIR} && test -f ../.libs/replicating_listener.so && test -f ../.libs/replication_exchange.so;  then
+if test -d ${PYTHON_DIR} && test -f $QPID_MODULE_DIR/replicating_listener.so && test -f $QPID_MODULE_DIR/replication_exchange.so;  then
     rm -f queue-*.repl replication-*.log #cleanup from any earlier runs
 
-    ../qpidd --daemon --port 0 --no-data-dir --no-module-dir --auth no --load-module ../.libs/replicating_listener.so --replication-queue replication --create-replication-queue true  --log-enable info+ --log-to-file replication-source.log  --log-to-stderr 0 > qpidd.port
+    ../qpidd --daemon --port 0 --no-data-dir --no-module-dir --auth no --load-module $QPID_MODULE_DIR/replicating_listener.so --replication-queue replication --create-replication-queue true  --log-enable info+ --log-to-file replication-source.log  --log-to-stderr 0 > qpidd.port
     BROKER_A=`cat qpidd.port`
 
-    ../qpidd --daemon --port 0 --no-data-dir --no-module-dir --auth no --load-module ../.libs/replication_exchange.so  --log-enable info+ --log-to-file replication-dest.log  --log-to-stderr 0 > qpidd.port
+    ../qpidd --daemon --port 0 --no-data-dir --no-module-dir --auth no --load-module $QPID_MODULE_DIR/replication_exchange.so  --log-enable info+ --log-to-file replication-dest.log  --log-to-stderr 0 > qpidd.port
     BROKER_B=`cat qpidd.port`
-    PYTHONPATH=$PYTHON_DIR
-    export PYTHONPATH
     echo "Running replication test between localhost:$BROKER_A and localhost:$BROKER_B"
 
     $PYTHON_COMMANDS/qpid-config -a "localhost:$BROKER_B" add exchange replication replication
@@ -120,10 +118,10 @@
 
     # now check offsets working (enqueue based on position being set, not queue abs position)
     
-    ../qpidd --daemon --port 0 --no-data-dir --no-module-dir --auth no --load-module ../.libs/replicating_listener.so --replication-queue replication --create-replication-queue true  --log-enable info+ --log-to-file replication-source.log  --log-to-stderr 0 > qpidd.port 
+    ../qpidd --daemon --port 0 --no-data-dir --no-module-dir --auth no --load-module $QPID_MODULE_DIR/replicating_listener.so --replication-queue replication --create-replication-queue true  --log-enable info+ --log-to-file replication-source.log  --log-to-stderr 0 > qpidd.port 
     BROKER_A=`cat qpidd.port`
 
-    ../qpidd --daemon --port 0 --no-data-dir --no-module-dir --auth no --load-module ../.libs/replication_exchange.so  --log-enable info+ --log-to-file replication-dest.log  --log-to-stderr 0 > qpidd.port
+    ../qpidd --daemon --port 0 --no-data-dir --no-module-dir --auth no --load-module $QPID_MODULE_DIR/replication_exchange.so  --log-enable info+ --log-to-file replication-dest.log  --log-to-stderr 0 > qpidd.port
     BROKER_B=`cat qpidd.port`
 
     $PYTHON_COMMANDS/qpid-config -a "localhost:$BROKER_B" add exchange replication replication
@@ -151,7 +149,7 @@
     # now check offsets working
     ../qpidd -q --port $BROKER_B
     unset BROKER_B
-    ../qpidd --daemon --port 0 --no-data-dir --no-module-dir --auth no --load-module ../.libs/replication_exchange.so  --log-enable info+ --log-to-file replication-dest.log  --log-to-stderr 0 > qpidd.port
+    ../qpidd --daemon --port 0 --no-data-dir --no-module-dir --auth no --load-module $QPID_MODULE_DIR/replication_exchange.so  --log-enable info+ --log-to-file replication-dest.log  --log-to-stderr 0 > qpidd.port
     BROKER_B=`cat qpidd.port`
 
     $PYTHON_COMMANDS/qpid-config -a "localhost:$BROKER_B" add queue queue-e

Modified: qpid/trunk/qpid/cpp/src/tests/run_acl_tests
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_acl_tests?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/run_acl_tests (original)
+++ qpid/trunk/qpid/cpp/src/tests/run_acl_tests Mon Nov 30 19:34:36 2009
@@ -20,13 +20,13 @@
 #
 
 # Run the acl tests. $srcdir is set by the Makefile.
-. `dirname $0`/python_env.sh
+source ./test_env.sh
 DATA_DIR=`pwd`/data_dir
 
 trap stop_brokers INT TERM QUIT
 
 start_brokers() {
-    ../qpidd --daemon --port 0 --no-module-dir --data-dir $DATA_DIR --load-module ../.libs/acl.so --acl-file policy.acl --auth no > qpidd.port
+    ../qpidd --daemon --port 0 --no-module-dir --data-dir $DATA_DIR --load-module $QPID_MODULE_DIR/acl.so --acl-file policy.acl --auth no > qpidd.port
     LOCAL_PORT=`cat qpidd.port`
 }
 
@@ -35,9 +35,9 @@
 }
 
 test_loading_acl_from_absolute_path(){
-    POLICY_FILE=$PWD/$srcdir/policy.acl
+    POLICY_FILE=$srcdir/policy.acl
     rm -f temp.log
-    PORT=`../qpidd --daemon --port 0 --no-module-dir --no-data-dir --auth no --load-module ../.libs/acl.so --acl-file $POLICY_FILE -t --log-to-file temp.log  2>/dev/null`
+    PORT=`../qpidd --daemon --port 0 --no-module-dir --no-data-dir --auth no --load-module $QPID_MODULE_DIR/acl.so --acl-file $POLICY_FILE -t --log-to-file temp.log  2>/dev/null`
     ACL_FILE=`grep "notice Read ACL file" temp.log | sed 's/^.*Read ACL file //'`
    ../qpidd -q --port $PORT
    if test "$ACL_FILE" != "\"$POLICY_FILE\""; then
@@ -55,7 +55,7 @@
     echo "Running acl tests using brokers on ports $LOCAL_PORT"
     PYTHONPATH=$PYTHON_DIR:$srcdir
     export PYTHONPATH
-    $PYTHON_COMMANDS/qpid-python-test -b localhost:$LOCAL_PORT -m acl || EXITCODE=1
+    $QPID_PYTHON_TEST -b localhost:$LOCAL_PORT -m acl || EXITCODE=1
     stop_brokers || EXITCODE=1
     test_loading_acl_from_absolute_path || EXITCODE=1
     rm -rf $DATA_DIR

Modified: qpid/trunk/qpid/cpp/src/tests/run_cli_tests
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_cli_tests?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/run_cli_tests (original)
+++ qpid/trunk/qpid/cpp/src/tests/run_cli_tests Mon Nov 30 19:34:36 2009
@@ -20,8 +20,8 @@
 #
 
 # Run the cli-utility tests.
-MY_DIR=`dirname \`which $0\``
-. `dirname $0`/python_env.sh
+
+source ./test_env.sh
 CLI_DIR=$PYTHON_COMMANDS
 
 trap stop_brokers INT TERM QUIT
@@ -41,8 +41,6 @@
 if test -d ${PYTHON_DIR} ;  then
     start_brokers
     echo "Running CLI tests using brokers on ports $LOCAL_PORT $REMOTE_PORT"
-    PYTHONPATH=${PYTHON_DIR}:${MY_DIR}
-    export PYTHONPATH
     $PYTHON_COMMANDS/qpid-python-test -m cli_tests -b localhost:$LOCAL_PORT -Dremote-port=$REMOTE_PORT -Dcli-dir=$CLI_DIR $@
     RETCODE=$?
     stop_brokers

Modified: qpid/trunk/qpid/cpp/src/tests/run_cluster_tests
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_cluster_tests?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/run_cluster_tests (original)
+++ qpid/trunk/qpid/cpp/src/tests/run_cluster_tests Mon Nov 30 19:34:36 2009
@@ -19,15 +19,12 @@
 # under the License.
 #
 
-srcdir=$(dirname $0)
-. $srcdir/test_env.sh checkout $srcdir/../../.. ../.. || exit 1
-. $srcdir/ais_check
+source ./test_env.sh
+source $srcdir/ais_check
 
 TEST_EXEC=$QPID_PYTHON_COMMANDS/qpid-python-test
 test -x  $TEST_EXEC || { echo Skipping test, $TEST_EXEC not found; exit 0; }
 
-PYTHONPATH=$srcdir:$PYTHONPATH
-
 # Delete old cluster test data
 OUTDIR=brokertest.tmp
 rm -rf $OUTDIR

Modified: qpid/trunk/qpid/cpp/src/tests/run_failover_soak
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_failover_soak?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/run_failover_soak (original)
+++ qpid/trunk/qpid/cpp/src/tests/run_failover_soak Mon Nov 30 19:34:36 2009
@@ -19,11 +19,12 @@
 # under the License.
 #
 
-. `dirname $0`/ais_check
+source ./test_env.sh
+. $srcdir/ais_check
 
 host=127.0.0.1
 
-MODULES=${MODULES:-../.libs}
+MODULES=${MODULES:-$QPID_MODULE_DIR}
 MESSAGES=${MESSAGES:-1000000}
 REPORT_FREQUENCY=${REPORT_FREQUENCY:-20000}
 VERBOSITY=${VERBOSITY:-10}

Modified: qpid/trunk/qpid/cpp/src/tests/run_federation_tests
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_federation_tests?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/run_federation_tests (original)
+++ qpid/trunk/qpid/cpp/src/tests/run_federation_tests Mon Nov 30 19:34:36 2009
@@ -20,8 +20,8 @@
 #
 
 # Run the federation tests.
-MY_DIR=`dirname \`which $0\``
-. `dirname $0`/python_env.sh
+
+source ./test_env.sh
 
 trap stop_brokers INT TERM QUIT
 
@@ -40,9 +40,7 @@
 if test -d ${PYTHON_DIR} ;  then
     start_brokers
     echo "Running federation tests using brokers on ports $LOCAL_PORT $REMOTE_PORT"
-    PYTHONPATH=${PYTHON_DIR}:${MY_DIR}
-    export PYTHONPATH
-    $PYTHON_COMMANDS/qpid-python-test -m federation -b localhost:$LOCAL_PORT -Dremote-port=$REMOTE_PORT $@
+    $QPID_PYTHON_TEST -m federation -b localhost:$LOCAL_PORT -Dremote-port=$REMOTE_PORT $@
     RETCODE=$?
     stop_brokers
     if test x$RETCODE != x0; then 

Modified: qpid/trunk/qpid/cpp/src/tests/run_header_test
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_header_test?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/run_header_test (original)
+++ qpid/trunk/qpid/cpp/src/tests/run_header_test Mon Nov 30 19:34:36 2009
@@ -24,13 +24,12 @@
 # in both directions
 
 srcdir=`dirname $0`
-. `dirname $0`/python_env.sh
+source ./test_env.sh
+
 test -f qpidd.port && QPID_PORT=`cat qpidd.port`
 
 if test -d ${PYTHON_DIR} ;  then
     ./header_test -p $QPID_PORT
-    PYTHONPATH=$PYTHON_DIR:$PYTHONPATH
-    export PYTHONPATH
     $srcdir/header_test.py "localhost" $QPID_PORT
 else 
     echo "Skipping header test as python libs not found"

Modified: qpid/trunk/qpid/cpp/src/tests/run_ring_queue_test
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_ring_queue_test?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/run_ring_queue_test (original)
+++ qpid/trunk/qpid/cpp/src/tests/run_ring_queue_test Mon Nov 30 19:34:36 2009
@@ -21,8 +21,8 @@
 #script to run a sequence of ring queue tests via make
 
 #setup path to find qpid-config and sender/receiver test progs
-srcdir=`dirname $0`
-. `dirname $0`/python_env.sh
+source ./test_env.sh
+
 export PATH=$PWD:$srcdir:$PYTHON_COMMANDS:$PATH
 
 #set port to connect to via env var

Modified: qpid/trunk/qpid/cpp/src/tests/run_test
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_test?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/run_test (original)
+++ qpid/trunk/qpid/cpp/src/tests/run_test Mon Nov 30 19:34:36 2009
@@ -32,7 +32,8 @@
 #
 
 srcdir=`dirname $0`
-. $srcdir/vg_check
+source ./test_env.sh
+source $srcdir/vg_check
 
 # Export variables from makefile.
 export srcdir
@@ -59,9 +60,6 @@
 --num-callers=25
 --log-file=$VG_LOG --
 "
-# FIXME aconway 2008-07-16: removed --trace-children=yes, problems with cluster tests forking
-# qpidd libtool script. Investigate & restore --trace-children if possible.
-
 ERROR=0
 if grep -l "^# Generated by .*libtool" "$1" >/dev/null 2>&1; then
     # This is a libtool "executable". Valgrind it if VALGRIND specified.
@@ -69,9 +67,15 @@
     # Hide output unless there's an error.
     $LIBTOOL --mode=execute $VALGRIND "$@" 2>&1 || ERROR=1
     test -n "$VALGRIND" && { vg_check $VG_LOG* || ERROR=1 ; }
-else
+elif file $1 | grep -q text; then
     # This is a non-libtool shell script, just execute it.
     exec "$@"
+else
+    # This is a real executable, valgrind it.
+    test -n "$VALGRIND" && VALGRIND="$VALGRIND $VALGRIND_OPTS"
+    # Hide output unless there's an error.
+    $VALGRIND "$@" 2>&1 || ERROR=1
+    test -n "$VALGRIND" && { vg_check $VG_LOG* || ERROR=1 ; }
 fi
 
 exit $ERROR

Modified: qpid/trunk/qpid/cpp/src/tests/ssl_test
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/ssl_test?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/ssl_test (original)
+++ qpid/trunk/qpid/cpp/src/tests/ssl_test Mon Nov 30 19:34:36 2009
@@ -21,6 +21,8 @@
 
 # Run a simple test over SSL
 
+source ./test_env.sh
+
 CONFIG=$(dirname $0)/config.null
 CERT_DIR=`pwd`/test_cert_db
 CERT_PW_FILE=`pwd`/cert.password
@@ -45,7 +47,7 @@
 }
 
 start_broker() {
-    PORT=`../qpidd --daemon --transport ssl --port 0 --ssl-port 0 --no-data-dir --no-module-dir --auth no --config $CONFIG --load-module ../.libs/ssl.so --ssl-cert-db $CERT_DIR --ssl-cert-password-file $CERT_PW_FILE --ssl-cert-name $TEST_HOSTNAME`
+    PORT=`../qpidd --daemon --transport ssl --port 0 --ssl-port 0 --no-data-dir --no-module-dir --auth no --config $CONFIG --load-module $QPID_MODULE_DIR/ssl.so --ssl-cert-db $CERT_DIR --ssl-cert-password-file $CERT_PW_FILE --ssl-cert-name $TEST_HOSTNAME`
 }
 
 stop_broker() {
@@ -74,7 +76,7 @@
 start_broker || error "Could not start broker"
 echo "Running SSL test on port $PORT"
 export QPID_NO_MODULE_DIR=1
-export QPID_LOAD_MODULE=../.libs/sslconnector.so
+export QPID_LOAD_MODULE=$QPID_MODULE_DIR/sslconnector.so
 export QPID_SSL_CERT_DB=${CERT_DIR}
 export QPID_SSL_CERT_PASSWORD_FILE=${CERT_PW_FILE}
 ./perftest --count ${COUNT} --port ${PORT} -P ssl -b $TEST_HOSTNAME --summary

Modified: qpid/trunk/qpid/cpp/src/tests/start_cluster
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/start_cluster?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/start_cluster (original)
+++ qpid/trunk/qpid/cpp/src/tests/start_cluster Mon Nov 30 19:34:36 2009
@@ -23,13 +23,14 @@
 #
 
 # Execute command with the ais group set.
+source ./test_env.sh
 . `dirname $0`/ais_check
 
 rm -f cluster*.log cluster.ports qpidd.port
 
 SIZE=${1:-3}; shift
 CLUSTER=$HOSTNAME.$$
-OPTS="-d --no-module-dir --load-module ../.libs/cluster.so  --cluster-name=$CLUSTER --auth=no --log-enable notice+ --log-enable debug+:cluster $@"
+OPTS="-d --no-module-dir --load-module $QPID_MODULE_DIR/cluster.so  --cluster-name=$CLUSTER --auth=no --log-enable notice+ --log-enable debug+:cluster $@"
 
 for (( i=0; i<SIZE; ++i )); do
     DDIR=`mktemp -d /tmp/start_cluster.XXXXXXXXXX`

Added: qpid/trunk/qpid/cpp/src/tests/test_env.sh.in
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/test_env.sh.in?rev=885557&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/test_env.sh.in (added)
+++ qpid/trunk/qpid/cpp/src/tests/test_env.sh.in Mon Nov 30 19:34:36 2009
@@ -0,0 +1,76 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+absdir() { echo `cd $1 && pwd`; }
+
+# Environment variables substituted by configure/cmake.
+export srcdir=@abs_srcdir@
+export builddir=@abs_builddir@
+export top_srcdir=@abs_top_srcdir@
+export top_builddir=@abs_top_builddir@
+
+export QPID_MODULE_DIR=$top_builddir/src@builddir_lib_suffix@
+export QPID_TEST_MODULE_DIR=$builddir@builddir_lib_suffix@
+
+# Other paths and directories
+if test -d $builddir/python ; then
+    export PYTHON_DIR=$builddir/python
+    export QPID_PYTHON_TEST=$PYTHON_DIR/commands/qpid-python-test
+elif test -d $top_srcdir/../python ; then
+    export PYTHON_DIR=$top_srcdir/../python
+    export QPID_PYTHON_TEST=$PYTHON_DIR/qpid-python-test
+fi
+if test -d $PYTHON_DIR; then
+    export PYTHON_COMMANDS=$PYTHON_DIR/commands
+    export PYTHONPATH=$srcdir:$PYTHON_DIR:$PYTHON_COMMANDS:$PYTHONPATH
+fi
+
+export QPID_TEST_EXEC_DIR=$builddir
+
+# qpidd executable
+export QPIDD_EXEC=$top_builddir/src/qpidd
+
+# Executable python scripts
+export QPID_CONFIG_EXEC=$PYTHON_COMMANDS/qpid-config
+export QPID_ROUTE_EXEC=$PYTHON_COMMANDS/qpid-route
+export QPID_CLUSTER_EXEC=$PYTHON_COMMANDS/qpid-cluster
+
+# Test executables
+export RECEIVER_EXEC=$QPID_TEST_EXEC_DIR/receiver
+export SENDER_EXEC=$QPID_TEST_EXEC_DIR/sender
+
+# Modules
+export TEST_STORE_LIB=$QPID_TEST_MODULE_DIR/test_store.so
+export REPLICATING_LISTENER_LIB=$QPID_MODULE_DIR/replicating_listener.so
+export REPLICATION_EXCHANGE_LIB=$QPID_MODULE_DIR/replication_exchange.so
+
+# Optional modules, set only if present
+exportmodule() { test -f $QPID_MODULE_DIR/$2 && eval "export $1=$QPID_MODULE_DIR/$2"; }
+exportmodule ACL_LIB acl.so
+exportmodule CLUSTER_LIB cluster.so
+exportmodule SSL_CONNECTOR_LIB ssl_connector.so
+exportmodule SSL_LIB ssl.so
+exportmodule WATCHDOG_LIB watchdog.so
+exportmodule XML_LIB xml.so
+
+
+# Qpid options
+export QPID_NO_MODULE_DIR=1	# Don't accidentally load installed modules
+export QPID_DATA_DIR= 		# Default to no data dir, not ~/.qpidd
+

Modified: qpid/trunk/qpid/cpp/src/tests/test_tools.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/test_tools.h?rev=885557&r1=885556&r2=885557&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/test_tools.h (original)
+++ qpid/trunk/qpid/cpp/src/tests/test_tools.h Mon Nov 30 19:34:36 2009
@@ -28,6 +28,8 @@
 #include <vector>
 #include <set>
 #include <ostream>
+#include <sstream>
+#include <exception>
 
 // Print a sequence
 template <class T> std::ostream& seqPrint(std::ostream& o, const T& seq) {
@@ -106,8 +108,11 @@
     const char* p = std::getenv(envName);
     if (p != 0)
         return p;
-    if (defaultPath == 0)
-        BOOST_FAIL("Environment variable " << envName << " not set.");
+    if (defaultPath == 0) {
+        std::ostringstream msg;
+        msg << "Environment variable " << envName << " not set.";
+        throw std::runtime_error(msg.str());
+    }
     return defaultPath;
 }
 



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org