<!DOCTYPE html>
<!--
 -
 - Licensed to the Apache Software Foundation (ASF) under one
 - or more contributor license agreements.  See the NOTICE file
 - distributed with this work for additional information
 - regarding copyright ownership.  The ASF licenses this file
 - to you under the Apache License, Version 2.0 (the
 - "License"); you may not use this file except in compliance
 - with the License.  You may obtain a copy of the License at
 -
 -   http://www.apache.org/licenses/LICENSE-2.0
 -
 - Unless required by applicable law or agreed to in writing,
 - software distributed under the License is distributed on an
 - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 - KIND, either express or implied.  See the License for the
 - specific language governing permissions and limitations
 - under the License.
 -
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  <head>
    <title>Qpid Interoperability Test Users Guide - Apache Qpid&#8482;</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
    <script type="text/javascript">var _deferredFunctions = [];</script>
    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
    <!--[if lte IE 8]>
      <link rel="stylesheet" href="/ie.css" type="text/css"/>
      <script type="text/javascript" src="/html5shiv.js"></script>
    <![endif]-->

    <!-- Redirects for `go get` and godoc.org -->
    <meta name="go-import"
          content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
    <meta name="go-source"
          content="qpid.apache.org
https://github.com/apache/qpid-proton/blob/go1/README.md
https://github.com/apache/qpid-proton/tree/go1{/dir}
https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
  </head>
  <body>
    <div id="-content">
      <div id="-top" class="panel">
        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>

        <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>

        <ul id="-global-navigation">
          <li><a id="-logotype" href="/index.html">Apache Qpid<sup>&#8482;</sup></a></li>
          <li><a href="/documentation.html">Documentation</a></li>
          <li><a href="/download.html">Download</a></li>
          <li><a href="/discussion.html">Discussion</a></li>
        </ul>
      </div>

      <div id="-menu" class="panel" style="display: none;">
        <div class="flex">
          <section>
            <h3>Project</h3>

            <ul>
              <li><a href="/overview.html">Overview</a></li>
              <li><a href="/components/index.html">Components</a></li>
              <li><a href="/releases/index.html">Releases</a></li>
            </ul>
          </section>

          <section>
            <h3>Messaging APIs</h3>

            <ul>
              <li><a href="/proton/index.html">Qpid Proton</a></li>
              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
              <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
            </ul>
          </section>

          <section>
            <h3>Servers and tools</h3>

            <ul>
              <li><a href="/components/broker-j/index.html">Broker-J</a></li>
              <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
              <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
            </ul>
          </section>

          <section>
            <h3>Resources</h3>

            <ul>
              <li><a href="/dashboard.html">Dashboard</a></li>
              <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
              <li><a href="/resources.html">More resources</a></li>
            </ul>
          </section>
        </div>
      </div>

      <div id="-search" class="panel" style="display: none;">
        <form action="http://www.google.com/search" method="get">
          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
          <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
          <button type="submit">Search</button>
          <a href="/search.html">More ways to search</a>
        </form>
      </div>

      <div id="-middle" class="panel">
        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-interop-test-0.1.0/index.html">Qpid Interop Test 0.1.0</a></li><li>Qpid Interoperability Test Users Guide</li></ul>

        <div id="-middle-content">
          <div class="quoteblock">
