Mirror of Apache Qpid Dispatch
Switch branches/tags
Clone or download
Pull request Compare This branch is 17 commits behind apache:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
cmake
console
dockerfiles
docs
etc
include/qpid
licenses
python
router
src
tests
tools
.gitignore
.reviewboardrc
.travis.yml
CMakeLists.txt
KEYS
LICENSE
NOTICE
README
VERSION.txt
config.sh
pom.xml
reconfigure.in
run.py.in

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.