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 directory you can run all the system and tests with:
$ ctest -VV
ctest uses the script /test/run.py to set up the correct environment for
tests. You can use it to run tests individually from the /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 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:
/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.