<div class="title">Apache License</div>
<div class="content">
<div class="paragraph"><p>Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at</p></div>
<div class="paragraph"><p><a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a></p></div>
<div class="paragraph"><p>Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.</p></div>
</div>
<div class="attribution">
</div></div>
<h1 id="_qpid_interoperability_test_users_guide">Qpid Interoperability Test Users Guide</h1>
<div class="sect1">
<h2 id="_1_introduction">1. Introduction</h2>
<div class="sectionbody">
<div class="paragraph"><p>qpid-interop-test is an AMQP client interoperability test suite. It tests
various aspects of the AMQP protocol and/or test client features against
each other to ensure that they can interoperate.</p></div>
<div class="paragraph"><p>The test suite consists of tests and shims. Each test has a set of test-cases
which make up the test. Each test case will pass or fail a specific feature
or piece of functionality under test.</p></div>
<div class="paragraph"><p>Each test has a set of shims, which are small and specific clients which
send and receive messages, and is written using one of the client libraries
under test. For example, the amqp_types test has shims for the following
clients:
* AmqpNetLite
* ProtonCpp
* ProtonPython
* RheaJS</p></div>
<div class="paragraph"><p>To obtain both self- and interoperability testing, each test program will
run each shim against every other shim in the role of both sender and
receiver. For the amqp-type-test example above, this will result in the
following combinations of shims being used:</p></div>
<div class="tableblock">
<table rules="all"
width="30%"
frame="border"
cellspacing="0" cellpadding="4">
<col width="10%" />
<col width="45%" />
<col width="45%" />
<tbody>
<tr>
<td align="left" valign="top"><p class="table"></p></td>
<td align="left" valign="top"><p class="table"><strong>Sender shim</strong></p></td>
<td align="left" valign="top"><p class="table"><strong>Receiver shim</strong></p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">1</p></td>
<td align="left" valign="top"><p class="table">AmqpNetLite</p></td>
<td align="left" valign="top"><p class="table">AmqpNetLite</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">2</p></td>
<td align="left" valign="top"><p class="table">AmqpNetLite</p></td>
<td align="left" valign="top"><p class="table">ProtonCpp</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">3</p></td>
<td align="left" valign="top"><p class="table">AmqpNetLite</p></td>
<td align="left" valign="top"><p class="table">ProtonPython</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">4</p></td>
<td align="left" valign="top"><p class="table">AmqpNetLite</p></td>
<td align="left" valign="top"><p class="table">RheaJS</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">5</p></td>
<td align="left" valign="top"><p class="table">ProtonCpp</p></td>
<td align="left" valign="top"><p class="table">AmqpNetLite</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">6</p></td>
<td align="left" valign="top"><p class="table">ProtonCpp</p></td>
<td align="left" valign="top"><p class="table">ProtonCpp</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">7</p></td>
<td align="left" valign="top"><p class="table">ProtonCpp</p></td>
<td align="left" valign="top"><p class="table">ProtonPython</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">8</p></td>
<td align="left" valign="top"><p class="table">ProtonCpp</p></td>
<td align="left" valign="top"><p class="table">RheaJS</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">9</p></td>
<td align="left" valign="top"><p class="table">ProtonPython</p></td>
<td align="left" valign="top"><p class="table">AmqpNetLite</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">10</p></td>
<td align="left" valign="top"><p class="table">ProtonPython</p></td>
<td align="left" valign="top"><p class="table">ProtonCpp</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">11</p></td>
<td align="left" valign="top"><p class="table">ProtonPython</p></td>
<td align="left" valign="top"><p class="table">ProtonPython</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">12</p></td>
<td align="left" valign="top"><p class="table">ProtonPython</p></td>
<td align="left" valign="top"><p class="table">RheaJS</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">13</p></td>
<td align="left" valign="top"><p class="table">RheaJS</p></td>
<td align="left" valign="top"><p class="table">AmqpNetLite</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">14</p></td>
<td align="left" valign="top"><p class="table">RheaJS</p></td>
<td align="left" valign="top"><p class="table">ProtonCpp</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">15</p></td>
<td align="left" valign="top"><p class="table">RheaJS</p></td>
<td align="left" valign="top"><p class="table">ProtonPython</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">16</p></td>
<td align="left" valign="top"><p class="table">RheaJS</p></td>
<td align="left" valign="top"><p class="table">RheaJS</p></td>
</tr>
</tbody>
</table>
</div>
<div class="paragraph"><p>so that for each test case, 16 individual tests are run. The test program
will by default run all the available shims against each other in this way,
but it is possible to control which shims are used using the --include-shim
or --exclude-shim arguments (see below).</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_2_obtaining">2. Obtaining</h2>
<div class="sectionbody">
<div class="paragraph"><p>qpid-interop-test is an Apache Qpid project.</p></div>
<div class="paragraph"><p>Web page: xxx</p></div>
<div class="paragraph"><p>Download soruce: xxx</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_3_building">3. Building</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_a_install_dependencies">a. Install dependencies:</h3>
<div class="ulist"><ul>
<li>
<p>
Build tools: git, gcc, cmake
</p>
</li>
<li>
<p>
Qpid Proton: qpid-proton-c-devel
</p>
</li>
</ul></div>
</div>
<div class="sect2">
<h3 id="_b_decide_on_local_vs_system_install">b. Decide on local vs system install</h3>
<div class="sect3">
<h4 id="_local_install">Local install:</h4>
<div class="paragraph"><p>Installs all of the Proton and QIT bits in a local directory. This is
useful for limited testing where you don&#8217;t want to have these files
in your system directories. Also, if you don&#8217;t have root privileges, then
this is the only way to install. The drawback is that you may need to
adjust some environment settings (<code>PATH</code>, <code>PYTHONPATH</code>, <code>LD_LIBRARY_PATH</code>) so
that the test will run.</p></div>
</div>
<div class="sect3">
<h4 id="_system_install">System install:</h4>
<div class="paragraph"><p>Installs the files into traditional system locations. This type of install
requires root privileges. As the files are located in expected locations, no
environment settings need be made.</p></div>
</div>
</div>
<div class="sect2">
<h3 id="_c_build_qpid_proton">c. Build qpid-proton</h3>
<div class="paragraph"><p><strong>System install:</strong></p></div>
<div class="listingblock">
<div class="content">
<pre><code> $ cd qpid-proton
 $ mkdir build
 $ cd build
 $ cmake ..
 $ make
 $ sudo make install</code></pre>
