You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by jr...@apache.org on 2016/04/21 14:31:35 UTC

svn commit: r1740289 [1/3] - in /qpid/trunk/qpid: cpp/ cpp/docs/design/ cpp/docs/src/ cpp/management/ cpp/management/python/ cpp/management/python/bin/ cpp/management/python/lib/ cpp/management/python/lib/qlslibs/ cpp/management/python/lib/qmf/ cpp/man...

Author: jross
Date: Thu Apr 21 12:31:34 2016
New Revision: 1740289

URL: http://svn.apache.org/viewvc?rev=1740289&view=rev
Log:
QPID-7207: Create independent cpp and python subtrees, with content from tools and extras

Added:
    qpid/trunk/qpid/cpp/CTestCustom.cmake
    qpid/trunk/qpid/cpp/management/
    qpid/trunk/qpid/cpp/management/python/
    qpid/trunk/qpid/cpp/management/python/.gitignore
    qpid/trunk/qpid/cpp/management/python/CMakeLists.txt
    qpid/trunk/qpid/cpp/management/python/LICENSE.txt
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/LICENSE.txt
    qpid/trunk/qpid/cpp/management/python/MANIFEST.in
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/MANIFEST.in
    qpid/trunk/qpid/cpp/management/python/NOTICE.txt
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/NOTICE.txt
    qpid/trunk/qpid/cpp/management/python/bin/
    qpid/trunk/qpid/cpp/management/python/bin/.gitignore
    qpid/trunk/qpid/cpp/management/python/bin/qmf-tool
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/py/qmf-tool
    qpid/trunk/qpid/cpp/management/python/bin/qpid-config
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/py/qpid-config
    qpid/trunk/qpid/cpp/management/python/bin/qpid-config.bat
    qpid/trunk/qpid/cpp/management/python/bin/qpid-ha
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/py/qpid-ha
    qpid/trunk/qpid/cpp/management/python/bin/qpid-ha.bat
    qpid/trunk/qpid/cpp/management/python/bin/qpid-printevents
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/py/qpid-printevents
    qpid/trunk/qpid/cpp/management/python/bin/qpid-printevents.bat
    qpid/trunk/qpid/cpp/management/python/bin/qpid-qls-analyze
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/py/qpid-qls-analyze
    qpid/trunk/qpid/cpp/management/python/bin/qpid-queue-stats
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/py/qpid-queue-stats
    qpid/trunk/qpid/cpp/management/python/bin/qpid-queue-stats.bat
    qpid/trunk/qpid/cpp/management/python/bin/qpid-receive
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/py/qpid-receive
    qpid/trunk/qpid/cpp/management/python/bin/qpid-route
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/py/qpid-route
    qpid/trunk/qpid/cpp/management/python/bin/qpid-route.bat
    qpid/trunk/qpid/cpp/management/python/bin/qpid-send
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/py/qpid-send
    qpid/trunk/qpid/cpp/management/python/bin/qpid-stat
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/py/qpid-stat
    qpid/trunk/qpid/cpp/management/python/bin/qpid-stat.bat
    qpid/trunk/qpid/cpp/management/python/bin/qpid-store-chk
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/py/qpid-store-chk
    qpid/trunk/qpid/cpp/management/python/bin/qpid-store-resize
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/py/qpid-store-resize
    qpid/trunk/qpid/cpp/management/python/bin/qpid-tool
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/py/qpid-tool
    qpid/trunk/qpid/cpp/management/python/bin/qpid-tool.bat
    qpid/trunk/qpid/cpp/management/python/lib/
    qpid/trunk/qpid/cpp/management/python/lib/.gitignore
    qpid/trunk/qpid/cpp/management/python/lib/README.txt
    qpid/trunk/qpid/cpp/management/python/lib/qlslibs/
      - copied from r1740288, qpid/trunk/qpid/tools/src/py/qlslibs/
    qpid/trunk/qpid/cpp/management/python/lib/qmf/
      - copied from r1740288, qpid/trunk/qpid/extras/qmf/src/py/qmf/
    qpid/trunk/qpid/cpp/management/python/lib/qpidstore/
      - copied from r1740288, qpid/trunk/qpid/tools/src/py/qpidstore/
    qpid/trunk/qpid/cpp/management/python/lib/qpidtoollibs/
      - copied from r1740288, qpid/trunk/qpid/tools/src/py/qpidtoollibs/
    qpid/trunk/qpid/cpp/management/python/setup.py
      - copied, changed from r1740288, qpid/trunk/qpid/tools/setup.py
    qpid/trunk/qpid/cpp/management/ruby/
    qpid/trunk/qpid/cpp/management/ruby/.gitignore
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/ruby/qpid_management/.gitignore
    qpid/trunk/qpid/cpp/management/ruby/.rspec
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/ruby/qpid_management/.rspec
    qpid/trunk/qpid/cpp/management/ruby/Gemfile
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/ruby/qpid_management/Gemfile
    qpid/trunk/qpid/cpp/management/ruby/Gemfile.lock
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/ruby/qpid_management/Gemfile.lock
    qpid/trunk/qpid/cpp/management/ruby/Rakefile
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/ruby/qpid_management/Rakefile
    qpid/trunk/qpid/cpp/management/ruby/lib/
      - copied from r1740288, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/
    qpid/trunk/qpid/cpp/management/ruby/qpid_management.gemspec
      - copied unchanged from r1740288, qpid/trunk/qpid/tools/src/ruby/qpid_management/qpid_management.gemspec
    qpid/trunk/qpid/cpp/management/ruby/spec/
      - copied from r1740288, qpid/trunk/qpid/tools/src/ruby/qpid_management/spec/
    qpid/trunk/qpid/cpp/src/tests/check_dependencies.py.in
    qpid/trunk/qpid/cpp/src/tests/common.py
    qpid/trunk/qpid/cpp/src/tests/env.ps1.in
    qpid/trunk/qpid/cpp/src/tests/env.py.in
    qpid/trunk/qpid/cpp/src/tests/env.sh.in
    qpid/trunk/qpid/cpp/src/tests/plano.py
    qpid/trunk/qpid/cpp/src/tests/run.py   (with props)
    qpid/trunk/qpid/cpp/src/tests/run_client_tests   (with props)
    qpid/trunk/qpid/cpp/src/tests/run_flow_control_tests   (with props)
    qpid/trunk/qpid/cpp/src/tests/run_idle_timeout_tests   (with props)
    qpid/trunk/qpid/cpp/src/tests/run_interop_tests   (with props)
    qpid/trunk/qpid/cpp/src/tests/run_ipv6_tests   (with props)
    qpid/trunk/qpid/cpp/src/tests/run_logging_tests   (with props)
    qpid/trunk/qpid/cpp/src/tests/run_performance_tests   (with props)
    qpid/trunk/qpid/cpp/src/tests/run_python_tests   (with props)
    qpid/trunk/qpid/cpp/src/tests/run_qmf_tests   (with props)
    qpid/trunk/qpid/cpp/src/tests/run_queue_redirect_tests
    qpid/trunk/qpid/cpp/src/tests/run_ring_queue_tests   (with props)
    qpid/trunk/qpid/cpp/src/tests/run_sasl_tests   (with props)
    qpid/trunk/qpid/cpp/src/tests/run_ssl_tests   (with props)
    qpid/trunk/qpid/cpp/src/tests/run_topic_tests   (with props)
    qpid/trunk/qpid/cpp/src/tests/run_transaction_tests   (with props)
    qpid/trunk/qpid/cpp/src/tests/run_unit_tests   (with props)
    qpid/trunk/qpid/python/qpid-python-test.bat   (with props)
    qpid/trunk/qpid/python/qpid_tests/
      - copied from r1740288, qpid/trunk/qpid/tests/src/py/qpid_tests/
Removed:
    qpid/trunk/qpid/cpp/docs/design/CONTENTS
    qpid/trunk/qpid/cpp/docs/src/
    qpid/trunk/qpid/cpp/src/tests/ais_test.cpp
    qpid/trunk/qpid/cpp/src/tests/allhosts
    qpid/trunk/qpid/cpp/src/tests/config.null
    qpid/trunk/qpid/cpp/src/tests/fanout_perftest
    qpid/trunk/qpid/cpp/src/tests/install_env.sh.in
    qpid/trunk/qpid/cpp/src/tests/ipv6_test
    qpid/trunk/qpid/cpp/src/tests/multiq_perftest
    qpid/trunk/qpid/cpp/src/tests/python_tests
    qpid/trunk/qpid/cpp/src/tests/python_tests.ps1
    qpid/trunk/qpid/cpp/src/tests/qpid-build-rinstall
    qpid/trunk/qpid/cpp/src/tests/quick_perftest
    qpid/trunk/qpid/cpp/src/tests/quick_topictest
    qpid/trunk/qpid/cpp/src/tests/quick_topictest.ps1
    qpid/trunk/qpid/cpp/src/tests/quick_txtest
    qpid/trunk/qpid/cpp/src/tests/rsynchosts
    qpid/trunk/qpid/cpp/src/tests/run_acl_tests.ps1
    qpid/trunk/qpid/cpp/src/tests/run_federation_sys_tests
    qpid/trunk/qpid/cpp/src/tests/run_federation_tests.ps1
    qpid/trunk/qpid/cpp/src/tests/run_header_test
    qpid/trunk/qpid/cpp/src/tests/run_header_test.ps1
    qpid/trunk/qpid/cpp/src/tests/run_headers_federation_tests
    qpid/trunk/qpid/cpp/src/tests/run_msg_group_tests.ps1
    qpid/trunk/qpid/cpp/src/tests/run_perftest
    qpid/trunk/qpid/cpp/src/tests/run_queue_flow_limit_tests
    qpid/trunk/qpid/cpp/src/tests/run_queue_redirect
    qpid/trunk/qpid/cpp/src/tests/run_ring_queue_test
    qpid/trunk/qpid/cpp/src/tests/run_test
    qpid/trunk/qpid/cpp/src/tests/run_test.ps1
    qpid/trunk/qpid/cpp/src/tests/shared_perftest
    qpid/trunk/qpid/cpp/src/tests/swig_python_tests
    qpid/trunk/qpid/cpp/src/tests/test.xquery
    qpid/trunk/qpid/cpp/src/tests/test_env.ps1.in
    qpid/trunk/qpid/cpp/src/tests/test_env.sh.in
    qpid/trunk/qpid/cpp/src/tests/test_env_common.sh
    qpid/trunk/qpid/cpp/src/tests/topic_perftest
    qpid/trunk/qpid/cpp/src/tests/vg_check
    qpid/trunk/qpid/extras/qmf/
    qpid/trunk/qpid/python/doc/
    qpid/trunk/qpid/python/todo.txt
    qpid/trunk/qpid/tests/
    qpid/trunk/qpid/tools/LICENSE.txt
    qpid/trunk/qpid/tools/MANIFEST.in
    qpid/trunk/qpid/tools/NOTICE.txt
    qpid/trunk/qpid/tools/setup.py
    qpid/trunk/qpid/tools/src/py/
    qpid/trunk/qpid/tools/src/ruby/
