Mirror of Apache Qpid Dispatch
C Python JavaScript HTML CSS C++ Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin NO-JIRA - Copied export.sh from qpid-proton with minor changes. Remov… May 2, 2018
cmake DISPATCH-893: Compile fails using libwebsockets 7 Jan 2, 2018
console NO-JIRA -Advanced version number to 1.4 Aug 7, 2018
dockerfiles NO-JIRA: Add docker build file for Centos, update README Aug 15, 2018
docs DISPATCH-1067 - Doc improvements for router policies. This closes #343. Aug 6, 2018
etc DISPATCH-918 - Deprecated some router attributes and introduced repla… Apr 3, 2018
include/qpid DISPATCH-1063 - Ensure that the to-override for a delivery uses the i… Jul 5, 2018
licenses DISPATCH-858 - Moved third party text into files and point to these f… Oct 20, 2017
python DISPATCH-1091: explicitly check for python2 when importing __builtins__ Jul 27, 2018
router DISPATCH-954 - Fixed issue suggested by coverity scan tool. This closes Apr 2, 2018
src DISPATCH-1104: use correct log level names for qdstat GET-LOG Aug 16, 2018
tests DISPATCH-1104: use correct log level names for qdstat GET-LOG Aug 16, 2018
tools DISPATCH-1087 - Modified shebang line in some files to put in the cor… Jul 25, 2018
.gitignore NO-JIRA: update gitignore to ignore generated python scripts Jul 27, 2018
.reviewboardrc NO-JIRA - Added license information to several files Apr 5, 2017
.travis.yml DISPATCH-851: Correct the cmake logic for adding book targets based o… Jun 28, 2018
CMakeLists.txt DISPATCH-1098: Adjust name of unit2 executable for python3 #355 Aug 9, 2018
KEYS NO-JIRA - Added my public key to KEYS Apr 12, 2018
LICENSE DISPATCH-801 Removed reference to 3rd party libraries form stand-alon… Nov 11, 2017
NOTICE NO-JIRA: update year in NOTICE file Jan 17, 2018
README DISPATCH-851: Correct the cmake logic for adding book targets based o… Jun 28, 2018
VERSION.txt NO-JIRA -Advanced version number to 1.4 Aug 7, 2018
config.sh DISPATCH-390 - Removed accidental checkin of config.sh Apr 27, 2017
pom.xml NO-JIRA -Advanced version number to 1.4 Aug 7, 2018
reconfigure.in NO-JIRA - Added license information to several files Apr 5, 2017
run.py.in DISPATCH-1087 - Modified shebang line in some files to put in the cor… Jul 25, 2018

README

Qpid Dispatch
=============

A lightweight AMQP router for building scalable, available, and performant messaging
interconnect.

Dependencies
============

To build dispatch on a yum-based Linux system, you will need the following
packages installed:

- qpid-proton-c-devel
- python-qpid-proton
- cmake
- make
- gcc
- python-devel
- cyrus-sasl-plain
- cyrus-sasl-devel
- asciidoc (for building docs)
- asciidoctor (for building docs)
- python-unittest2 (python2-unittest2 on Fedora) (we use unittest2 for running python tests)

Dispatch will not build on Windows.

To build formatted documentation (man pages, HTML, PDF) see the requirements in doc/README

Building and testing
====================

From the dispatch directory:

$ mkdir my_build    # or directory of your choice.
$ cd my_build
$ cmake ..
$ make


Running The Tests
=================

From the <build> directory you can run all the system and tests with:
$ ctest -VV

ctest uses the script <build>/test/run.py to set up the correct environment for
tests. You can use it to run tests individually from the <build>/tests
directory, for example:

$ ./run.py unit_tests_size 3
$ ./run.py -m unittest system_tests_qdstat

Run it without arguments to get a summary of how it can be used:
$ ./run.py


Test Suite Code Coverage (GNU tools only)
=========================================

Use coverage analysis to ensure that all code paths are exercised by
the test suite. To run the tests and perform code coverage analysis:

# install the lcov package
$ yum install lcov

# configure and build for the Coverage build type (from the <build> directory):
$ cmake -DCMAKE_BUILD_TYPE=Coverage .. && make

# run the test suite and generate the coverage html output
$ ctest && make coverage

# Then point your browser at:
  <build>/coverage_results/html/index.html


Clean build, install and test
=============================

$ source config.sh; test.sh

This does the following:
- NOTE: delete any existing directories 'build' and 'install'
- Do a fresh cmake and make in directory 'build'
- Run unit tests (not system tests) in 'build'
- Do 'make install' into the directory 'install'
- Run system tests on the installation in 'install'.


Using Valgrind
==============

If valgrind is installed and cmake option 'USE_VALGRIND' is 'ON' the tests will
be run with valgrind's memcheck debugger. You can set other types of test runner
or modify the valgrind flags by setting the TEST_RUNNER cmake variable.