Solution: Added integration with CTest to existing unit test framework
based on Catch. ctest -v returns list of run tests now.
Changes:
* downloading and using Catch cmake modules that `unit_tests
--list-test-names-only` for add_test internally
Currently cppzmq as relatively simple and header only library depends on rather
complex unit test framework googletest.
Current issues:
- Googletest requires downloading and building it every time on travis
as cache support is limited there
- Googletest build is signifficant with comparison to cppzmq unittests
total runtime
Solution: Port existing tests to Catch - header only C++ framework and
gain ~20% build speed up on travis.
Why Catch?
It is well know C++ header only testing framework. It works well, it is
being kept up to date and maintainers seem to pay attention to
community's comments and issues.
We can not use Catch2 currently as we still support pre-C++11 compilers.
It seems that there is a bug in libzmq 4.2.0 cmake configs that prevents
linking to it without installing.
Solution: disable libzmq 4.2.0 for cmake builds
libzmq build with default settings now which build all the tests and
performance tools. This is not required for cppzmq build and slows down
it only.
Solution: disable tests build for libzmq and make it release only.
* Added overload constructor (c++11 only) taking iteratable object.
It would be easier to use std::string, std::array etc to construct
a message now. Making it a draft for now in case it is too greedy
and needs to be more specialize.
* Added equal and not euqal operator to message_t as a recommended
and expected way of comparing objects in C++.
* deprecated C style equal method as operator== should be used instead
(point above).
* Added message_t test covering all available message_t's constructors