blob: 366a28738f8a4311fde6644234d8c1192df8e988 [file] [log] [blame]
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
Documentation
-------------
A quickstart guide for building and using this test suite is contained in
QUICKSTART. Detailed documentation for adding tests and using them are
(will be) contained in the docs directory.
Issues
------
Issues are tracked in the Apache JIRA at
https://issues.apache.org/jira/browse/QPIDIT
Support
-------
Support may be obtained from the qpid-users mailing list
users@qpid.apache.org
Writing shims for new clients
-----------------------------
A detailed description of this process is (will be) 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 <num messages> messages from the broker and
printing the bodies of the received messages appropriately decoded for type
<amqp 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!