Commit Graph

585 Commits

Author SHA1 Message Date
trya
a91522f65e Unit tests for message_t::get()
Testing ZMQ_SHARED property only, since other properties (ZMQ_MORE and
ZMQ_SRCFD) depend on socket operations.
2019-03-14 14:25:50 +01:00
Ivan Čukić
7d59f129c8 Removed warnings when compiling with C++11 enabled (#296)
* Removed warnings when compiling with C++11 enabled

* ZMQ_NOTHROW now means throw() for pre-C++11
2019-03-13 19:18:27 +01:00
Simon Giesecke
0fd9bea760
Merge pull request #295 from trya/master
Add message_t::get()
2019-03-13 11:38:49 +01:00
trya
16fa983281 Add message_t::get()
Uses zmq_msg_get() to get some integer properties on the message.
2019-03-08 16:40:21 +01:00
Luca Boccassi
bfdc7885b8
Merge pull request #292 from sigiesec/build-zeromq-4-3-1
Update default libzmq version to 4.3.1
2019-02-04 17:08:20 +00:00
Simon Giesecke
4043617afe Problem: test cases for error behaviour of (active_)poller_t failing with libzmq 4.3.x
Solution: adapt test cases to changed behaviour
2019-02-04 15:25:35 +01:00
Simon Giesecke
c5fe9d1c27 Problem: current libzmq is not tested
Solution: update default libzmq version to 4.3.1, and add explicit test for 4.2.5, update README accordingly
2019-02-04 10:32:46 +01:00
Simon Giesecke
663944180f
Merge pull request #286 from kurdybacha/ctest_integration
Problem #268: CTest output without tests details
2019-01-28 09:53:14 +01:00
Pawel Kurdybacha
6982fb7017 Problem #268: CTest output without tests details
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
2019-01-23 08:48:11 +00:00
Simon Giesecke
6a4fe1fdb2
Merge pull request #285 from kurdybacha/pthread_link_issue
Problem #284: tests and pthread link error with with gcc
2019-01-23 08:32:06 +01:00
Pawel Kurdybacha
6a6aebb845 Problem #284: test pthread link error with with gcc
Solution: Use Threads cmake module as suggested in this thread:
https://cmake.org/pipermail/cmake/2016-February/062729.html

I was able to reproduce with gcc 8.2.1 and cmake 3.13.2.
2019-01-22 20:55:06 +00:00
Simon Giesecke
d641d1de4c
Merge pull request #275 from egpbos/retry_ctx_destroy
Add retry of zmq_ctx_destroy in context_t::close()
2018-11-08 11:20:33 +01:00
E. G. Patrick Bos
fbe82b07cd
Add retry of zmq_ctx_destroy in context_t::close()
Fixes #171
2018-11-05 20:09:28 +01:00
Simon Giesecke
c444c5d5e2
Merge pull request #268 from kurdybacha/header_only_test_framework
Problem: Dependency on googletest framework
2018-10-17 18:14:13 +02:00
Pawel Kurdybacha
ae15964907 Problem: Dependency on googletest framework
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.
2018-10-17 15:22:07 +01:00
tangfu
5af24314c3 add front and back (#269)
* add front and back

i'll get the last message in some situations,but have to do like this :
```
multimsg msgs;
auto msg = msgs[msgs.size() - 1];
func(msg.size());
auto *msg = msgs.end() - 1;
```
but, std::queue have some method 'front' and 'back'. so maybe i can simply do this ? :
```
multimsg msgs;
auto msg = msgs.back();
```

* add test for front and back
2018-10-17 08:41:21 +01:00
Luca Boccassi
1547b6ec22
Merge pull request #267 from ffontaine/master
fix install without static libzmq
2018-09-21 00:03:03 +01:00
Fabrice Fontaine
bffb0eda34 fix install without static libzmq
If libzmq is only available as a shared library and not a static one
then cmake fails with:

-- CMake libzmq package not found, trying again with pkg-config (normal install of zeromq)
-- Found PkgConfig: /home/fabrice/buildroot/output/host/bin/pkg-config (found version "0.28")
CMake Error at CMakeLists.txt:20 (message):
  ZeroMQ was not found, neither as a CMake package nor via pkg-config

This is due to the fact that ZeroMQ_FOUND is not set to ON even if
ZEROMQ_LIBRARY is TRUE:

if(ZeroMQ_LIBRARY AND ZeroMQ_STATIC_LIBRARY)
    set(ZeroMQ_FOUND ON)
endif()

So change AND by OR as suggested in
https://github.com/zeromq/cppzmq/issues/266

Fix #266

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2018-09-20 23:28:24 +02:00
Luca Boccassi
bcb59608c8
Merge pull request #265 from sigiesec/fix-breaking-ambiguity
Problem: addition of new single-argument message_t introduces ambigui…
2018-08-22 13:57:35 +01:00
Simon Giesecke
7d53a04e81 Set version to 4.3.1 to prepare bugfix release 2018-08-21 13:51:17 +02:00
Simon Giesecke
120c7ae3f2 Problem: no test case for previously existing send functionality
Solution: added test case
2018-08-21 13:50:02 +02:00
Simon Giesecke
ab09f5da98 Problem: addition of new single-argument message_t introduces ambiguity when calling e.g. socket_t::send
Solution: make single-argument constructor explicit
2018-08-21 13:50:02 +02:00
Luca Boccassi
8ff83257ac
Merge pull request #264 from sigiesec/start-4-4-0
Update version to 4.4.0 for next development iteration
2018-08-15 17:17:20 +01:00
Simon Giesecke
f5963ceade Update version to 4.4.0 for next development iteration 2018-08-15 17:55:43 +02:00
Luca Boccassi
213da0b04a
Merge pull request #256 from Tulon/radio_dish_support
Add support for RADIO/DISH sockets if draft API is enabled
2018-07-15 12:06:19 +01:00
Joseph Artsimovich
751f27d635 Add support for RADIO/DISH sockets if draft API is enabled
This commit introduces new socket_type enumeration values as well
as the following supporting functions:

socket_t::join()
socket_t::leave()
message_t::group()
message_t::set_group()
2018-07-13 16:01:15 +03:00
Luca Boccassi
73f171abb2
Merge pull request #255 from kurdybacha/issue_fix
Problem: #209 and monitor_t tests not event driven
2018-07-05 09:05:57 +01:00
Pawel Kurdybacha
57454dff4b Problem: monitor_t tests not event driven
Solution: instead of waiting for fixed amount of time for events, react
as soon as events are triggered.

- Total running time of unittest reduced 10x (from ~300ms to 30ms).
- Reduced code duplication by reusing testutil's constructs.
2018-07-05 00:23:31 +01:00
Pawel Kurdybacha
4a066be66a Problem: #209 cppzmq fails with cmake 3.6.3 and above
Solution: remove problematic cmake lines as they seem to be not necessary.
2018-07-05 00:12:34 +01:00
Simon Giesecke
837c0c9a97
Merge pull request #250 from esromneb/master
editing "typename I" to "typename T" due to error: expected nested-na…
2018-06-15 08:55:50 +02:00
Ben
a604af95d7 editing "typename I" to "typename T" due to error: expected nested-name-specifier before ‘(’ token
on c++ (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
2018-06-10 23:54:20 -07:00
Luca Boccassi
97d2cb2498
Merge pull request #249 from sigiesec/add-monitor-tests
Add first tests for monitor_t and fix monitor_t::abort
2018-06-05 16:39:58 +01:00
Simon Giesecke
58ffef7190 Problem: no tests for monitor_t::abort
Solution: add a test and fix implementation of monitor_t::abort to make it usable
2018-06-05 17:27:32 +02:00
Simon Giesecke
ec63fb3485 Problem: no test case for zmq::monitor_t::init
Solution: added test case
2018-06-05 17:27:28 +02:00
Simon Giesecke
e0b5629a28
Merge pull request #248 from kurdybacha/readme_update
Problem: README build badges too generic
2018-06-04 17:49:17 +02:00
Pawel Kurdybacha
29d3990770 Problem: README build steps can be simpler.
Solution: After latest fixes to cmake configuration it is not required
to pass include to libzmq. Please refer to demo/ for reference.
2018-06-04 16:46:41 +01:00
Pawel Kurdybacha
bfb3a5d6f7 Problem: README build badges too generic
Solution: Show Linux, OSX and Windows labels on build badges for more
visibility on supported platforms.

Additionally added license badge.
2018-06-04 16:39:38 +01:00
Constantin Rack
edc14b64fd
Merge pull request #247 from kurdybacha/coveralls
Problem: Coverage with coveralls not working
2018-06-04 07:27:29 +02:00
Pawel Kurdybacha
9a7a85703c Problem: Coverage with coveralls not working
Solution: Enable coveralls for one linux build target and fix coveralls
configuration.
2018-06-03 19:09:44 +01:00
Luca Boccassi
3c14d37d8b
Merge pull request #243 from sigiesec/fail-if-libzmq-not-found
Problem: cmake build succeeds even if libzmq not found
2018-05-25 10:25:45 +01:00
Simon Giesecke
c69c1f903f Problem: cmake build succeeds even if libzmq not found
Solution: raise a FATAL_ERROR if not found, and improve diagnostic output
2018-05-25 11:13:32 +02:00
Luca Boccassi
1f14f9a34e
Merge pull request #240 from kurdybacha/draft-git
Problem: Travis requires sudo and draft not enabled for git repo
2018-05-23 22:14:17 +01:00
Pawel Kurdybacha
115bfffc50 Problem: Travis requires sudo
sudo was required for for pkg-config libzmq build as cppzmq could not
find not installed pkg-config libzmq.

Solution: cppzmq to use cmake prefix paths for pkg config paths as well.
2018-05-23 19:18:28 +00:00
Pawel Kurdybacha
9d058b3a5e Problem: draft not explicitly enabled on Windows CI 2018-05-23 19:15:43 +01:00
Pawel Kurdybacha
380e39856b Problem: draft build not enabled for git repo
cppzmq does not follow other zeromq projects where draft builds are
enabled by default for git repository.

Solution: revert back code where ENABLE_DRAFTS in set to ON if .git
directory exists
2018-05-23 18:34:44 +01:00
Simon Giesecke
7023764834
Merge pull request #235 from Tulon/master
Add message_t::routing_id() and set_routing_id()
2018-05-20 09:25:20 +02:00
Simon Giesecke
3e56f561cc
Merge pull request #236 from kurdybacha/cmake-tweaks
Problem: cppzmq build broken with C++11 compiler and git cloned repo.
2018-05-20 09:05:33 +02:00
Pawel Kurdybacha
099bcfc4a4 Problem: cppzmq build broken with C++11 compiler and git cloned repo.
Default build, ./ci_build.sh without any arguments, which causes to run
with draft disabled, does not work properly for git cloned repository and
C++11 compiler.

Two issues:
1. For git cloned repository ENABLE_DRAFTS is ON by default but libzmq
compiled build without drafts .Travis did not catch that because default build
runs on non C++11 compiler.
2. testutil.hpp does not build because of missing draft guards.

Solution 1: Remove check for presence of .git for enabling draft API as it
is confusing to use with ENABLE_DRAFTS flag and there should be only one
explicit way to enable draft build.

Solution 2: add missing draft guards in testutil.hpp for server/client
socket in use there.

Solution 3: add extra Travis build covering C++11 compiler and non
draft enabled build.
2018-05-20 07:53:56 +01:00
Simon Giesecke
d487e67249
Merge pull request #234 from kurdybacha/cmake-tweaks
Problem: cppzmq needs to be installed for pkg-config libzmq
2018-05-19 11:30:42 +02:00
Joseph Artsimovich
d4374cbebe Add message_t::routing_id() and set_routing_id()
Setting a routing id is necessary when sending a message through a
ZMQ_SERVER socket. See [1] for more details.

[1] http://api.zeromq.org/4-2:zmq-socket#toc5
2018-05-19 08:44:41 +03:00