Modified:
    qpid/trunk/qpid/cpp/CMakeLists.txt
    qpid/trunk/qpid/cpp/INSTALL.txt
    qpid/trunk/qpid/cpp/src/CMakeLists.txt
    qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt
    qpid/trunk/qpid/cpp/src/tests/README.txt
    qpid/trunk/qpid/cpp/src/tests/brokertest.py
    qpid/trunk/qpid/cpp/src/tests/cli_tests.py
    qpid/trunk/qpid/cpp/src/tests/dynamic_log_hires_timestamp
    qpid/trunk/qpid/cpp/src/tests/dynamic_log_level_test
    qpid/trunk/qpid/cpp/src/tests/federated_topic_test
    qpid/trunk/qpid/cpp/src/tests/ha_test.py
    qpid/trunk/qpid/cpp/src/tests/ha_tests.py
    qpid/trunk/qpid/cpp/src/tests/interlink_tests.py
    qpid/trunk/qpid/cpp/src/tests/interop_tests.py
    qpid/trunk/qpid/cpp/src/tests/legacystore/CMakeLists.txt
    qpid/trunk/qpid/cpp/src/tests/legacystore/federation/federation_tests_env.sh
    qpid/trunk/qpid/cpp/src/tests/legacystore/run_python_tests
    qpid/trunk/qpid/cpp/src/tests/linearstore/CMakeLists.txt
    qpid/trunk/qpid/cpp/src/tests/linearstore/run_python_tests
    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_federation_tests
    qpid/trunk/qpid/cpp/src/tests/run_ha_tests
    qpid/trunk/qpid/cpp/src/tests/run_interlink_tests
    qpid/trunk/qpid/cpp/src/tests/run_long_federation_sys_tests
    qpid/trunk/qpid/cpp/src/tests/run_msg_group_tests
    qpid/trunk/qpid/cpp/src/tests/run_msg_group_tests_soak
    qpid/trunk/qpid/cpp/src/tests/run_paged_queue_tests
    qpid/trunk/qpid/cpp/src/tests/run_store_tests.ps1
    qpid/trunk/qpid/cpp/src/tests/sasl_fed
    qpid/trunk/qpid/cpp/src/tests/sasl_fed_ex
    qpid/trunk/qpid/cpp/src/tests/sasl_no_dir
    qpid/trunk/qpid/cpp/src/tests/sasl_test_setup.sh
    qpid/trunk/qpid/cpp/src/tests/ssl_test
    qpid/trunk/qpid/cpp/src/tests/topictest
    qpid/trunk/qpid/python/setup.py

Modified: qpid/trunk/qpid/cpp/CMakeLists.txt
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/CMakeLists.txt?rev=1740289&r1=1740288&r2=1740289&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/CMakeLists.txt Thu Apr 21 12:31:34 2016
@@ -51,6 +51,7 @@ include(BuildInstallSettings.cmake)
 
 enable_testing()
 include (CTest)
+configure_file(${CMAKE_SOURCE_DIR}/CTestCustom.cmake ${CMAKE_BINARY_DIR}/CTestCustom.cmake)
 
 if (MSVC)
   # Chaxnge warning C4996 from level 1 to level 4. These are real and shouldn't
@@ -80,7 +81,7 @@ endif (WIN32)
 set_absolute_install_path (QPIDC_CONF_FILE ${QPID_INSTALL_CONFDIR}/qpidc.conf)
 set_absolute_install_path (QPIDD_CONF_FILE ${QPID_INSTALL_CONFDIR}/qpidd.conf)
 
-install(FILES  LICENSE.txt NOTICE.txt  DESTINATION ${QPID_INSTALL_DOCDIR})
+install(FILES  LICENSE.txt NOTICE.txt DESTINATION ${QPID_INSTALL_DOCDIR})
 install(FILES  include/qmf/qmf2.i
         DESTINATION ${QPID_INSTALL_INCLUDEDIR}/qmf)
 
@@ -217,6 +218,7 @@ if (MSVC)
 endif (MSVC)
 
 # Subdirectories
+add_subdirectory(management/python)
 add_subdirectory(managementgen)
 add_subdirectory(src)
 add_subdirectory(etc)

Added: qpid/trunk/qpid/cpp/CTestCustom.cmake
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/CTestCustom.cmake?rev=1740289&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/CTestCustom.cmake (added)
+++ qpid/trunk/qpid/cpp/CTestCustom.cmake Thu Apr 21 12:31:34 2016
@@ -0,0 +1 @@
+set(CTEST_CUSTOM_PRE_TEST "python ${CMAKE_BINARY_DIR}/src/tests/check_dependencies.py")

Modified: qpid/trunk/qpid/cpp/INSTALL.txt
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/INSTALL.txt?rev=1740289&r1=1740288&r2=1740289&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/INSTALL.txt (original)
+++ qpid/trunk/qpid/cpp/INSTALL.txt Thu Apr 21 12:31:34 2016
@@ -194,7 +194,7 @@ a source distribution:
 
 (*) Boost 1.33 will also work.
 
-Optional support for AMQP 1.0 requires (see AMQP_1.0 for details):
+Optional support for AMQP 1.0 requires (see docs/amqp-1.0.txt for details):
 * Qpid proton-c <http://qpid.apache.org/proton>         (0.5)
 Note: If Proton is installed in a non-standard location, there are two ways to locate it:
 1. Recommended: use proton 0.7 or later and use the same install prefix
@@ -206,7 +206,7 @@ Optional XML exchange requires:
  * xqilla  <http://xqilla.sourceforge.net/HomePage>     (2.0.0)
  * xerces-c <http://xerces.apache.org/xerces-c/>        (2.7.0)
 
-Optional SSL support requires:
+Optional SSL support requires (see docs/ssl.txt for details):
 * nss <http://www.mozilla.org/projects/security/pki/nss/>
 * nspr <http://www.mozilla.org/projects/nspr/>
 

Added: qpid/trunk/qpid/cpp/management/python/.gitignore
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/management/python/.gitignore?rev=1740289&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/management/python/.gitignore (added)
+++ qpid/trunk/qpid/cpp/management/python/.gitignore Thu Apr 21 12:31:34 2016
@@ -0,0 +1,3 @@
+MANIFEST
+build
+dist

Added: qpid/trunk/qpid/cpp/management/python/CMakeLists.txt
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/management/python/CMakeLists.txt?rev=1740289&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/management/python/CMakeLists.txt (added)
+++ qpid/trunk/qpid/cpp/management/python/CMakeLists.txt Thu Apr 21 12:31:34 2016
@@ -0,0 +1,32 @@
+#
+# 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.
+#
+
+find_package(PythonInterp REQUIRED)
+
+add_custom_target(management_python_build ALL
+                  COMMAND
+                      ${PYTHON_EXECUTABLE} setup.py build
+                      --build-base=${CMAKE_CURRENT_BINARY_DIR}
+                      --build-scripts=${CMAKE_CURRENT_BINARY_DIR}/bin
+                  WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+
+install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} setup.py install
+        --prefix=${CMAKE_INSTALL_PREFIX} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})")
+  
+                

Added: qpid/trunk/qpid/cpp/management/python/bin/.gitignore
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/management/python/bin/.gitignore?rev=1740289&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/management/python/bin/.gitignore (added)
+++ qpid/trunk/qpid/cpp/management/python/bin/.gitignore Thu Apr 21 12:31:34 2016
@@ -0,0 +1,13 @@
+qmf-toolc
+qpid-configc
+qpid-hac
+qpid-printeventsc
+qpid-qls-analyzec
+qpid-queue-statsc
+qpid-receivec
+qpid-routec
+qpid-sendc
+qpid-statc
+qpid-store-chkc
+qpid-store-resizec
+qpid-toolc

Added: qpid/trunk/qpid/cpp/management/python/bin/qpid-config.bat
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/management/python/bin/qpid-config.bat?rev=1740289&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/management/python/bin/qpid-config.bat (added)
+++ qpid/trunk/qpid/cpp/management/python/bin/qpid-config.bat Thu Apr 21 12:31:34 2016
@@ -0,0 +1,2 @@
+@echo off
+python %~dp0\qpid-config %*

Added: qpid/trunk/qpid/cpp/management/python/bin/qpid-ha.bat
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/management/python/bin/qpid-ha.bat?rev=1740289&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/management/python/bin/qpid-ha.bat (added)
+++ qpid/trunk/qpid/cpp/management/python/bin/qpid-ha.bat Thu Apr 21 12:31:34 2016
@@ -0,0 +1,2 @@
+@echo off
+python %~dp0\qpid-ha %*

Added: qpid/trunk/qpid/cpp/management/python/bin/qpid-printevents.bat
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/management/python/bin/qpid-printevents.bat?rev=1740289&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/management/python/bin/qpid-printevents.bat (added)
+++ qpid/trunk/qpid/cpp/management/python/bin/qpid-printevents.bat Thu Apr 21 12:31:34 2016
@@ -0,0 +1,2 @@
+@echo off
+python %~dp0\qpid-printevents %*

Added: qpid/trunk/qpid/cpp/management/python/bin/qpid-queue-stats.bat
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/management/python/bin/qpid-queue-stats.bat?rev=1740289&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/management/python/bin/qpid-queue-stats.bat (added)
+++ qpid/trunk/qpid/cpp/management/python/bin/qpid-queue-stats.bat Thu Apr 21 12:31:34 2016
@@ -0,0 +1,3 @@
+@echo off
+python %~dp0\qpid-queue-stats %*
+

Added: qpid/trunk/qpid/cpp/management/python/bin/qpid-route.bat
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/management/python/bin/qpid-route.bat?rev=1740289&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/management/python/bin/qpid-route.bat (added)
+++ qpid/trunk/qpid/cpp/management/python/bin/qpid-route.bat Thu Apr 21 12:31:34 2016
@@ -0,0 +1,2 @@
+@echo off
+python %~dp0\qpid-route %*

Added: qpid/trunk/qpid/cpp/management/python/bin/qpid-stat.bat
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/management/python/bin/qpid-stat.bat?rev=1740289&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/management/python/bin/qpid-stat.bat (added)
+++ qpid/trunk/qpid/cpp/management/python/bin/qpid-stat.bat Thu Apr 21 12:31:34 2016
@@ -0,0 +1,2 @@
+@echo off
+python %~dp0\qpid-stat %*

Added: qpid/trunk/qpid/cpp/management/python/bin/qpid-tool.bat
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/management/python/bin/qpid-tool.bat?rev=1740289&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/management/python/bin/qpid-tool.bat (added)
+++ qpid/trunk/qpid/cpp/management/python/bin/qpid-tool.bat Thu Apr 21 12:31:34 2016
@@ -0,0 +1,2 @@
+@echo off
+python %~dp0\qpid-tool %*

Added: qpid/trunk/qpid/cpp/management/python/lib/.gitignore
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/management/python/lib/.gitignore?rev=1740289&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/management/python/lib/.gitignore (added)
+++ qpid/trunk/qpid/cpp/management/python/lib/.gitignore Thu Apr 21 12:31:34 2016
@@ -0,0 +1,22 @@
+
+#
+#
+# 
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# "License"); you may not use this file except in compliance
+# KIND, either express or implied.  See the License for the
+# Licensed to the Apache Software Foundation (ASF) under one
+# Unless required by applicable law or agreed to in writing,
+# distributed with this work for additional information
+# or more contributor license agreements.  See the NOTICE file
+# regarding copyright ownership.  The ASF licenses this file
+# software distributed under the License is distributed on an
+# specific language governing permissions and limitations
+# to you under the Apache License, Version 2.0 (the
+# under the License.
+# with the License.  You may obtain a copy of the License at
+/qpid-configc
+/qpid-hac
+/qpid-routec

Added: qpid/trunk/qpid/cpp/management/python/lib/README.txt
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/management/python/lib/README.txt?rev=1740289&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/management/python/lib/README.txt (added)
+++ qpid/trunk/qpid/cpp/management/python/lib/README.txt Thu Apr 21 12:31:34 2016
@@ -0,0 +1,4 @@
+To run these programs, please set PYTHONPATH to include:
+
+   qpid/python
+   qpid/extras/qmf/src/py

Copied: qpid/trunk/qpid/cpp/management/python/setup.py (from r1740288, qpid/trunk/qpid/tools/setup.py)
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/management/python/setup.py?p2=qpid/trunk/qpid/cpp/management/python/setup.py&p1=qpid/trunk/qpid/tools/setup.py&r1=1740288&r2=1740289&rev=1740289&view=diff
==============================================================================
--- qpid/trunk/qpid/tools/setup.py (original)
+++ qpid/trunk/qpid/cpp/management/python/setup.py Thu Apr 21 12:31:34 2016
@@ -17,48 +17,62 @@
 # specific language governing permissions and limitations
 # under the License.
 #
+
+import platform
+
 from distutils.core import setup
 
 pypi_long_description = """
+# Python libraries for the Apache Qpid C++ broker
 
-===========
-qpidtoollibs
-===========
+## qmf
 
-qpidtoollibs provides a useful BrokerAgent object for managing a Qpid broker
-using Qpid Management Framework (QMF).
+The Qpid Management Framework (QMF).
 
-This library depends on the qpid.messaging python client to send AMQP messaging
-containing QMF commands to the Qpid broker.
+## qpidtoollibs
 
+A high-level BrokerAgent object for managing the C++ broker using QMF.
+
+This library depends on the qpid.messaging python client to send AMQP
+messages containing QMF commands to the broker.
 """
 
