qpid-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kp...@apache.org
Subject qpid-interop-test git commit: QPIDIT-84: Updated QUICKSTART.md file, also update to config.sh.in to use Python directory as discovered by utility rather than hardcoding it
Date Tue, 12 Sep 2017 16:26:54 GMT
Repository: qpid-interop-test
Updated Branches:
  refs/heads/master 986f0f488 -> bedf06c21

QPIDIT-84: Updated QUICKSTART.md file, also update to config.sh.in to use Python directory
as discovered by utility rather than hardcoding it

Project: http://git-wip-us.apache.org/repos/asf/qpid-interop-test/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-interop-test/commit/bedf06c2
Tree: http://git-wip-us.apache.org/repos/asf/qpid-interop-test/tree/bedf06c2
Diff: http://git-wip-us.apache.org/repos/asf/qpid-interop-test/diff/bedf06c2

Branch: refs/heads/master
Commit: bedf06c21dcfe6ec9f611c36733feb3d85c45f93
Parents: 986f0f4
Author: Kim van der Riet <kpvdr@apache.org>
Authored: Tue Sep 12 12:26:37 2017 -0400
Committer: Kim van der Riet <kpvdr@apache.org>
Committed: Tue Sep 12 12:26:37 2017 -0400

 QUICKSTART.md | 225 ++++++++++++++++++++++++++++++-----------------------
 config.sh.in  |   3 +-
 2 files changed, 128 insertions(+), 100 deletions(-)

diff --git a/QUICKSTART.md b/QUICKSTART.md
index 8b33de1..c5c01bc 100644
@@ -24,16 +24,25 @@ under the License.
 You must build *and install* qpid-interop-test before you can run the tests.
 By default, qpid-interop-test will install to /usr/local, but you can set any
-non-priviedged directory as the install prefix, for example $HOME/install.
+non-priviedged directory as the install prefix using the CMAKE_INSTALL_PREFIX
+environment variable, for example $HOME/install.
-The following pre-requisites must be installed *before* you build and install
+The following tools are needed to build qpid-interop-test:
+ * git
+ * gcc-c++
+ * Python 2.7.x
+ * cmake
+ * Java JDK
+ * Maven
+ * JSON cpp
+The following Qpid components must be installed *before* you build and install
- * Qpid Proton (includes C++ Proton API)
+ * Qpid Proton (including C++ Proton API)
  * Qpid Python
  * Qpid JMS
- * Maven
- * JSON cpp
 The following are not required, but if installed and present, will be tested:
@@ -41,165 +50,183 @@ The following are not required, but if installed and present, will be
  * AMQP.Net Lite (requires mono)
 Pre-requisites can be installed using the standard system package manager (yum,
-dnf, apt-get etc.) OR built from source and installed *to the same prefix* as
-For example, to install standard packages on Fedora 25:
-    sudo dnf install qpid-jms-client nodejs-rhea npm maven jsoncpp-devel
+dnf, apt-get etc.) OR built from source and installed.
 These are the install steps:
-1. Install pre-requisites, from packages or source
-2. Download and build qpid-interop-test
-3. Install or download / build AMQP brokers to test against
+1. Install prerequisites, from packages or source
+2. Install or download / build AMQP brokers to test against (or set up networked brokers)
+3. Download and build qpid-interop-test
 4. Run the tests
