Apache Qpid Interop Test

Clone this repo:
  1. 929b22b QPIDIT-93: Modified schema to include properties containing test metadata and some additional attributes. Also some cleanup. by Kim van der Riet · 2 hours ago master
  2. c3b3cff QPIDIT-115: When stderr output from a shim is present, also show stdout output. by Kim van der Riet · 3 weeks ago
  3. 050b4f7 NOJIRA: Minor fix to commit d7f76fb1cd7ed9962b26db19f1b2e31bb368ea3d on 04/26/2018: The receiver shims for amqp_types test format the returned values in a short hex format 0x1, so the test values must also use this format. Changed 0x00 and 0x01 to 0x0 and 0x1 respectively. by Kim van der Riet · 3 weeks ago
  4. b9a3ef2 QPIDIT-119: Minor fix to C++ receiver shim, in which maps embedded in lists were being tested by the == operator, and this does not allow for a change in map order. Switched to using the checkMapEqual() method instead. by Kim van der Riet · 3 weeks ago
  5. dcc943f QPIDIT-119: Included explicit C++11 flags for shim builds as c++11 features are now being used and earlier compilers do not turn these on by default by Kim van der Riet · 4 weeks ago

Qpid Client Interoperability Test Suite

This directory contains the Qpid Proton Client API test suite.

All files in this directory are under the Apache License - see LICENSE for details.

Source Code

Source code may be obtained from Apache git server https://git-wip-us.apache.org/repos/asf/qpid-interop-test.git


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!