+scripts = [
+    "bin/qpid-config",
+    "bin/qpid-ha",
+    "bin/qpid-printevents",
+    "bin/qpid-queue-stats",
+    "bin/qpid-route",
+    "bin/qpid-stat",
+    "bin/qpid-tool",
+]
+
+if platform.system() == "Windows":
+    scripts.append("bin/qpid-config.bat")
+    scripts.append("bin/qpid-ha.bat")
+    scripts.append("bin/qpid-printevents.bat")
+    scripts.append("bin/qpid-queue-stats.bat")
+    scripts.append("bin/qpid-route.bat")
+    scripts.append("bin/qpid-stat.bat")
+    scripts.append("bin/qpid-tool.bat")
+
 setup(name="qpid-tools",
       version="0.35",
       author="Apache Qpid",
-      author_email="dev@qpid.apache.org",
-      package_dir={'' : 'src/py'},
-      packages=["qpidtoollibs"],
-      scripts=["src/py/qpid-config",
-               "src/py/qpid-ha",
-               "src/py/qpid-printevents",
-               "src/py/qpid-queue-stats",
-               "src/py/qpid-route",
-               "src/py/qpid-stat",
-               "src/py/qpid-tool",
-               "src/py/qmf-tool"],
-      data_files=[("libexec", ["src/py/qpid-qls-analyze"]),
+      author_email="users@qpid.apache.org",
+      package_dir={'' : 'lib'},
+      packages=["qpidtoollibs", "qmf"],
+      scripts=scripts,
+      data_files=[("libexec", ["bin/qpid-qls-analyze"]),
                   ("share/qpid-tools/python/qlslibs",
-                   ["src/py/qlslibs/__init__.py",
-                    "src/py/qlslibs/analyze.py",
-                    "src/py/qlslibs/efp.py",
-                    "src/py/qlslibs/err.py",
-                    "src/py/qlslibs/jrnl.py",
-                    "src/py/qlslibs/utils.py"])],
+                   ["lib/qlslibs/__init__.py",
+                    "lib/qlslibs/analyze.py",
+                    "lib/qlslibs/efp.py",
+                    "lib/qlslibs/err.py",
+                    "lib/qlslibs/jrnl.py",
+                    "lib/qlslibs/utils.py"])],
       url="http://qpid.apache.org/",
       license="Apache Software License",
-      description="Diagnostic and management tools for Apache Qpid brokers.",
+      description="Python libraries for the Apache Qpid C++ broker",
       long_description=pypi_long_description,
-      install_requires=[
-          "qpid-python >= 0.26",
-      ])
+      install_requires=["qpid-python >= 0.26",])

Modified: qpid/trunk/qpid/cpp/src/CMakeLists.txt
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/CMakeLists.txt?rev=1740289&r1=1740288&r2=1740289&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/src/CMakeLists.txt Thu Apr 21 12:31:34 2016
@@ -502,30 +502,23 @@ if (BUILD_XML)
 
 endif (BUILD_XML)
 
-# Build the ACL plugin
-set (acl_default ON)
-
-option(BUILD_ACL "Build ACL enforcement broker plugin" ${acl_default})
-
-if (BUILD_ACL)
-  set (acl_SOURCES
-       qpid/acl/Acl.cpp
-       qpid/acl/Acl.h
-       qpid/acl/AclConnectionCounter.cpp
-       qpid/acl/AclConnectionCounter.h
-       qpid/acl/AclData.cpp
-       qpid/acl/AclData.h
-       qpid/acl/AclLexer.cpp
-       qpid/acl/AclLexer.h
-       qpid/acl/AclPlugin.cpp
-       qpid/acl/AclReader.cpp
-       qpid/acl/AclReader.h
-       qpid/acl/AclResourceCounter.cpp
-       qpid/acl/AclResourceCounter.h
-       qpid/acl/AclValidator.cpp
-       qpid/acl/AclValidator.h
-      )
-endif (BUILD_ACL)
+set (acl_SOURCES
+     qpid/acl/Acl.cpp
+     qpid/acl/Acl.h
+     qpid/acl/AclConnectionCounter.cpp
+     qpid/acl/AclConnectionCounter.h
+     qpid/acl/AclData.cpp
+     qpid/acl/AclData.h
+     qpid/acl/AclLexer.cpp
+     qpid/acl/AclLexer.h
+     qpid/acl/AclPlugin.cpp
+     qpid/acl/AclReader.cpp
+     qpid/acl/AclReader.h
+     qpid/acl/AclResourceCounter.cpp
+     qpid/acl/AclResourceCounter.h
+     qpid/acl/AclValidator.cpp
+     qpid/acl/AclValidator.h
+    )
 
 set (ha_default ON)
 

Modified: qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt?rev=1740289&r1=1740288&r2=1740289&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt Thu Apr 21 12:31:34 2016
@@ -25,21 +25,22 @@ if (QPID_LINK_BOOST_DYNAMIC)
     add_definitions(-DBOOST_TEST_DYN_LINK)
 endif (QPID_LINK_BOOST_DYNAMIC)
 
-include_directories( ${CMAKE_CURRENT_SOURCE_DIR} )
+include_directories(${CMAKE_CURRENT_SOURCE_DIR})
 
-# Using the Boost DLLs triggers warning 4275 on Visual Studio
-# (non dll-interface class used as base for dll-interface class).
-# This is ok, so suppress the warning.
-# Also, boost lengthy names trigger warning 4503, decorated name length exceeded
-# and using getenv() triggers insecure CRT warnings which we can silence in the
-# test environment.
+# Using the Boost DLLs triggers warning 4275 on Visual Studio (non
+# dll-interface class used as base for dll-interface class).  This is
+# ok, so suppress the warning.
+#
+# Also, boost lengthy names trigger warning 4503, decorated name
+# length exceeded and using getenv() triggers insecure CRT warnings
+# which we can silence in the test environment.
 if (MSVC)
-  add_definitions( /wd4275 /wd4503 /D_CRT_SECURE_NO_WARNINGS)
+    add_definitions(/wd4275 /wd4503 /D_CRT_SECURE_NO_WARNINGS)
 endif (MSVC)
 
 # If we're using GCC allow variadic macros (even though they're c99 not c++01)
 if (CMAKE_COMPILER_IS_GNUCXX)
-  add_definitions(-Wno-variadic-macros)
+    add_definitions(-Wno-variadic-macros)
 endif (CMAKE_COMPILER_IS_GNUCXX)
 
 # Windows uses some process-startup calls to ensure that errors, etc. don't
@@ -48,95 +49,91 @@ endif (CMAKE_COMPILER_IS_GNUCXX)
 # instead of windows. If you want to remove this code, build without the
 # QPID_WINDOWS_DEFAULT_TEST_OUTPUTS ON.
 if (CMAKE_SYSTEM_NAME STREQUAL Windows)
-  option(QPID_WINDOWS_DEFAULT_TEST_OUTPUTS "Use default error-handling on Windows tests" OFF)
-  if (NOT QPID_WINDOWS_DEFAULT_TEST_OUTPUTS)
-    set(platform_test_additions windows/DisableWin32ErrorWindows.cpp)
-  endif (NOT QPID_WINDOWS_DEFAULT_TEST_OUTPUTS)
+    option(QPID_WINDOWS_DEFAULT_TEST_OUTPUTS "Use default error-handling on Windows tests" OFF)
+    if (NOT QPID_WINDOWS_DEFAULT_TEST_OUTPUTS)
+        set(platform_test_additions windows/DisableWin32ErrorWindows.cpp)
+    endif (NOT QPID_WINDOWS_DEFAULT_TEST_OUTPUTS)
 endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
 
 # Some generally useful utilities that just happen to be built in the test area
-add_executable (qpid-receive qpid-receive.cpp Statistics.cpp ${platform_test_additions})
-target_link_libraries (qpid-receive qpidmessaging qpidtypes qpidcommon)
+add_executable(qpid-receive qpid-receive.cpp Statistics.cpp ${platform_test_additions})
+target_link_libraries(qpid-receive qpidmessaging qpidtypes qpidcommon)
 
-add_executable (qpid-send qpid-send.cpp Statistics.cpp ${platform_test_additions})
-target_link_libraries (qpid-send qpidmessaging qpidtypes qpidcommon)
+add_executable(qpid-send qpid-send.cpp Statistics.cpp ${platform_test_additions})
+target_link_libraries(qpid-send qpidmessaging qpidtypes qpidcommon)
 
-install (TARGETS
-         qpid-receive qpid-send
-         RUNTIME DESTINATION ${QPID_INSTALL_BINDIR})
+install(TARGETS qpid-receive qpid-send RUNTIME DESTINATION ${QPID_INSTALL_BINDIR})
 
-add_executable (qpid-perftest qpid-perftest.cpp ${platform_test_additions})
-target_link_libraries (qpid-perftest qpidclient qpidcommon ${Boost_PROGRAM_OPTIONS_LIBRARY})
+add_executable(qpid-perftest qpid-perftest.cpp ${platform_test_additions})
+target_link_libraries(qpid-perftest qpidclient qpidcommon ${Boost_PROGRAM_OPTIONS_LIBRARY})
 
-add_executable (qpid-latency-test qpid-latency-test.cpp ${platform_test_additions})
-target_link_libraries (qpid-latency-test qpidclient qpidcommon)
+add_executable(qpid-latency-test qpid-latency-test.cpp ${platform_test_additions})
+target_link_libraries(qpid-latency-test qpidclient qpidcommon)
 
-add_executable (qpid-client-test qpid-client-test.cpp ${platform_test_additions})
-target_link_libraries (qpid-client-test qpidclient qpidcommon)
+add_executable(qpid-client-test qpid-client-test.cpp ${platform_test_additions})
+target_link_libraries(qpid-client-test qpidclient qpidcommon)
 
-add_executable (qpid-ping qpid-ping.cpp ${platform_test_additions})
-target_link_libraries (qpid-ping qpidmessaging qpidtypes qpidcommon)
+add_executable(qpid-ping qpid-ping.cpp ${platform_test_additions})
+target_link_libraries(qpid-ping qpidmessaging qpidtypes qpidcommon)
 
-add_executable (qpid-topic-listener qpid-topic-listener.cpp ${platform_test_additions})
-target_link_libraries (qpid-topic-listener qpidclient qpidcommon)
+add_executable(qpid-topic-listener qpid-topic-listener.cpp ${platform_test_additions})
+target_link_libraries(qpid-topic-listener qpidclient qpidcommon)
 
-add_executable (qpid-topic-publisher qpid-topic-publisher.cpp ${platform_test_additions})
-target_link_libraries (qpid-topic-publisher qpidclient qpidcommon)
+add_executable(qpid-topic-publisher qpid-topic-publisher.cpp ${platform_test_additions})
+target_link_libraries(qpid-topic-publisher qpidclient qpidcommon)
 
-add_executable (receiver receiver.cpp ${platform_test_additions})
-target_link_libraries (receiver qpidclient qpidcommon)
+add_executable(receiver receiver.cpp ${platform_test_additions})
+target_link_libraries(receiver qpidclient qpidcommon)
 
 # This is bizarre - using both messaging and client libraries
-add_executable (sender sender.cpp Statistics.cpp ${platform_test_additions})
-target_link_libraries (sender qpidmessaging qpidtypes qpidclient qpidcommon)
+add_executable(sender sender.cpp Statistics.cpp ${platform_test_additions})
+target_link_libraries(sender qpidmessaging qpidtypes qpidclient qpidcommon)
+
+add_executable(qpid-txtest qpid-txtest.cpp ${platform_test_additions})
+target_link_libraries(qpid-txtest qpidclient qpidcommon qpidtypes)
 