</div></div>
<div class="paragraph"><p><strong>Local install:</strong></p></div>
<div class="listingblock">
<div class="content">
<pre><code> $ cd qpid-proton
 $ mkdir build
 $ cd build
 $ cmake ..
 $ make install</code></pre>
</div></div>
</div>
<div class="sect2">
<h3 id="_d_build_qpid_interop_test">d. Build qpid-interop-test</h3>
<div class="paragraph"><p><strong>System install:</strong></p></div>
<div class="listingblock">
<div class="content">
<pre><code> $ cd qpid-interop-test
 $ mkdir build
 $ cd build
 $ cmake ..
 $ make
 $ sudo make install</code></pre>
</div></div>
<div class="paragraph"><p><strong>Local install:</strong></p></div>
<div class="listingblock">
<div class="content">
<pre><code> $ cd qpid-interop-test
 $ mkdir build
 $ cd build
 $ cmake ..
 $ make install</code></pre>
</div></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_4_running">4. Running</h2>
<div class="sectionbody">
<div class="paragraph"><p>The tests assume a broker is available and running. The assumed default is at
<code>localhost:5672</code>. For other broker location(s), use the <code>--sender</code> and <code>--receiver</code>
arguments to specify where the clients should interact, see below.</p></div>
<div class="paragraph"><p>The tests do not start or stop brokers.</p></div>
<div class="paragraph"><p>There are several tests in the test suite:</p></div>
<div class="ulist"><ul>
<li>
<p>
<strong>amqp_types_test.py</strong> - Tests all of the AMQP primitive types. This primarily tests
   the encoding and decoding of AMQP types.
</p>
</li>
<li>
<p>
<strong>amqp_large_content_test.py</strong> - Tests large messages of various types. Messages sizes
   are 1MB, 10MB, 100MB. Compound types (lists, maps, etc) send elements of various
   sizes so that the total payload is the target size.
</p>
</li>
<li>
<p>
<strong>jms_messages_test.py</strong> - Tests JMS message types (as implemented by Qpid-jms over AMQP)
   from all the Qpid clients (including non-jms clients)
</p>
</li>
<li>
<p>
<strong>jms_hdrs_props_test.py</strong> - Tests various combinations of JMS headers and properties
   are correctly sent and received by the various clients.