+## 1. Install prerequisites
-# 1. How to build packages required for qpid-interop-test
+### 1.1 RHEL6
-## a. Get and build Qpid Proton
-git clone https://git-wip-us.apache.org/repos/asf/qpid-proton.git
-cd qpid-proton
+Currently RHEL6 is not supported because it uses Python 2.6.x, and the test code uses
+features of Python 2.7.x. This may be supported in a future release.
+### 1.2 RHEL7
+From a clean install:
-### Build and install C++ components:
-mkdir build
-cd build
+yum install cmake maven java-1.8.0-openjdk-devel perl-XML-XPath
-### INSTALL OPTION A: (TODO: I have not tested this option!)
+Some packages will need to be downloaded from [EPEL](https://fedoraproject.org/wiki/EPEL).
+To set up the EPEL repo in yum:
-cmake ..
-sudo make install
+wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
+rpm -ivh epel-release-latest-6.noarch.rpm
+then install the following packages:
-cmake -DCMAKE_INSTALL_PREFIX=/abs/path/to/local/install/dir ..
-make install
-cd ..
+yum install jsoncpp-devel nodejs-rhea qpid-proton-cpp-devel python-qpid-proton
-### Build and install Java components:
+Qpid-jms client is not available as a package, so it must be built:
+git clone https://git-wip-us.apache.org/repos/asf/qpid-jms.git
+cd qpid-jms
 mvn -DskipTests install
 cd ..
-## b. Get and install Qpid Python
+### 1.3 Fedora 26
+All packages are available directly from the Fedora repositories:
-git clone https://git-wip-us.apache.org/repos/asf/qpid-python.git
-cd qpid-python
+dnf install gcc-c++ cmake maven java-1.8.0-openjdk-devel perl-XML-XPath jsoncpp-devel nodejs-rhea
qpid-proton-cpp-devel python-qpid-proton qpid-jms-client
-### INSTALL OPTION A: (TODO: I have not tested this option!)
+## 2. Obtaining a broker
+Qpid-interop-test requires a broker to be running against which the tests may be run. This
+may be on localhost as a local install or build, or on another machine, in which case its
+IP addresss must be known. Some local broker install options are:
+### 2.1 ActiveMQ 5
+Download from [Apache](http://activemq.apache.org/download.html).
+Make the following changes to the `activemq.xml` config file: For XML element
+`broker.transportConnectors.transportConnector@name="amqp"` add the attribute
+`wireFormat.allowNonSaslConnections=true`. ie:
-sudo python setup.py install
+<transportConnector name="amqp" uri="amqp://;wireFormat.maxFrameSize=1048576000&amp;wireFormat.allowNonSaslConnections=true"/>
+### 2.2 Artemis
+Download from [Apache](https://activemq.apache.org/artemis/download.html).
+Make the following changes to the `broker.xml` file: For XML element
+`configuration.core.address-settings.address-setting@match="#"` add the following child element:
-python setup.py install --prefix=/abs/path/to/local/install/dir
-cd ..
+### 2.3 Qpid cpp broker
-## c. Get and build Qpid JMS
-git clone https://git-wip-us.apache.org/repos/asf/qpid-jms.git
-cd qpid-jms
+    yum install qpid-cpp-server
-mvn -DskipTests install
-cd ..
+and set the configuration file in /etc/qpid/qpidd.conf as follows:
-## d. Get and install Rhea
+### 2.4 Qpid Dispatch Router
+    yum install qpid-dispatch-router
+and add the following to the config file in /etc/qpid-dispatch/qdrouterd.conf:
-git clone https://github.com/grs/rhea.git
-cd rhea
+listener {
+    host: ::1
+    port: amqp
+    authenticatePeer: no
+    saslMechanisms: ANONYMOUS
-npm install debug
-* NOTE: This step requires root privileges, I can't find a way around it (as it needs to
install the
-  link into the folders where node is installed, and I can't get a local link to work):
-sudo npm link
-cd ..
-# 2. Download and build qpid-interop-test
+## 3. Build and install qpid-interop-test
+Qpid-interop-test may be installed locally (preferred for local builds) or to the system
+(which requires root privileges). For a local install, use the `-DCMAKE_INSTALL_PREFIX`
+option to the `cmake` command. If it is omitted, then qpid-interop-test will be installed
+into the default system directories.
 git clone https://git-wip-us.apache.org/repos/asf/qpid-interop-test.git
 cd qpid-interop-test
 mkdir build
 cd build
-cmake -DPROTON_INSTALL_DIR=<install-dir> -DCMAKE_INSTALL_PREFIX=<install-dir>
+cmake [-DCMAKE_INSTALL_PREFIX=<abs-path-to-local-install-dir>] ..
 make install
-# 3. Install or build AMQP brokers to test against
-The following are possible brokers to install or build for testing against:
-## a. Artemis
+## 4. Run the tests
-TODO: Helpful hints on obtaining/building
-Make the following changes to the broker.xml file:
-configuration.core.address-settings.address-setting for match="#":
-  add the following:
-    <auto-create-jms-queues>true</auto-create-jms-queues>
+### 4.1 Set the environment
-## b. ActiveMQ
+The config.sh script is in the qpid-interop-test build directory: 
-TODO: Helpful hints on obtaining/building
-Make the following changes to the activemq.xml config file:
-broker.transportConnectors.transportConnector for name "amqp": add "wireFormat.allowNonSaslConnections=true";
-<transportConnector name="amqp" uri="amqp://;wireFormat.maxFrameSize=1048576000&amp;wireFormat.allowNonSaslConnections=true"/>
+source build/config.sh
-## c. Qpid C++
+### 4.2 Start the test broker
-TODO: Helpful hints on obtaining/building
-When starting the broker, configure or use the following parameters:
-*  --load-module amqp : will enable the AMQP 1.0 protocol
-*  --queue-pattern jms.queue.qpid-interop: will automatically create queues using this prefix
as needed
-*  --auth no : will disable authentication (which these tests do not use).
+If the broker is at a remote location rather than localhost, the IP address must be known.
 In tests using
+the Qpid Dispatch Router, then the entire broker network must be running before the tests
are run. The IP
+addresses of the sender (the broker to which messages are being sent) and receiver (the broker
from which
+messages will be received) must be known.
-## d. Qpid Java
+### 4.3 Run chosen tests
-TODO: Helpful hints on obtaining/building
-TODO: Not yet tested
+The available tests are:
-## e. Qpid Dispatch Router
+| Module | Description | Clients |
+| ------ | ----------- | ------- |
+| amqp_large_content_test | Tests implementation of large messages up to 10MB | C++ Python
AMQP.NetLite |
+| amqp_types_test | Tests the implementation of AMQP 1.0 types | C++ Python Rhea AMQP.NetLite
+| jms_hdrs_props_test | Tests JMS headers and properties | C++ JMS Python |
+| jms_messages_test | Tests all JMS message types (except ObjectMessage) | C++ JMS Python
-TODO: Helpful hints on obtaining/building
-* Configure the router to listen on both IP4 and IP6 ports (ie one listener for
and one for
-  ::1 respectively).
-* Set authenticatePeer to no and make sure saslMechanisms: ANONYMOUS is present (even though
there is no
-  authentication). 
+The preferred method to run the tests is using the Python module option as follows:
-# 4. Run the tests
+python -m qpid_interop_test.amqp_types_test
+python -m qpid_interop_test.jms_messages_test
-## a. Set the environment
+If the broker is remote, use the following to point to the broker:
-The config.sh script is in the build directory 
-source build/config.sh
+python -m qpid_interop_test.amqp_types_test --sender <broker-ip-addr> --receiver <broker-ip-addr>
+python -m qpid_interop_test.jms_messages_test --sender <broker-ip-addr> --receiver
-## b. Start the test broker
+In tests using the Qpid dispatch router, a multi-node configuration may be set up such that
+are sent to a different broker to that from which they will be received. For example, to
send to
+broker A and receive from broker B:
-## c. Run chosen tests
-python -m qpid_interop_test.amqp_types_test
-python -m qpid_interop_test.jms_messages_test
+python -m qpid_interop_test.amqp_types_test --sender <broker-ip-addr-A> --receiver
+python -m qpid_interop_test.jms_messages_test --sender <broker-ip-addr-A> --receiver

diff --git a/config.sh.in b/config.sh.in
index 15dfe48..55c11a3 100644
--- a/config.sh.in
+++ b/config.sh.in
@@ -18,5 +18,6 @@
-export PYTHONPATH=@CMAKE_INSTALL_PREFIX@/lib64/proton/bindings/python:@CMAKE_INSTALL_PREFIX@/lib/python2.7/site-packages:$PYTHONPATH
+export PYTHONPATH=@CMAKE_INSTALL_PREFIX@/lib64/proton/bindings/python:@CMAKE_INSTALL_PREFIX@/lib/@PYTHON_DIR_NAME@/site-packages:$PYTHONPATH
+export PATH=@CMAKE_INSTALL_PREFIX@/lib/@PYTHON_DIR_NAME@/site-packages/qpid_interop_test:$PATH

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

View raw message