-add_executable (qpid-txtest qpid-txtest.cpp ${platform_test_additions})
-target_link_libraries (qpid-txtest qpidclient qpidcommon qpidtypes)
-#qpid_txtest_SOURCES=qpid-txtest.cpp  TestOptions.h ConnectionOptions.h
-
-add_executable (qpid-txtest2 qpid-txtest2.cpp ${platform_test_additions})
-target_link_libraries (qpid-txtest2 qpidmessaging qpidtypes qpidcommon)
-
-install (TARGETS
-         qpid-perftest qpid-latency-test qpid-client-test
-         qpid-ping
-         qpid-topic-listener qpid-topic-publisher receiver sender
-         qpid-txtest qpid-txtest2
-         RUNTIME DESTINATION ${QPID_INSTALL_TESTDIR})
+add_executable(qpid-txtest2 qpid-txtest2.cpp ${platform_test_additions})
+target_link_libraries(qpid-txtest2 qpidmessaging qpidtypes qpidcommon)
+
+install(TARGETS
+        qpid-perftest qpid-latency-test qpid-client-test
+        qpid-ping
+        qpid-topic-listener qpid-topic-publisher receiver sender
+        qpid-txtest qpid-txtest2
+        RUNTIME DESTINATION ${QPID_INSTALL_TESTDIR})
 
 # Only build test code if testing is turned on
 if (BUILD_TESTING)
 
-# 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 "")
-
 if (CMAKE_SYSTEM_NAME STREQUAL Windows)
-  configure_file (${CMAKE_CURRENT_SOURCE_DIR}/test_env.ps1.in
-    ${CMAKE_CURRENT_BINARY_DIR}/test_env.ps1 @ONLY)
-else (CMAKE_SYSTEM_NAME STREQUAL Windows)
-  configure_file (${CMAKE_CURRENT_SOURCE_DIR}/test_env.sh.in
-    ${CMAKE_CURRENT_BINARY_DIR}/test_env.sh @ONLY)
-endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
+    # Windows
+  
+    set(ENV{OUTDIR} ${EXECUTABLE_OUTPUT_PATH})
 
-# Copy qpidd-p0 script to build directory so tests can find it.
-configure_file (${CMAKE_CURRENT_SOURCE_DIR}/qpidd-p0 ${CMAKE_CURRENT_BINARY_DIR} COPYONLY)
-
-if (CMAKE_SYSTEM_NAME STREQUAL Windows)
-  set (ENV{OUTDIR} ${EXECUTABLE_OUTPUT_PATH})
-  set (test_script_suffix ".ps1")
-  set (shell "powershell")
+    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/env.ps1.in
+                   ${CMAKE_CURRENT_BINARY_DIR}/env.ps1 @ONLY)
+else (CMAKE_SYSTEM_NAME STREQUAL Windows)
+    # Posix
+  
+    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/env.sh.in
+                   ${CMAKE_CURRENT_BINARY_DIR}/env.sh @ONLY)
 endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
 
-set(test_wrap ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_test${test_script_suffix} -buildDir ${CMAKE_BINARY_DIR})
-set(python_wrap ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_test${test_script_suffix} -buildDir ${CMAKE_BINARY_DIR} -python)
-
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/check_dependencies.py.in
+               ${CMAKE_CURRENT_BINARY_DIR}/check_dependencies.py @ONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/env.py.in
+               ${CMAKE_CURRENT_BINARY_DIR}/env.py @ONLY)
+
+file(COPY .
+     DESTINATION .
+     PATTERN "*.cmake" EXCLUDE
+     PATTERN "*.in" EXCLUDE
+     PATTERN "*.c" EXCLUDE
+     PATTERN "*.h" EXCLUDE
+     PATTERN "*.cpp" EXCLUDE)
+       
 if (BUILD_TESTING_UNITTESTS)
 
-#
 # Unit test program
 #
 # Unit tests are built as a single program to reduce valgrind overhead
@@ -144,8 +141,8 @@ if (BUILD_TESTING_UNITTESTS)
 # ccmake and set unit_tests_to_build to the set you want to build.
 
 # Like this to work with cmake 2.4 on Unix
-set (qpid_test_boost_libs
-     ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} ${Boost_SYSTEM_LIBRARY})
+set(qpid_test_boost_libs
+    ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} ${Boost_SYSTEM_LIBRARY})
 
 set(all_unit_tests
     AccumulatedAckTest
@@ -200,21 +197,16 @@ set(all_unit_tests
     Url
     Uuid
     Variant
-    ${xml_tests}
-   )
-
-set(unit_tests_to_build
-    ""
-    CACHE STRING "Which unit tests to build"
-   )
+    ${xml_tests})
 
+set(unit_tests_to_build "" CACHE STRING "Which unit tests to build")
 mark_as_advanced(unit_tests_to_build)
 
 # If no unit_test specifically set then use all unit tests
 if (unit_tests_to_build)
-set(actual_unit_tests ${unit_tests_to_build})
+    set(actual_unit_tests ${unit_tests_to_build})
 else()
