Apache Qpid Interop Test

Clone this repo:
  1. 0693a8a QPIDIT-140: Fix for python pointing to Python 3.x in Fedora 31. Changed all references to python to python2. by Kim van der Riet · 4 months ago master
  2. 1115372 QPIDIT-139: Added separate install for python 3 rather than using symbolic links by Kim van der Riet · 4 months ago
  3. 693b60e QPIDIT-139: Further refinements and removing ugly stuff in the install, fixed python error around checking env vars by Kim van der Riet · 4 months ago
  4. 2f64059 QPIDIT-139: Replacing workaround for for RHEL/CentOS 7 bug where Java_FOUND not being set correctly which was removed in last checkin. by Kim van der Riet · 4 months ago
  5. 402fb98 QPIDIT-139: Improving install's detection of Python 2 and Python 3, preparing for swith to Python 3 tests. QPIDIT-135: Minor improvements to handling of Python 2 and Python 3 shims. The presence of PYTHON2PATH and PYTHON3PATH in env controls the running of the shims. QPIDIT-138: Minor improvements to messages during cmake run. by Kim van der Riet · 4 months ago

Qpid Interop Test Suite

This directory contains the Qpid Interop Test suite.


A quickstart guide for building and using this test suite is contained in QUICKSTART. Detailed documentation for adding tests and using them are contained in the docs directory.


Issues are tracked in the Apache JIRA at https://issues.apache.org/jira/browse/QPIDIT


Support may be obtained from the qpid-users mailing list users@qpid.apache.org.

Installing and Running

See the QUICKSTART file for building, installing and running instructions.

Writing new shims for a test

A detailed description of this process is contained in the docs directory. The very short version of this is as follows:

  1. Write a pair of client programs using the client API under test. The first is a sender which reads the following from the command-line:

    <broker address> <amqp type> <JSON string: test values> ...

    and is responsible for sending messages containing the test values each in a single message in the appropriate AMQP type format.

    The second client program is a receiver, and must read the following from the command-line

    <broker address> <amqp type> <JSON string: num messages>

    and is responsible for receiving messages from the broker and printing the bodies of the received messages appropriately decoded for type . The printed output will be a JSON string containing the identical structure to that sent to the send shim, but containing the received values.

  2. Add a subclass for this client in src/py/qpid-interop-test/types/simple_type_test.py derived from class Shim and which overrides NAME, ENV (as needed), SHIM_LOC, SEND and RECEIVE. SEND and RECEIVE must point to the two clients written in step 1 above.

  3. Add an instance of your new shim class to SHIM_MAP keyed against its name.

That's it!