</p>
</li>
</ul></div>
<div class="paragraph"><p>Each test is executed directly.</p></div>
<div class="sect2">
<h3 id="_command_line_arguments">Command-line arguments</h3>
<div class="tableblock">
<table rules="all"
width="100%"
frame="border"
cellspacing="0" cellpadding="4">
<caption class="title">Table 1. Common to all tests</caption>
<col width="20%" />
<col width="80%" />
<tbody>
<tr>
<td align="left" valign="top"><p class="table"><code>--help</code></p></td>
<td align="left" valign="top"><p class="table">Print help. This is useful for seeing the available argument options and
                   defaults for some arguments.</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table"><code>--sender</code></p></td>
<td align="left" valign="top"><p class="table">Node to which test suite will send messages.
                   Format: <code>ip-address:port</code>
                   Default: <code>localhost:5672</code></p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table"><code>--receiver</code></p></td>
<td align="left" valign="top"><p class="table">Node from which test suite will receive messages.
                   Format: <code>ip-address:port</code>
                   Default: <code>localhost:5672</code></p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table"><code>--no-skip</code></p></td>
<td align="left" valign="top"><p class="table">Do not skip tests that are excluded by default for reasons of a known bug.
               Warning: some tests may lock up of freeze rather than fail.</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table"><code>--broker-type</code></p></td>
<td align="left" valign="top"><p class="table">Specify the broker manually, which eliminates the test connection made
               to the broker to determine its identity through connection properties. If
               "None" is specified, then Artemis broker will be assumed, but this will
               change in the future when Artemis fixes the connection properties issue.
               Format: For our current brokers: one of: "ActiveMQ", "qpid-cpp",
               "qpid-dispatch-router". Artemis does not currently pass its name
               in connection properties, and is equivalent to "None".</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table"><code>--include-shim</code></p></td>
<td align="left" valign="top"><p class="table">Name of shim to include. Cannot be used together with <code>--exclude-shim</code>. May
               be used multiple times to include more than one shim.</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table"><code>--exclude-shim</code></p></td>
<td align="left" valign="top"><p class="table">Name of shim to exclude. Cannot be used together with <code>--include-shim</code>. May
               be used multiple times to exclude more that one shim.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="tableblock">
<table rules="all"
width="100%"
frame="border"
cellspacing="0" cellpadding="4">
<caption class="title">Table 2. amqp-types-test</caption>
<col width="20%" />
<col width="80%" />
<tbody>
<tr>
<td align="left" valign="top"><p class="table"><code>--include-type</code></p></td>
<td align="left" valign="top"><p class="table">Name of AMQP type to include. Cannot be used together with <code>--exclude-type</code>.
                   May be used multiple times to include more than one type.</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table"><code>--exclude-type</code></p></td>
<td align="left" valign="top"><p class="table">Name of AMQP type to exclude. Cannot be used together with <code>--include-type</code>.
                   May be used multiple times to exclude more than one type.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="tableblock">
<table rules="all"
width="100%"
frame="border"
cellspacing="0" cellpadding="4">
<caption class="title">Table 3. amqp-large-content-test</caption>
<col width="100%" />
<tbody>
<tr>
<td align="left" valign="top"><p class="table">No other parameters. There is currently no way to select/limit the message size, but there
an issue open to address this limitation.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="tableblock">
<table rules="all"
width="100%"
frame="border"
cellspacing="0" cellpadding="4">
<caption class="title">Table 4. jms-messages-test</caption>
<col width="20%" />
<col width="80%" />
<tbody>
<tr>
<td align="left" valign="top"><p class="table"><code>--include-type</code></p></td>
<td align="left" valign="top"><p class="table">Name of JMS message type to include. Cannot be used together with
               <code>--exclude-type</code>. May be used multiple times to include more than one type.</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table"><code>--exclude-type</code></p></td>
