1. Overview

You must build and install qpid-interop-test before you can run the tests. The process follows the traditional steps:

  • Install prerequisites
  • Install source
  • Cmake / make / sudo make install
  • Start a test broker against which to run the tests
  • Run the tests

or using containers:

  • podman build
  • podman run
  • Run test in container

This is a brief description for building, installing and running Qpid Interop Test. See USERGUIDE for more detail.

2. Prerequisites

The following packages are required:

PackageFedora 34 & CentOS 8Ubuntu Focal
GNU C++ compilergcc-c++build-essential
JSON C++ (devel)jsoncpp-devellibjsoncpp-dev
Python 3 (devel)python3-develpython3-dev
Java 11 (devel)java-11-openjdk-developenjdk-11-jdk
Qpid Proton C++ (devel)qpid-proton-cpp-devellibqpid-proton-cpp12-dev[^1]
Qpid Python 3 bindingspython3-qpid-protonpython3-qpid-proton[^1]

[^1]: Must have ppa:qpid/testing added to repository list to install these packages.

The following are optional:

PackageFedora 34 & CentOS 8Ubuntu Focal
node-js (devel)nodejs-devellibnode-dev
.NET SDK 5.0dotnet-sdk-5.0aspnetcore-runtime-5.0

A broker is required against which to run the test. Any AMQP 1.0 broker should work. Suggestions: Apache ActiveMQ Artemis, Qpid Dispatch Router.

3. Install Source and Build

Git repository: https://gitbox.apache.org/repos/asf/qpid-interop-test.git

By default, qpid-interop-test will install to /usr/local, use --CMAKE_INSTALL_PREFIX option to change.

# If you want to use Rhea Javascript client:
git clone https://github.com/amqp/rhea.git
git clone https://gitbox.apache.org/repos/asf/qpid-interop-test.git
cd qpid-interop-test && mkdir build && cd build
cmake ..
sudo make install

4. Run the Tests

Start a broker. Then:

qpid-interop-test <test-name> [test-options...]

<test-name> may be one of:

  • amqp-types-test - a test of AMQP simple types
  • amqp-complex-types-test - a test of AMQP complex types (arrays, lists, maps)
  • amqp-large-content-test - a test of variable-size types using large content (up to 10MB)
  • jms-messages-test - a test of JMS message types as implemented by qpid-jms
  • jms-hdrs-props-test - a test of user-definable message headers and properties as implemented by qpid-jms.
  • all - run all the above tests sequentially.

For help on tests that can be run and options, run:

qpid-interop-test --help

For help on options for an individual test, run:

qpid-interop-test <test-name> --help

5. Containers

The Qpid Interop Test root directory has a containers directory which contains Dockerfiles for Fedora 34, CentOS 8 and Ubuntu Focal. The build process builds and installs Qpid Interop Test as well as the Qpid Dispatch Router for use as a local broker.

For example:

podman build -f containers/Dockerfile.f34 -t fedora34.qit
podman run -it fedora34.qit /bin/bash

In the container:

sudo /sbin/qdrouterd --daemon
qpid-interop-test all