-set(actual_unit_tests ${all_unit_tests})
+    set(actual_unit_tests ${all_unit_tests})
 endif()
 
 add_executable (unit_test unit_test
@@ -224,148 +216,115 @@ target_link_libraries (unit_test
                        qpidmessaging qpidtypes qpidbroker qpidclient qpidcommon)
 set_target_properties (unit_test PROPERTIES COMPILE_DEFINITIONS _IN_QPID_BROKER)
 
-add_test (NAME unit_test COMMAND ${test_wrap} -boostTest -- $<TARGET_FILE:unit_test>)
-
 endif (BUILD_TESTING_UNITTESTS)
 
-add_library (shlibtest MODULE shlibtest.cpp)
+add_library(shlibtest MODULE shlibtest.cpp)
 
 if (BUILD_SASL)
-    add_custom_command(
-        OUTPUT sasl_config/qpidd.conf sasl_config/qpidd.sasldb
-        COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/sasl_test_setup.sh)
-
-    add_custom_target(
-        sasl_config ALL
-        DEPENDS sasl_config/qpidd.conf sasl_config/qpidd.sasldb)
+    add_custom_command(OUTPUT sasl_config/qpidd.conf sasl_config/qpidd.sasldb
+                       COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/sasl_test_setup.sh)
+
+    add_custom_target(sasl_config ALL
+                      DEPENDS sasl_config/qpidd.conf sasl_config/qpidd.sasldb)
 endif (BUILD_SASL)
 
-#
 # Other test programs
-#
-add_executable (echotest echotest.cpp ${platform_test_additions})
-target_link_libraries (echotest qpidclient qpidcommon)
 
-add_executable (publish publish.cpp ${platform_test_additions})
-target_link_libraries (publish qpidclient qpidcommon)
+add_executable(echotest echotest.cpp ${platform_test_additions})
+target_link_libraries(echotest qpidclient qpidcommon)
 
-add_executable (consume consume.cpp ${platform_test_additions})
-target_link_libraries (consume qpidclient qpidcommon)
+add_executable(publish publish.cpp ${platform_test_additions})
+target_link_libraries(publish qpidclient qpidcommon)
 
-add_executable (header_test header_test.cpp ${platform_test_additions})
-target_link_libraries (header_test qpidclient qpidcommon)
+add_executable(consume consume.cpp ${platform_test_additions})
+target_link_libraries(consume qpidclient qpidcommon)
 
-add_executable (declare_queues declare_queues.cpp ${platform_test_additions})
-target_link_libraries (declare_queues qpidclient qpidcommon)
+add_executable(header_test header_test.cpp ${platform_test_additions})
+target_link_libraries(header_test qpidclient qpidcommon)
 
-add_executable (replaying_sender replaying_sender.cpp ${platform_test_additions})
-target_link_libraries (replaying_sender qpidclient qpidcommon)
+add_executable(declare_queues declare_queues.cpp ${platform_test_additions})
+target_link_libraries(declare_queues qpidclient qpidcommon)
 
-add_executable (resuming_receiver resuming_receiver.cpp ${platform_test_additions})
-target_link_libraries (resuming_receiver qpidclient qpidcommon)
+add_executable(replaying_sender replaying_sender.cpp ${platform_test_additions})
+target_link_libraries(replaying_sender qpidclient qpidcommon)
 
-add_executable (txshift txshift.cpp ${platform_test_additions})
-target_link_libraries (txshift qpidclient qpidcommon)
+add_executable(resuming_receiver resuming_receiver.cpp ${platform_test_additions})
+target_link_libraries(resuming_receiver qpidclient qpidcommon)
 
-add_executable (txjob txjob.cpp ${platform_test_additions})
-target_link_libraries (txjob qpidclient qpidcommon)
+add_executable(txshift txshift.cpp ${platform_test_additions})
+target_link_libraries(txshift qpidclient qpidcommon)
 
-add_executable (datagen datagen.cpp ${platform_test_additions})
-target_link_libraries (datagen qpidclient qpidcommon)
+add_executable(txjob txjob.cpp ${platform_test_additions})
+target_link_libraries(txjob qpidclient qpidcommon)
 
-add_executable (msg_group_test msg_group_test.cpp ${platform_test_additions})
-target_link_libraries (msg_group_test qpidmessaging qpidtypes qpidcommon)
+add_executable(datagen datagen.cpp ${platform_test_additions})
+target_link_libraries(datagen qpidclient qpidcommon)
 
-add_executable (ha_test_max_queues ha_test_max_queues.cpp ${platform_test_additions})
-target_link_libraries (ha_test_max_queues qpidclient qpidcommon)
+add_executable(msg_group_test msg_group_test.cpp ${platform_test_additions})
+target_link_libraries(msg_group_test qpidmessaging qpidtypes qpidcommon)
 
-if (BUILD_SASL)
-    add_executable (sasl_version sasl_version.cpp ${platform_test_additions})
-endif (BUILD_SASL)
+add_executable(ha_test_max_queues ha_test_max_queues.cpp ${platform_test_additions})
+target_link_libraries(ha_test_max_queues qpidclient qpidcommon)
 
-set (python_src ${CMAKE_SOURCE_DIR}/../python)
-if (EXISTS ${python_src})
-    set (python_bld ${CMAKE_CURRENT_BINARY_DIR}/python)
-    # This will not pick up added or deleted python files
-    # In that case you need to rerun CMake
-    file(GLOB_RECURSE python_files ${python_src}/*.py)
-
-    add_custom_command(
-	OUTPUT ${python_bld}
-	DEPENDS ${python_files}
-	COMMAND ${PYTHON_EXECUTABLE}
-	    setup.py
-	    build --build-base=${python_bld}/build
-	    install --prefix=${python_bld} --install-lib=${python_bld} --install-scripts=${python_bld}/commands
-	WORKING_DIRECTORY ${python_src}
-    )
-
-    add_custom_target(
-	python_bld ALL
-	DEPENDS ${python_bld}
-    )
-endif (EXISTS ${python_src})
+add_library(test_store MODULE test_store.cpp)
+target_link_libraries(test_store qpidbroker qpidcommon)
+set_target_properties(test_store PROPERTIES PREFIX "" COMPILE_DEFINITIONS _IN_QPID_BROKER)
+
+add_library(dlclose_noop MODULE dlclose_noop.c)
 
 if (BUILD_SASL)
-    add_test (NAME sasl_fed COMMAND ${test_wrap} -- ${CMAKE_CURRENT_SOURCE_DIR}/sasl_fed${test_script_suffix})
-    add_test (NAME sasl_fed_ex_dynamic COMMAND ${test_wrap} -- ${CMAKE_CURRENT_SOURCE_DIR}/sasl_fed_ex${test_script_suffix} dynamic)
-    add_test (NAME sasl_fed_ex_link COMMAND ${test_wrap} -- ${CMAKE_CURRENT_SOURCE_DIR}/sasl_fed_ex${test_script_suffix} link)
-    add_test (NAME sasl_fed_ex_queue COMMAND ${test_wrap} -- ${CMAKE_CURRENT_SOURCE_DIR}/sasl_fed_ex${test_script_suffix} queue)
-    add_test (NAME sasl_fed_ex_route COMMAND ${test_wrap} -- ${CMAKE_CURRENT_SOURCE_DIR}/sasl_fed_ex${test_script_suffix} route)
-    add_test (NAME sasl_no_dir COMMAND ${test_wrap} -- ${CMAKE_CURRENT_SOURCE_DIR}/sasl_no_dir${test_script_suffix})
-    if (BUILD_SSL)
-        add_test(NAME ssl_test COMMAND ${test_wrap} -- ${CMAKE_CURRENT_SOURCE_DIR}/ssl_test${test_script_suffix})
-    endif (BUILD_SSL)
+    add_executable(sasl_version sasl_version.cpp ${platform_test_additions})
 endif (BUILD_SASL)
-add_test (NAME qpid-client-test COMMAND ${test_wrap} -startBroker -- $<TARGET_FILE:qpid-client-test>)
-add_test (NAME quick_perftest COMMAND ${test_wrap} -startBroker -- $<TARGET_FILE:qpid-perftest> --summary --count 100)
-add_test (NAME quick_topictest COMMAND ${test_wrap} -startBroker -- ${CMAKE_CURRENT_SOURCE_DIR}/quick_topictest${test_script_suffix})
-add_test (NAME quick_txtest COMMAND ${test_wrap} -startBroker -- $<TARGET_FILE:qpid-txtest> --queues 4 --tx-count 10 --quiet)
-add_test (NAME quick_txtest2 COMMAND ${test_wrap} -startBroker -- $<TARGET_FILE:qpid-txtest2> --queues 4 --tx-count 10 --quiet)
-add_test (NAME msg_group_tests COMMAND ${test_wrap} -startBroker -- ${CMAKE_CURRENT_SOURCE_DIR}/run_msg_group_tests${test_script_suffix})
-add_test (NAME run_header_test COMMAND ${test_wrap} -startBroker -- ${CMAKE_CURRENT_SOURCE_DIR}/run_header_test${test_script_suffix})
-add_test (NAME python_tests COMMAND ${test_wrap} -startBroker -- ${CMAKE_CURRENT_SOURCE_DIR}/python_tests${test_script_suffix})
-if (NOT CMAKE_SYSTEM_NAME STREQUAL Windows)
-  # paged queue not yet implemented for windows
-  add_test (NAME paged_queue_tests COMMAND ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_paged_queue_tests${test_script_suffix})
-endif (NOT CMAKE_SYSTEM_NAME STREQUAL Windows)
 
-if (BUILD_AMQP)
-  add_test (interop_tests ${python_wrap} -- ${CMAKE_CURRENT_SOURCE_DIR}/interop_tests.py)
-endif (BUILD_AMQP)
+# Cross-platform tests
+
+add_test(NAME unit_tests COMMAND ${PYTHON_EXECUTABLE} run_unit_tests)
+
+add_test(NAME acl_tests COMMAND ${PYTHON_EXECUTABLE} run_acl_tests)
+add_test(NAME cli_tests COMMAND ${PYTHON_EXECUTABLE} run_cli_tests)
+add_test(NAME client_tests COMMAND ${PYTHON_EXECUTABLE} run_client_tests)
+add_test(NAME federation_tests COMMAND ${PYTHON_EXECUTABLE} run_federation_tests)
+add_test(NAME flow_control_tests COMMAND ${PYTHON_EXECUTABLE} run_flow_control_tests)
+add_test(NAME ha_tests COMMAND ${PYTHON_EXECUTABLE} run_ha_tests)
+add_test(NAME msg_group_tests COMMAND ${PYTHON_EXECUTABLE} run_msg_group_tests)
+add_test(NAME performance_tests COMMAND ${PYTHON_EXECUTABLE} run_performance_tests)
+add_test(NAME python_tests COMMAND ${PYTHON_EXECUTABLE} run_python_tests)
+add_test(NAME queue_redirect_tests COMMAND ${PYTHON_EXECUTABLE} run_queue_redirect_tests)
+add_test(NAME qmf_tests COMMAND ${PYTHON_EXECUTABLE} run_qmf_tests)
+add_test(NAME transaction_tests COMMAND ${PYTHON_EXECUTABLE} run_transaction_tests)
 
-add_test (ha_tests ${python_wrap} -- ${CMAKE_CURRENT_SOURCE_DIR}/ha_tests.py)
-add_test (qpidd_qmfv2_tests ${python_wrap} -- ${CMAKE_CURRENT_SOURCE_DIR}/qpidd_qmfv2_tests.py)
 if (BUILD_AMQP)
-  add_test (interlink_tests ${python_wrap} -- ${CMAKE_CURRENT_SOURCE_DIR}/interlink_tests.py)
-  add_test (idle_timeout_tests ${python_wrap} -- ${CMAKE_CURRENT_SOURCE_DIR}/idle_timeout_tests.py)
+    add_test(NAME idle_timeout_tests COMMAND ${PYTHON_EXECUTABLE} run_idle_timeout_tests)
+    add_test(NAME interlink_tests COMMAND ${PYTHON_EXECUTABLE} run_interlink_tests)
+    add_test(NAME interop_tests COMMAND ${PYTHON_EXECUTABLE} run_interop_tests)
 endif (BUILD_AMQP)
-add_test (swig_python_tests ${test_wrap} -- ${CMAKE_CURRENT_SOURCE_DIR}/swig_python_tests${test_script_suffix})
-add_test (ipv6_test ${test_wrap} -- ${CMAKE_CURRENT_SOURCE_DIR}/ipv6_test${test_script_suffix})
-add_test (federation_tests ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_federation_tests${test_script_suffix})
-add_test (federation_sys_tests ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_federation_sys_tests${test_script_suffix})
-add_test (queue_flow_limit_tests
-          ${test_wrap}
-          -startBroker -brokerOptions "--default-flow-stop-threshold=80 --default-flow-resume-threshold=70"
-          -- ${CMAKE_CURRENT_SOURCE_DIR}/run_queue_flow_limit_tests${test_script_suffix})
-if (BUILD_ACL)
-  add_test (acl_tests ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_acl_tests${test_script_suffix})
-endif (BUILD_ACL)
-add_test (cli_tests ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_cli_tests${test_script_suffix})
-add_test (dynamic_log_level_test ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/dynamic_log_level_test${test_script_suffix})
-add_test (dynamic_log_hires_timestamp ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/dynamic_log_hires_timestamp${test_script_suffix})
-if (BUILD_MSSQL)
-  add_test (store_tests ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_store_tests${test_script_suffix} MSSQL)
-endif (BUILD_MSSQL)
-if (BUILD_MSCLFS)
-  add_test (store_tests_clfs ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_store_tests${test_script_suffix} MSSQL-CLFS)
-endif (BUILD_MSCLFS)
-add_test (queue_redirect ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_queue_redirect${test_script_suffix})
 
-add_library(test_store MODULE test_store.cpp)
-target_link_libraries (test_store qpidbroker qpidcommon)
-set_target_properties (test_store PROPERTIES PREFIX "" COMPILE_DEFINITIONS _IN_QPID_BROKER)
+if (CMAKE_SYSTEM_NAME STREQUAL Windows)
+    # Windows-only tests
 
-add_library (dlclose_noop MODULE dlclose_noop.c)
+    if (BUILD_MSSQL)
+        add_test(NAME store_tests COMMAND powershell run_store_tests.ps1 MSSQL)
+    endif (BUILD_MSSQL)
+
+    if (BUILD_MSCLFS)
+        add_test(NAME store_tests_clfs COMMAND powershell run_store_tests.ps1 MSSQL-CLFS)
+    endif (BUILD_MSCLFS)
+else (CMAKE_SYSTEM_NAME STREQUAL Windows)
+    # Posix-only tests
+
+    add_test(NAME logging_tests COMMAND run_logging_tests) # Pretty simple to convert
+    add_test(NAME ipv6_tests COMMAND run_ipv6_tests) # Also pretty simple to convert
+    add_test(NAME paged_queue_tests COMMAND run_paged_queue_tests)
+    add_test(NAME ring_queue_tests COMMAND run_ring_queue_tests)
+    add_test(NAME topic_tests COMMAND run_topic_tests)
+
+    if (BUILD_SASL)
+        add_test(NAME sasl_tests COMMAND run_sasl_tests)
+
+        if (BUILD_SSL)
+            add_test(NAME ssl_tests COMMAND run_ssl_tests)
+        endif (BUILD_SSL)
+    endif (BUILD_SASL)
+endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
 
 endif (BUILD_TESTING)

Modified: qpid/trunk/qpid/cpp/src/tests/README.txt
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/README.txt?rev=1740289&r1=1740288&r2=1740289&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/README.txt (original)
+++ qpid/trunk/qpid/cpp/src/tests/README.txt Thu Apr 21 12:31:34 2016
@@ -8,21 +8,15 @@ developers can run tests selectively as
 Unit tests use the boost test framework, and are compiled to the programd
 unit_test
 
-There are several options to control how test results are displayed, see
- http://www.boost.org/doc/libs/1_35_0/libs/test/doc/components/utf/parameters/index.html
+There are several options to control how test results are displayed. See
+http://www.boost.org/doc/libs/1_35_0/libs/test/doc/components/utf/parameters/index.html.
 
 == System Tests ==
 
-System tests are executables or scripts. You can run executable tests directly
-as well as via "make test" or "ctest".  Some tests require environment settings
-which are set by src/tests/test_env.sh on Unix or by src/tests/test_env.ps1 on
-Windows.
-
-./python_tests: runs ../python/run_tests. This is the main set of
-system tests for the broker.
-
-Other C++ client test executables and scripts under client/test are
-system tests for the client.
+System tests are executables or scripts. You can run executable tests
+directly as well as via "make test" or "ctest".  Some tests require
+environment settings which are set by src/tests/env.sh on Unix or by
+src/tests/env.ps1 on Windows.
 
 == Running selected tests ==
 
@@ -34,4 +28,3 @@ directly gives you additional options, e
 This runs tests with names matching the regular expression <regexp> and will
 print the full output of the tests rather than just listing which tests pass or
 fail.
-

Modified: qpid/trunk/qpid/cpp/src/tests/brokertest.py
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/brokertest.py?rev=1740289&r1=1740288&r2=1740289&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/brokertest.py (original)
+++ qpid/trunk/qpid/cpp/src/tests/brokertest.py Thu Apr 21 12:31:34 2016
@@ -354,7 +354,7 @@ class Broker(Popen):
           if (self.test.protocol and qm == qpid_messaging):
             kwargs.setdefault("protocol", self.test.protocol)
         return connection_class.establish(self.host_port(), timeout=timeout, **kwargs)
-
+    
     @property
     def agent(self, **kwargs):
         """Return a BrokerAgent for this broker"""
@@ -477,14 +477,14 @@ class BrokerTest(TestCase):
         TestCase.__init__(self, *args, **kwargs)
 
     # Environment settings.
-    qpidd_exec = os.path.abspath(checkenv("QPIDD_EXEC"))
+    qpidd_exec = "qpidd"
     ha_lib = os.getenv("HA_LIB")
     xml_lib = os.getenv("XML_LIB")
     amqp_lib = os.getenv("AMQP_LIB")
-    qpid_config_exec = os.getenv("QPID_CONFIG_EXEC")
-    qpid_route_exec = os.getenv("QPID_ROUTE_EXEC")
-    receiver_exec = os.getenv("RECEIVER_EXEC")
-    sender_exec = os.getenv("SENDER_EXEC")
+    qpid_config_exec = "qpid-config"
+    qpid_route_exec = "qpid-route"
+    receiver_exec = "receiver"
+    sender_exec = "sender"
     sql_store_lib = os.getenv("STORE_SQL_LIB")
     sql_clfs_store_lib = os.getenv("STORE_SQL_CLFS_LIB")
     sql_catalog = os.getenv("STORE_CATALOG")
@@ -505,19 +505,7 @@ class BrokerTest(TestCase):
     PN_TX_VERSION = (0, 9)
 
     amqp_tx_supported = PN_VERSION >= PN_TX_VERSION
-
-    @classmethod
-    def amqp_tx_warning(cls):
-        if not cls.amqp_tx_supported:
-            if cls.PN_VERSION == (0, 0):
-                print "WARNING: Cannot test transactions over AMQP 1.0, proton not on path so version could not be determined"
-            elif cls.PN_VERSION == (0, 7):
-                print "WARNING: Cannot test transactions over AMQP 1.0, proton version is 0.7 or less, %s.%s required" % cls.PN_TX_VERSION
-            else:
-                print "WARNING: Cannot test transactions over AMQP 1.0, proton version %s.%s < %s.%s" % (cls.PN_VERSION + cls.PN_TX_VERSION)
-            return False
-        return True
-
+    
     def configure(self, config): self.config=config
 
     def setUp(self):

Added: qpid/trunk/qpid/cpp/src/tests/check_dependencies.py.in
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/check_dependencies.py.in?rev=1740289&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/check_dependencies.py.in (added)
+++ qpid/trunk/qpid/cpp/src/tests/check_dependencies.py.in Thu Apr 21 12:31:34 2016
@@ -0,0 +1,53 @@
+#!/usr/bin/env python
+
+#
+# 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.
+#
+
+import os
+import sys
+
+def _message(error):
+    return """
+===============================================================================
+Error! {}
+
+The tests require Qpid Python, version 1.33 or greater.  Make sure
+Qpid Python is installed and available on the Python path:
+
+ - Linux distributions: Install 'python-qpid'
+ - Other: Install qpid-python from source and update PYTHONPATH
+
+See the Qpid website for more information:
+
+ - Qpid downloads: http://qpid.apache.org/download.html
+ - Qpid packages: http://qpid.apache.org/packages.html
+===============================================================================
+""".format(error)
+
+sys.path.insert(0, os.path.join("@CMAKE_SOURCE_DIR@", "management", "python", "lib"))
+
+try:
+    import qpid
+except ImportError:
+    exit(_message("Can't find Python 'qpid' module"))
+
+try:
+    import qpid_tests
+except ImportError:
+    exit(_message("Can't find Python 'qpid_tests' module"))

Modified: qpid/trunk/qpid/cpp/src/tests/cli_tests.py
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/cli_tests.py?rev=1740289&r1=1740288&r2=1740289&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/cli_tests.py (original)
+++ qpid/trunk/qpid/cpp/src/tests/cli_tests.py Thu Apr 21 12:31:34 2016
@@ -295,7 +295,8 @@ class CliTests(TestBase010):
         self.helper_create_queue(qname)
 
         # now bind the queue to the xchg
-        foo = self.qpid_config_command("-f test.xquery bind " + xchgname + " " + qname)
+        xquery_file = self.defines["xquery-file"]
+        foo = self.qpid_config_command("-f " + xquery_file + " bind " + xchgname + " " + qname)
         # print foo
         ret = os.system(foo)
         self.assertEqual(ret, 0)
@@ -468,10 +469,14 @@ class CliTests(TestBase010):
         return self.cli_dir() + "/qpid-config -b localhost:%d" % self.broker.port + " " + arg
 
     def qpid_config_api(self, arg = ""):
-        script = import_script(checkenv("QPID_CONFIG_EXEC"))
+        path = os.path.join(os.getenv("SOURCE_DIR"), "management", "python",
+                            "bin", "qpid-config")
+        script = import_script(path)
         broker = ["-b", "localhost:"+str(self.broker.port)]
         return script.main(broker + arg.split())
 
     def qpid_route_api(self, arg = ""):
-        script = import_script(checkenv("QPID_ROUTE_EXEC"))
+        path = os.path.join(os.getenv("SOURCE_DIR"), "management", "python",
+                            "bin", "qpid-route")
+        script = import_script(path)
         return script.main(arg.split())

Added: qpid/trunk/qpid/cpp/src/tests/common.py
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/common.py?rev=1740289&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/common.py (added)
+++ qpid/trunk/qpid/cpp/src/tests/common.py Thu Apr 21 12:31:34 2016
@@ -0,0 +1,297 @@
+#
+# 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.
+#
+
+from __future__ import print_function
+
+from env import *
+
+import atexit as _atexit
+import os as _os
+import platform as _platform
+import re as _re
+import signal as _signal
+import subprocess as _subprocess
+import shutil as _shutil
+import time as _time
+import uuid as _uuid
+
+WINDOWS = _platform.system() == "Windows"
+
+def _unique_id():
+    return str(_uuid.uuid4())[:4]
+
+def make_work_dir():
+    prog = file_name(ARGS[0])
+    name = "{}_{}".format(prog, _unique_id())
+    
+    return make_dir(join(BUILD_DIR, name))
+
+WORK_DIR = make_work_dir()
+
+notice("Created work dir '{}'", WORK_DIR)
+
+def _init_valgrind_command(command):
+    if VALGRIND is None:
+        return command, None
+
+    log_file = join(WORK_DIR, "valgrind_{}.log".format(_unique_id()))
+    suppressions_file = join(BUILD_DIR, "src", "tests", ".valgrind.supp")
+    
+    valgrind_command = [
+        VALGRIND,
+        "--leak-check=full --num-callers=25 --error-exitcode=100",
+        "--log-file={}".format(log_file),
+        "--suppressions={}".format(suppressions_file),
+        "--",
+        command,
+    ]
+
+    return " ".join(valgrind_command), log_file
+
+def call_with_valgrind(command, *args, **kwargs):
+    command, valgrind_log_file = _init_valgrind_command(command)
+
+    try:
+        call(command, *args, **kwargs)
+    except _subprocess.CalledProcessError as e:
+        if e.returncode == 100:
+            error("Valgrind reported errors")
+            print(read(valgrind_log_file))
+
+        raise
+
+def call_for_output_with_valgrind(command, *args, **kwargs):
+    command, valgrind_log_file = _init_valgrind_command(command)
+
+    try:
+        return call_for_output(command, *args, **kwargs)
+    except _subprocess.CalledProcessError as e:
+        if e.returncode == 100:
+            error("Valgrind reported errors")
+            print(read(valgrind_log_file))
+
+        raise
+
+_brokers = list()
+_brokers_by_port = dict()
+_broker_port_expr = _re.compile(r"Listening on TCP/TCP6 port ([0-9]+)")
+_broker_config_file = join(BUILD_DIR, "src", "tests", "qpidd-empty.conf")
+
+class _Broker(object):
+    def __init__(self, dir):
+        self.dir = dir
+
+        self.command_file = join(self.dir, "command")
+        self.log_file = join(self.dir, "log")
+        self.data_dir = join(self.dir, "data")
+        
+        self.port = None
+        self.proc = None
+        self.command = None
+        self.valgrind_log_file = None
+
+    def __repr__(self):
+        args = self.port, self.proc.pid, self.proc.returncode
+        return "Broker(port={}, pid={}, exit={})".format(*args)
+
+    def start(self, args):
+        make_dir(self.dir)
+
+        command = [
+            "qpidd",
+            "--port 0",
+            "--interface localhost",
+            "--no-module-dir",
+            "--log-enable info+",
+            "--log-source yes",
+            "--log-to-stderr no",
+            "--log-to-file {}".format(self.log_file),
+            "--config {}".format(_broker_config_file),
+            "--data-dir {}".format(self.data_dir),
+        ]
+
+        if WINDOWS:
+            command += [
+                "--ssl-cert-store-location LocalMachine",
+                "--ssl-cert-name localhost",
+                "--ssl-port 0",
+            ]
+        
+        command += [x for x in args if x is not None]
+        command = " ".join(command)
+        command, valgrind_log_file = _init_valgrind_command(command)
+
+        self.command = command
+        self.valgrind_log_file = valgrind_log_file
+        
+        notice("Calling '{}'", self.command)
+        write(self.command_file, self.command)
+
+        self.proc = _subprocess.Popen(self.command, shell=True,
+                                      stdout=_subprocess.PIPE)
+        self.port = self._wait_for_port()
+
+        assert self.command is not None
+        assert self.proc is not None
+        assert self.port is not None
+        assert self.port not in _brokers_by_port, self.port
+
+        _brokers.append(self)
+        _brokers_by_port[self.port] = self
+
+        notice("Started {}", self)
+        
+    def _wait_for_port(self):
+        port = None
+        
+        while port is None:
+            _time.sleep(0.4)
+            port = self._scan_port()
+
+        return port
+
+    def _scan_port(self):
+        if not exists(self.log_file):
+            return
+      
+        match = _re.search(_broker_port_expr, read(self.log_file))
+
+        if match:
+            return match.group(1)
+
+    def stop(self):
+        if self.proc.poll() is not None:
+            return
+            
+        notice("Stopping {}", self)
+
+        if WINDOWS:
+            call("taskkill /f /t /pid {}", self.proc.pid)
+        else:
+            self.proc.terminate()
+
+        self.proc.wait()
+
+    def check(self):
+        if WINDOWS:
+            # Taskkilled windows processes always return 1, so exit
+            # codes don't mean anything there
+            return 0
+    
+        notice("Checking {}", self)
+        
+        if self.proc.returncode == 0:
+            return 0
+
+        error("{} exited with code {}", self, self.proc.returncode)
+        
+        if self.proc.returncode == 100:
+            print("Valgrind reported errors:")
+            print(read(self.valgrind_log_file))
+        else:
+            print("Last 100 lines of broker log:")
+            print(tail(self.log_file, 100))
+
+        flush()
+
+        error("{} exited with code {}", self, self.proc.returncode)
+        
+        return self.proc.returncode
+
+def start_broker(dir, *args, **kwargs):
+    if not is_absolute(dir):
+        dir = join(WORK_DIR, dir)
+
+    auth_disabled = kwargs.get("auth_disabled", True)
+
+    if auth_disabled:
+        args = list(args)
+        args.append("--auth no")
+        
+    broker = _Broker(dir)
+    broker.start(args)
+
+    return broker.port
+
+def stop_broker(port):
+    broker = _brokers_by_port[port]
+    broker.stop()
+
+def check_broker(port):
+    broker = _brokers_by_port[port]
+
+    if broker.check() != 0:
+        exit("Broker failure")
+
+def check_results():
+    for broker in _brokers:
+        broker.stop()
+
+    errors = False
+
+    for broker in _brokers:
+        code = broker.check()
+
+        if code == 0:
+            continue
+
+        errors = True
+
+    if errors:
+        exit("Broker failure")
+
+    remove(WORK_DIR)
+
+    notice("Tests completed without error")
+
+def _exit_handler():
+    if exists(WORK_DIR):
+        notice("Output saved in work dir '{}'", WORK_DIR)
+    
+    for broker in _brokers:
+        broker.stop()
+        
+_atexit.register(_exit_handler)
+
+def configure_broker(broker_port, *args):
+    command = [
+        "qpid-config",
+        "--broker localhost:{}".format(broker_port),
+    ]
+
+    command += [x for x in args if x is not None]
+
+    call(" ".join(command))
+
+def run_broker_tests(broker_port, *args):
+    command = [
+        "qpid-python-test",
+        "--broker localhost:{}".format(broker_port),
+        "--time",
+    ]
+
+    command += [x for x in args if x is not None]
+
+    call(" ".join(command))
+
+def connect_brokers(*args):
+    command = ["qpid-route"]
+    command += [x for x in args if x is not None]
+
+    call(" ".join(command))

Modified: qpid/trunk/qpid/cpp/src/tests/dynamic_log_hires_timestamp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/dynamic_log_hires_timestamp?rev=1740289&r1=1740288&r2=1740289&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/dynamic_log_hires_timestamp (original)
+++ qpid/trunk/qpid/cpp/src/tests/dynamic_log_hires_timestamp Thu Apr 21 12:31:34 2016
@@ -20,14 +20,14 @@
 #
 
 # Run a simple test to verify dynamic log highres timestamp changes
-source ./test_env.sh
-test -d $PYTHON_DIR || { echo "Skipping python tests, no python dir."; exit 0; }
+
+source ./env.sh
 
 LOG_FILE=hires_test.log
 trap cleanup EXIT
 
 cleanup() {
-    test -n "$PORT" && $QPIDD_EXEC --no-module-dir --quit --port $PORT
+    test -n "$PORT" && qpidd --no-module-dir --quit --port $PORT
 }
 
 error() { 
@@ -36,16 +36,16 @@ error() {
 }
 
 rm -rf $LOG_FILE
-PORT=$($QPIDD_EXEC --auth=no --no-module-dir --daemon --port=0  --interface 127.0.0.1 --log-to-file $LOG_FILE) || error "Could not start broker"
+PORT=$(qpidd --auth=no --no-module-dir --daemon --port=0  --interface 127.0.0.1 --log-to-file $LOG_FILE) || error "Could not start broker"
 
-echo Broker for log highres timestamp test started on $PORT, pid is $($QPIDD_EXEC --no-module-dir --check --port $PORT)
+echo Broker for log highres timestamp test started on $PORT, pid is $(qpidd --no-module-dir --check --port $PORT)
 
-$srcdir/qpid-ctrl -b localhost:$PORT setLogLevel level='debug+:Broker' > /dev/null
-$srcdir/qpid-ctrl -b localhost:$PORT echo sequence=1 body=LOWRES > /dev/null
-$srcdir/qpid-ctrl -b localhost:$PORT setLogHiresTimestamp logHires='true' > /dev/null
-$srcdir/qpid-ctrl -b localhost:$PORT echo sequence=2 body=HI_RES > /dev/null
-$srcdir/qpid-ctrl -b localhost:$PORT setLogHiresTimestamp logHires='false' > /dev/null
-$srcdir/qpid-ctrl -b localhost:$PORT echo sequence=3 body=LOWRES > /dev/null
+qpid-ctrl -b localhost:$PORT setLogLevel level='debug+:Broker' > /dev/null
+qpid-ctrl -b localhost:$PORT echo sequence=1 body=LOWRES > /dev/null
+qpid-ctrl -b localhost:$PORT setLogHiresTimestamp logHires='true' > /dev/null
+qpid-ctrl -b localhost:$PORT echo sequence=2 body=HI_RES > /dev/null
+qpid-ctrl -b localhost:$PORT setLogHiresTimestamp logHires='false' > /dev/null
+qpid-ctrl -b localhost:$PORT echo sequence=3 body=LOWRES > /dev/null
 
 # Expect 3 log entries with 'echo' in them
 if [[ $(grep echo $LOG_FILE | wc -l) -ne 3 ]]; then 

Modified: qpid/trunk/qpid/cpp/src/tests/dynamic_log_level_test
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/dynamic_log_level_test?rev=1740289&r1=1740288&r2=1740289&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/dynamic_log_level_test (original)
+++ qpid/trunk/qpid/cpp/src/tests/dynamic_log_level_test Thu Apr 21 12:31:34 2016
@@ -20,14 +20,14 @@
 #
 
 # Run a simple test to verify dynamic log level changes
-source ./test_env.sh
-test -d $PYTHON_DIR || { echo "Skipping python tests, no python dir."; exit 0; }
+
+source ./env.sh
 
 LOG_FILE=log_test.log
 trap cleanup EXIT
 
 cleanup() {
-    test -n "$PORT" && $QPIDD_EXEC --no-module-dir --quit --port $PORT
+    test -n "$PORT" && qpidd --no-module-dir --quit --port $PORT
 }
 
 error() { 
@@ -43,30 +43,30 @@ checklog() {
 }
 
 rm -rf $LOG_FILE
-PORT=$($QPIDD_EXEC --auth=no --no-module-dir --daemon --port=0  --interface 127.0.0.1 --log-to-file $LOG_FILE) || error "Could not start broker"
+PORT=$(qpidd --auth=no --no-module-dir --daemon --port=0  --interface 127.0.0.1 --log-to-file $LOG_FILE) || error "Could not start broker"
 
-echo Broker for log level test started on $PORT, pid is $($QPIDD_EXEC --no-module-dir --check --port $PORT)
+echo Broker for log level test started on $PORT, pid is $(qpidd --no-module-dir --check --port $PORT)
 
 # Set level to notice+ and send an echo request
 # The 'echo' in the log is hidden since it is at debug level.
-$srcdir/qpid-ctrl -b localhost:$PORT setLogLevel level='notice+' > /dev/null
-$srcdir/qpid-ctrl -b localhost:$PORT echo sequence=1 body=HIDDEN > /dev/null
+qpid-ctrl -b localhost:$PORT setLogLevel level='notice+' > /dev/null
+qpid-ctrl -b localhost:$PORT echo sequence=1 body=HIDDEN > /dev/null
 checklog 0 "Step 1 Expected no echo log entries"
 
 # Next, enable all Broker logs at debug and higher levels and send another echo
 # This 'echo' should be in the log.
-$srcdir/qpid-ctrl -b localhost:$PORT setLogLevel level='debug+:Broker' > /dev/null
-$srcdir/qpid-ctrl -b localhost:$PORT echo sequence=2 body=VISIBLE > /dev/null
+qpid-ctrl -b localhost:$PORT setLogLevel level='debug+:Broker' > /dev/null
+qpid-ctrl -b localhost:$PORT echo sequence=2 body=VISIBLE > /dev/null
 checklog 1 "Step 2 Expected one echo log entry"
 
 # Now turn on Broker debug messages but specifically disable ManagementMethod logs
 # The 'echo' should be hidden.
-$srcdir/qpid-ctrl -b localhost:$PORT setLogLevel level='debug+:Broker !debug+:broker::Broker::ManagementMethod' > /dev/null
-$srcdir/qpid-ctrl -b localhost:$PORT echo sequence=3 body=HIDDEN > /dev/null
+qpid-ctrl -b localhost:$PORT setLogLevel level='debug+:Broker !debug+:broker::Broker::ManagementMethod' > /dev/null
+qpid-ctrl -b localhost:$PORT echo sequence=3 body=HIDDEN > /dev/null
 checklog 1 "Step 3 Expected one echo log entry"
 
 # Verify that the management get returns what was just set
-$srcdir/qpid-ctrl -b localhost:$PORT getLogLevel > dynamic_log_level.tmp
+qpid-ctrl -b localhost:$PORT getLogLevel > dynamic_log_level.tmp
 if [[ $(grep 'level=debug+:Broker,!debug+:broker::Broker::ManagementMethod' dynamic_log_level.tmp | wc -l) -ne 1 ]]; then
     error "Step 4 getLogLevel returned unexpected value: " `cat dynamic_log_level.tmp`
 fi
@@ -76,10 +76,10 @@ cleanup
 
 # Start another broker with --log-disable settings and make sure the management string receives them
 rm -rf $LOG_FILE
-PORT=$($QPIDD_EXEC --auth=no --no-module-dir --daemon --port=0  --interface 127.0.0.1 --log-to-file $LOG_FILE --log-enable debug:foo --log-disable debug:bar) || error "Could not start broker"
-echo Broker for log level test started on $PORT, pid is $($QPIDD_EXEC --no-module-dir --check --port $PORT)
+PORT=$(qpidd --auth=no --no-module-dir --daemon --port=0  --interface 127.0.0.1 --log-to-file $LOG_FILE --log-enable debug:foo --log-disable debug:bar) || error "Could not start broker"
+echo Broker for log level test started on $PORT, pid is $(qpidd --no-module-dir --check --port $PORT)
 
-$srcdir/qpid-ctrl -b localhost:$PORT getLogLevel > dynamic_log_level.tmp
+qpid-ctrl -b localhost:$PORT getLogLevel > dynamic_log_level.tmp
 if [[ $(grep 'level=debug:foo,!debug:bar' dynamic_log_level.tmp | wc -l) -ne 1 ]]; then
     error "Step 5 getLogLevel returned unexpected value: " `cat dynamic_log_level.tmp`
 fi

Added: qpid/trunk/qpid/cpp/src/tests/env.ps1.in
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/env.ps1.in?rev=1740289&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/env.ps1.in (added)
+++ qpid/trunk/qpid/cpp/src/tests/env.ps1.in Thu Apr 21 12:31:34 2016
@@ -0,0 +1,77 @@
+#
+# 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.
+#
+
+# Environment variables substituted by configure/cmake.
+$abs_srcdir="@abs_srcdir@"
+$abs_builddir="@abs_builddir@"
+$top_srcdir="@abs_top_srcdir@"
+$top_builddir="@abs_top_builddir@"
+$moduledir="$top_builddir\src@builddir_lib_suffix@"
+$testmoduledir="$builddir@builddir_lib_suffix@"
+$BOOST_LIBRARYDIR="@BOOST_LIBRARYDIR@"
+
+# Python paths and directories
+$PYTHON_EXE="@PYTHON_EXECUTABLE@"
+$PYTHON_DIR="$builddir\python"
+$QPID_PYTHON_TEST="$PYTHON_DIR\commands\qpid-python-test"
+if ( !(Test-Path "$PYTHON_DIR") -and (Test-Path "$top_srcdir\..\python")) {
+    $PYTHON_DIR="$top_srcdir\..\python"
+    $QPID_PYTHON_TEST="$PYTHON_DIR\qpid-python-test"
+}
+$QPID_TESTS="$top_srcdir\..\tests"
+$QPID_TESTS_PY="$QPID_TESTS\src\py"
+$QPID_TOOLS="$top_srcdir\..\tools"
+$QPID_TOOLS_LIBS="$QPID_TOOLS\src\py"
+$QMF_LIB="$top_srcdir\..\extras\qmf\src\py"
+$PYTHON_COMMANDS="$QPID_TOOLS\src\py"
+$env:PYTHONPATH="$srcdir;$PYTHON_DIR;$PYTHON_COMMANDS;$QPID_TESTS_PY;$QPID_TOOLS_LIBS;$QMF_LIB;$env:PYTHONPATH"
+$QPID_CONFIG_EXEC="$PYTHON_COMMANDS\qpid-config"
+$QPID_ROUTE_EXEC="$PYTHON_COMMANDS\qpid-route"
+$QPID_HA_TOOL_EXEC="$PYTHON_COMMANDS\qpid-ha-tool"
+
+# Executables
+$env:QPIDD_EXEC="$top_builddir\src\@CMAKE_BUILD_TYPE@\qpidd.exe"
+$env:QPID_WATCHDOG_EXEC="$top_builddir\src\qpidd_watchdog"
+
+# Test executables
+$QPID_TEST_EXEC_DIR="$builddir\@CMAKE_BUILD_TYPE@"
+$RECEIVER_EXEC="$QPID_TEST_EXEC_DIR\receiver"
+$SENDER_EXEC="$QPID_TEST_EXEC_DIR\sender"
+
+# Path
+$env:PATH="$top_builddir\src\@CMAKE_BUILD_TYPE@;$builddir\@CMAKE_BUILD_TYPE@;$srcdir;$PYTHON_COMMANDS;$QPID_TEST_EXEC_DIR;@BOOST_LIBRARYDIR@;$env:PATH"
+
+# Modules
+$env:TEST_STORE_LIB="$testmoduledir\test_store.so"
+
+#exportmodule() { test -f $moduledir/$2 && eval "export $1=$moduledir/$2"; }
+#exportmodule ACL_LIB acl.so
+#exportmodule CLUSTER_LIB cluster.so
+#exportmodule SSLCONNECTOR_LIB sslconnector.so
+#exportmodule SSL_LIB ssl.so
+#exportmodule WATCHDOG_LIB watchdog.so
+#exportmodule XML_LIB xml.so
+
+# Qpid options
+$env:QPID_NO_MODULE_DIR="1"	# Don't accidentally load installed modules
+$env:QPID_DATA_DIR= 		# Default to no data dir, not ~/.qpidd
+
+# Options for boost test framework
+$env:BOOST_TEST_SHOW_PROGRESS="yes"
+$env:BOOST_TEST_CATCH_SYSTEM_ERRORS="no"

Added: qpid/trunk/qpid/cpp/src/tests/env.py.in
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/env.py.in?rev=1740289&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/env.py.in (added)
+++ qpid/trunk/qpid/cpp/src/tests/env.py.in Thu Apr 21 12:31:34 2016
@@ -0,0 +1,100 @@
+#
+# 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.
+#
+
+from __future__ import print_function
+
+from plano import *
+
+def _export(name, value):
+    globals()[name] = value
+
+    if value is not None:
+        ENV[name] = value
+
+def _export_module(name, path):
+    _export(name, None)
+    
+    if exists(path):
+        _export(name, path)
+
+# Variables substituted by cmake
+
+_export("BUILD_DIR", normalize_path("@CMAKE_BINARY_DIR@"))
+_export("SOURCE_DIR", normalize_path("@CMAKE_SOURCE_DIR@"))
+_export("SASLPASSWD2", normalize_path("@SASLPASSWD2_EXECUTABLE@"))
+_export("PYTHON", normalize_path("@PYTHON_EXECUTABLE@"))
+_export("VALGRIND", None)
+
+if "@ENABLE_VALGRIND@" == "ON":
+    _export("VALGRIND", normalize_path("@VALGRIND_EXECUTABLE@"))
+
+# Python path
+
+_python_path = [
+    join(BUILD_DIR, "src", "tests"),
+    join(BUILD_DIR, "bindings", "qpid", "python"),
+    join(BUILD_DIR, "management", "python", "lib"),
+]
+
+if "PYTHONPATH" in ENV:
+    _python_path.extend(ENV["PYTHONPATH"].split(PATH_VAR_SEP))
+
+ENV["PYTHONPATH"] = PATH_VAR_SEP.join(_python_path)
+
+# Path
+
+_path = [
+    join(BUILD_DIR, "src"),
+    join(BUILD_DIR, "src", "RelWithDebInfo"),
+    join(BUILD_DIR, "src", "tests"),
+    join(BUILD_DIR, "src", "tests", "RelWithDebInfo"),
+    join(BUILD_DIR, "management", "python", "bin"),
+]
+
+if "PATH" in ENV:
+    _path.extend(ENV["PATH"].split(PATH_VAR_SEP))
+
+ENV["PATH"] = PATH_VAR_SEP.join(_path)
+
+# Modules
+
+_export_module("HA_LIB", join(BUILD_DIR, "src", "ha.so"))
+_export_module("XML_LIB", join(BUILD_DIR, "src", "xml.so"))
+_export_module("AMQP_LIB", join(BUILD_DIR, "src", "amqp.so"))
+_export_module("TEST_STORE_LIB", join(BUILD_DIR, "src", "tests", "test_store.so"))
+_export_module("STORE_LIB", join(BUILD_DIR, "src", "linearstore.so"))
+
+if STORE_LIB is None:
+    _export_module("STORE_LIB", join(BUILD_DIR, "src", "legacystore.so"))
+
+# Summarize
+
+print("PWD:          {}".format(current_dir()))
+print("SOURCE_DIR:   {}".format(SOURCE_DIR))
+print("BUILD_DIR:    {}".format(BUILD_DIR))
+
+print("PATH:")
+
+for item in _path:
+    print("  {}".format(item))
+
+print("PYTHONPATH:")
+
+for item in _python_path:
+    print("  {}".format(item))

Added: qpid/trunk/qpid/cpp/src/tests/env.sh.in
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/env.sh.in?rev=1740289&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/env.sh.in (added)
+++ qpid/trunk/qpid/cpp/src/tests/env.sh.in Thu Apr 21 12:31:34 2016
@@ -0,0 +1,74 @@
+#
+# 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.
+#
+
+# Environment variables substituted by cmake
+
+export BUILD_DIR=@CMAKE_BINARY_DIR@
+export SOURCE_DIR=@CMAKE_SOURCE_DIR@
+
+export SASLPASSWD2=@SASLPASSWD2_EXECUTABLE@
+export PYTHON=@PYTHON_EXECUTABLE@
+
+if [[ "@ENABLE_VALGRIND@" == "ON" ]]; then
+    export VALGRIND=@VALGRIND_EXECUTABLE@
+fi
+
+# Python path
+
+export PYTHONPATH=$BUILD_DIR/src/tests:$BUILD_DIR/bindings/qpid/python:$BUILD_DIR/management/python/lib:${PYTHONPATH-}
+
+# Path
+
+export PATH=$BUILD_DIR/src:$BUILD_DIR/src/tests:$BUILD_DIR/management/python/bin:${PATH-}
+
+# Modules
+
+function export_module {
+    [[ -f $BUILD_DIR/src/$2 ]] && export $1=$BUILD_DIR/src/$2
+}
+
+export_module HA_LIB ha.so
+export_module XML_LIB xml.so
+export_module AMQP_LIB amqp.so
+
+[[ ${STORE_LIB-} ]] || export_module STORE_LIB linearstore.so
+[[ ${STORE_LIB-} ]] || export_module STORE_LIB legacystore.so
+
+export TEST_STORE_LIB=$BUILD_DIR/src/tests/test_store.so
+
+# Qpidd options - Eliminate
+
+export QPID_NO_MODULE_DIR=1	# Don't accidentally load installed modules
+export QPID_DATA_DIR=           # Disable persistence
+export QPID_CONFIG=$SOURCE_DIR/src/tests/qpidd-empty.conf
+
+# Options for boost test framework
+
+[[ ${BOOST_TEST_SHOW_PROGRESS-} ]] || export BOOST_TEST_SHOW_PROGRESS=yes
+[[ ${BOOST_TEST_CATCH_SYSTEM_ERRORS-} ]] || export BOOST_TEST_CATCH_SYSTEM_ERRORS=no
+
+echo "PWD:          $PWD"
+echo "SOURCE_DIR:   ${SOURCE_DIR}"
+echo "BUILD_DIR:    ${BUILD_DIR}"
+
+echo "PATH:"
+echo -n "  "; echo $PATH | sed 's/:/\n  /g'
+
+echo "PYTHONPATH:"
+echo -n "  "; echo $PYTHONPATH | sed 's/:/\n  /g'

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=1740289&r1=1740288&r2=1740289&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/federated_topic_test (original)
+++ qpid/trunk/qpid/cpp/src/tests/federated_topic_test Thu Apr 21 12:31:34 2016
@@ -42,12 +42,12 @@ while getopts "s:m:b:" opt ; do
     esac
 done
 
-source ./test_env.sh
+source ./env.sh
 
 trap stop_brokers EXIT
 
 start_broker() {
-    $QPIDD_EXEC --daemon --port 0 --interface 127.0.0.1 --no-module-dir --no-data-dir --auth no > qpidd.port
+    qpidd --daemon --port 0 --interface 127.0.0.1 --no-module-dir --no-data-dir --auth no > qpidd.port
 }
 
 start_brokers() {
@@ -61,7 +61,7 @@ start_brokers() {
 
 stop_brokers() {
     for p in $PORT_A $PORT_B $PORT_C; do
-        $QPIDD_EXEC --no-module-dir -q --port $p
+        qpidd --no-module-dir -q --port $p
     done
 }
 
@@ -75,11 +75,11 @@ subscribe() {
 
     echo Subscriber $1 connecting on $MY_PORT
     LOG="subscriber_$1.log"
-    ./qpid-topic-listener -p $MY_PORT  > $LOG 2>&1 && rm -f $LOG 
+    qpid-topic-listener -p $MY_PORT  > $LOG 2>&1 && rm -f $LOG 
 }
 
 publish() {
-    ./qpid-topic-publisher --messages $MESSAGES --batches $BATCHES --subscribers $SUBSCRIBERS -p $PORT_A
+    qpid-topic-publisher --messages $MESSAGES --batches $BATCHES --subscribers $SUBSCRIBERS -p $PORT_A
 }
 
 setup_routes() {
@@ -89,40 +89,39 @@ setup_routes() {
     if (($VERBOSE)); then
         echo "Establishing routes for topic..."
     fi
-    $QPID_ROUTE_EXEC route add $BROKER_B $BROKER_A amq.topic topic_control B B
-    $QPID_ROUTE_EXEC route add $BROKER_C $BROKER_B amq.topic topic_control C C
+    qpid-route route add $BROKER_B $BROKER_A amq.topic topic_control B B
+    qpid-route route add $BROKER_C $BROKER_B amq.topic topic_control C C
     if (($VERBOSE)); then
         echo "linked A->B->C"        
     fi
-    $QPID_ROUTE_EXEC route add $BROKER_B $BROKER_C amq.topic topic_control B B
-    $QPID_ROUTE_EXEC route add $BROKER_A $BROKER_B amq.topic topic_control A A
+    qpid-route route add $BROKER_B $BROKER_C amq.topic topic_control B B
+    qpid-route route add $BROKER_A $BROKER_B amq.topic topic_control A A
     if (($VERBOSE)); then
         echo "linked C->B->A"        
         echo "Establishing routes for response queue..."
     fi
 
-    $QPID_ROUTE_EXEC route add $BROKER_B $BROKER_C amq.direct response B B
-    $QPID_ROUTE_EXEC route add $BROKER_A $BROKER_B amq.direct response A A
+    qpid-route route add $BROKER_B $BROKER_C amq.direct response B B
+    qpid-route route add $BROKER_A $BROKER_B amq.direct response A A
     if (($VERBOSE)); then
         echo "linked C->B->A"        
         for b in $BROKER_A $BROKER_B $BROKER_C; do 
             echo "Routes for $b"
-            $QPID_ROUTE_EXEC route list $b
+            qpid-route route list $b
         done
     fi
 }
 
-if test -d ${PYTHON_DIR} ;  then
-    start_brokers
-    if (($VERBOSE)); then
-        echo "Running federated topic test against brokers on ports $PORT_A $PORT_B $PORT_C"
-    fi
+start_brokers
 
-    for ((i=$SUBSCRIBERS ; i--; )); do
-        subscribe $i &
-    done
+if (($VERBOSE)); then
+    echo "Running federated topic test against brokers on ports $PORT_A $PORT_B $PORT_C"
+fi
 
-    setup_routes
+for ((i=$SUBSCRIBERS ; i--; )); do
+    subscribe $i &
+done
 
-    publish  || exit 1
-fi
+setup_routes
+
+publish  || exit 1

Modified: qpid/trunk/qpid/cpp/src/tests/ha_test.py
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/ha_test.py?rev=1740289&r1=1740288&r2=1740289&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/ha_test.py (original)
+++ qpid/trunk/qpid/cpp/src/tests/ha_test.py Thu Apr 21 12:31:34 2016
@@ -160,9 +160,8 @@ acl allow all all
     @property
     def qpid_ha_script(self):
         if not hasattr(self, "_qpid_ha_script"):
-            qpid_ha_exec = os.getenv("QPID_HA_EXEC")
-            if not qpid_ha_exec or not os.path.isfile(qpid_ha_exec):
-                raise Skipped("qpid-ha not available")
+            qpid_ha_exec = os.path.join(os.getenv("SOURCE_DIR"), "management",
+                                        "python", "bin", "qpid-ha")
             self._qpid_ha_script = import_script(qpid_ha_exec)
         return self._qpid_ha_script
 
@@ -225,11 +224,8 @@ acl allow all all
         assert retry(lambda: agent.getQueue(queue) is None, timeout=timeout), "%s: queue %s still present"%(msg,queue)
 
     def qpid_config(self, args):
-        qpid_config_exec = os.getenv("QPID_CONFIG_EXEC")
-        if not qpid_config_exec or not os.path.isfile(qpid_config_exec):
-            raise Skipped("qpid-config not available")
         assert subprocess.call(
-            [qpid_config_exec, "--broker", self.host_port()]+args, stdout=1, stderr=subprocess.STDOUT
+            ["qpid-config", "--broker", self.host_port()]+args, stdout=1, stderr=subprocess.STDOUT
         ) == 0, "qpid-config failed"
 
     def config_replicate(self, from_broker, queue):

Modified: qpid/trunk/qpid/cpp/src/tests/ha_tests.py
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/ha_tests.py?rev=1740289&r1=1740288&r2=1740289&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/ha_tests.py (original)
+++ qpid/trunk/qpid/cpp/src/tests/ha_tests.py Thu Apr 21 12:31:34 2016
@@ -1450,15 +1450,9 @@ class TransactionTests(HaBrokerTest):
                     "*.tx.*"], stdout=None, stderr=None).assert_exit_ok()
 
 if __name__ == "__main__":
-    qpid_ha_exec = os.getenv("QPID_HA_EXEC")
-    if qpid_ha_exec and os.path.isfile(qpid_ha_exec):
-        BrokerTest.amqp_tx_warning()
-        outdir = "ha_tests.tmp"
-        shutil.rmtree(outdir, True)
-        os.execvp("qpid-python-test",
-                ["qpid-python-test", "-m", "ha_tests", "-DOUTDIR=%s"%outdir]
-                  + sys.argv[1:])
-    else:
-        print "Skipping ha_tests, qpid-ha not available"
-
+    outdir = "ha_tests.tmp"
+    shutil.rmtree(outdir, True)
+    os.execvp("qpid-python-test",
+            ["qpid-python-test", "-m", "ha_tests", "-DOUTDIR=%s"%outdir]
+              + sys.argv[1:])
 




---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org