<td align="left" valign="top"><p class="table">Name of JMS message type to exclude. Cannot be used together with
               <code>--include-type</code>. May be used multiple times to exclude more than one type.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="tableblock">
<table rules="all"
width="100%"
frame="border"
cellspacing="0" cellpadding="4">
<caption class="title">Table 5. jms-hdrs-props-test</caption>
<col width="20%" />
<col width="80%" />
<tbody>
<tr>
<td align="left" valign="top"><p class="table"><code>--include-type</code></p></td>
<td align="left" valign="top"><p class="table">Name of Java property type to include. Cannot be used together with
               <code>--exclude-type</code>. May be used multiple times to include more than one type.</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table"><code>--exclude-type</code></p></td>
<td align="left" valign="top"><p class="table">Name of Java property type to exclude. Cannot be used together with
               <code>--include-type</code>. May be used multiple times to exclude more than one type.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="paragraph"><p>There is currently no way to control/limit the JMS header types in this test, but there is
an issue open to address this limitation.</p></div>
<div class="sect3">
<h4 id="_examples">Examples:</h4>
<div class="paragraph"><p>To limit amqp_types_test to boolean type only:
<code>$ amqp_types_test --include-type boolean</code></p></div>
<div class="paragraph"><p>To limit amqp_types_test to Qpid-cpp and Proton-python shims only:
<code>$ amqp_types_test --include-shim ProtonCpp --include-shim ProtonPython</code></p></div>
<div class="paragraph"><p>To test against a pair of Dispatch Routers and a broker running on the local machine
as follows (first set up the brokers and routers):</p></div>
<div class="listingblock">
<div class="content">
<pre><code>+----------+     9001 +----------+    5672 +--------+
| sender   |---------&gt;| dispatch |--------&gt;|        |
|  shim    |          | router 1 |         |        |
+----------+          +----------+         |        |
                                           | broker |
+----------+     9002 +----------+    5672 |        |
| receiver |&lt;---------| dispatch |&lt;--------|        |
|  shim    |          | router 2 |         |        |
+----------+          +----------+         +--------+</code></pre>
</div></div>
<div class="paragraph"><p><code>$ amqp_types_test --sender localhost:9001 --receiver localhost:9002</code></p></div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_5_output">5. Output</h2>
<div class="sectionbody">
<div class="paragraph"><p>All the tests will list each test as it runs and whether it passes or fails.
If a test fails, then the details of the failure will be printed at the end of
the test.</p></div>
<div class="listingblock">
<div class="content">
<pre><code> ======================================================================
 FAIL: test.B.MESSAGE.JMS_TYPE_HEADER:string+JMS_REPLYTO_HEADER:topic.QpidJms-&gt;ProtonCpp (__main__.PartB_JmsHeaderCombination_TestCase)
 ----------------------------------------------------------------------
 Traceback (most recent call last):
   File "./install/lib/python2.7/site-packages/qpid_interop_test/jms_hdrs_props_test.py", line 422, in inner_test_method
     receive_shim)
   File "./install/lib/python2.7/site-packages/qpid_interop_test/jms_hdrs_props_test.py", line 313, in run_test
     self.fail(str(receive_obj))
 AssertionError: JmsReceiver error: Unexpected JMS message header: JMS_PRIORITY: Expected default priority (4), found priority 0</code></pre>
</div></div>
<div class="paragraph"><p>Currently, the tests do not produce log files.</p></div>
</div>
</div>


          <hr/>

          <ul id="-apache-navigation">
            <li><a href="http://www.apache.org/">Apache</a></li>
            <li><a href="http://www.apache.org/licenses/">License</a></li>
            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
            <li><a href="/security.html">Security</a></li>
            <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
          </ul>

          <p id="-legal">
            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
            The Apache Software Foundation; Licensed under
            the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
            Proton, Apache, the Apache feather logo, and the Apache Qpid
            project logo are trademarks of The Apache Software
            Foundation; All other marks mentioned may be trademarks or
            registered trademarks of their respective owners
          </p>
        </div>
      </div>
    </div>
  </body>
</html>
