Commit Graph

48 Commits

Author SHA1 Message Date
Francesco Montorsi
c59104a01d
Add ZMQ_TOPICS_COUNT socket option (#4459) 2022-11-29 12:00:11 +00:00
Luca Boccassi
60ccf54fa6 Problem: sub/cancel broken with CURVE
Solution: handle downgrading sub/cancel messages in CURVE engine
2020-05-03 17:42:53 +01:00
Gudmundur Adalsteinsson
ff80089939 Problem: Spinning on atomics can cause hangs
Solution: Add a sleep in the loop. Some versions of
valgrind may hang when spinning on atomic variables.
2020-04-18 12:44:59 +00:00
grmt
718ad8ab96
add wss transport and fix tipc tests when building using cmake on linux (#3857)
* Allow CMAKE to generate ws and wss transports
I guess there is little use of just ws transport, so by default
GnuTLS (and libsodium) are enabled

* cmake libzmq including wss transport (ubuntu 19.10 and ubuntu 19.10 + wsl 1.0)
test_security_fails (libsodium assert !?)

* updated relicense

* make external libs gnutls nss sodium optional

* #ifdef WSS classes and functions, build test*ws* only if correct libs are included, warning if libs not present

* make libsodium optional

* cmake fix tests TIPC transport

* clang-format pointed out a wrongly placed #ifdef

* GnuTLS before 3.6.7 is not safe

* msvc doesn't agree with strlen in array declaration, test_socks now at least compiles on windows

* windows: libsodium build fails, missing include dirs set by env var

* ws transport test only works when GnuTLS is found

* Fixed condition to use NSS / built in SHA1, so that test_ws_transport should now pass, also when GnuTLS is not found
2020-04-13 23:03:19 +01:00
Simon Giesecke
b01685ea0a Problem: no unittests for curve_encoding_t
Solution: add initial tests
2020-02-03 22:24:16 +01:00
Simon Giesecke
628adf1cb7 Problem: inconsistent polymorphic inheritance
Solution: consistently use virtual, override and final
2020-01-27 08:46:55 +01:00
Simon Giesecke
cb2b377d9f Problem: redundant else after return
Solution: remove else
2019-12-08 15:24:48 +01:00
Simon Giesecke
1d9c6bcf09 Problem: unittest_udp_address not properly formatted
Solution: run clang-format
2019-12-08 15:24:48 +01:00
Simon Giesecke
cd954e207d Problem: use of C-style casts
Solution: use static_cast/reinterpret_cast instead
2019-12-08 15:24:48 +01:00
Simon Giesecke
a83c57d0bb Problem: identifiers not conformant with naming convention
Solution: fix identifier names
2019-12-08 15:24:48 +01:00
Shubham Lagwankar
1186e9868a Problem: code doesn't follow libzmq naming conventions
Solution: rename types/variables that are inconsistent
2019-06-28 11:57:45 -04:00
Iwan Paolucci
e1a895917c Problem: libzmq does not build on QNX 6.6 using CMake #3479
Solution: libm and libsocket have to be linked explicitely
2019-04-18 13:23:36 +02:00
Luca Boccassi
dc91981df7 Problem: removing header from testutil.hpp breaks unittest build with gcc8
Solution: include unistd.h in unittest_poller.cpp
2019-03-24 11:37:41 +00:00
Simon Giesecke
1450830611 Problem: unused include directives
Solution: remove and add where needed
2019-03-23 09:46:37 -04:00
Simon Giesecke
5d74eba64a Problem: remaining basic assertions
Solution: use unity assertions instead
2019-03-23 09:09:36 -04:00
Simon Giesecke
347708bcf2 Problem: test utilities are in headers and recompiled for every test
Solution: move test utilities to separate testutil library
2019-03-23 09:09:24 -04:00
Simon Giesecke
6e0724609a Problem: errno not output on test failure
Solution: use appropriate test assertion macro
2019-03-20 16:49:46 +01:00
Luca Boccassi
4a0b6c6c6f Problem: compiler warning in unittest_poller
Solution: cast the unused variable
2018-11-09 20:51:20 +00:00
Shubham Lagwankar
3659c1204a Problem: radix tree needs benchmarks and improvements (#3290)
* Problem: radix tree needs benchmarks and improvements

Solution: add a benchmark and make suggested improvements
2018-11-09 10:49:40 +00:00
Shubham Lagwankar
c68afb412e Problem: potentially large memory footprint of trie as number of
subscriptions increases

Solution: use a radix tree instead of a trie to store subscriptions
2018-10-31 07:49:55 -04:00
Christoph Schulz
a21228b664 Conform to cmakelint --filter=-linelength
- Lowercase all commands
- Unify indent to 2 spaces
- Remove spaces around brackets
- Remove repitition of condition in else(...) and endif(...)

Note: (re-)running CMake did not change the content of the generated files
2018-09-10 00:12:07 +02:00
Wenbin Hou
c981336445
Udpate unittests/CMakeLists.txt: use ZeroMQ_SOURCE_DIR, ZeroMQ_BINARY_DIR
Use ZeroMQ_SOURCE_DIR, ZeroMQ_BINARY_DIR instead of CMAKE_SOURCE_DIR, CMAKE_BINARY_DIR, which allows libzmq to become an "add_subdirectory" target (with static build).
Otherwise, building unittest_xxx would complain header files not found.
2018-08-15 10:11:49 +08:00
kermit
ba3bc3806c compile unittests 2018-06-06 18:24:53 +08:00
Simon Giesecke
ee85957dc4 Problem: no test case for polling pending connect that ultimately fails
Solution: added test case, reproduces the likely cause for #3107
2018-05-22 18:21:06 +02:00
Simon Giesecke
b0c3a42ed2 Problem: C4800 warnings in unittest_ip_resolver.cpp
Solution: make proper boolean expression
2018-05-14 19:18:42 +02:00
Lionel Flandrin
b0df4be51c Problem: UDP engine does not support IPv6
Solution: Add IPv6 support
2018-05-09 12:06:23 +02:00
Lionel Flandrin
746d4a0f5e Problem: UDP transport doesn't let the user specify the local bind address
for multicast

Solution: augment the UDP URL syntax to accept an interface specifier with a
syntax similar to the PGM urls.

Fixes #2212
2018-05-04 14:36:18 +02:00
Lionel Flandrin
524affc4c3 Problem: UDP address parser uses ad hoc code to detect multicast address
Solution: factor the code into ip_resolver, add IPv6 support and unit tests.
2018-05-04 10:44:01 +02:00
Lionel Flandrin
2dc8579412 Problem: the UDP address code uses an ad hoc custom parser
Solution: replace it with the ip_resolver code shared with the TCP
address code

It simplifies the UDP parsing code and makes it behave more like the
TCP counterpart, in particular it's not possible to connect to hosts
by name and bind by NIC names.

It also adds support for "*" port resolving to 0 (useful to let the OS
allocate the port number).
2018-05-03 14:22:48 +02:00
Lionel Flandrin
0b36b84243 Problem: no unit tests for udp_address.cpp
Solution: add unit tests
2018-05-03 14:22:42 +02:00
Lionel Flandrin
406c348771 Problem: ip_resolver allows wildcard ports for non-bindable sockets
Solution: return an error in this situation but still allow using an explicit
"0" if somebody really wants to connect to port 0.

This shouldn't break any existing code because a "*" port was already rejected
in an early test in the TCP path in zmq::socket_base_t::connect.
2018-05-03 13:19:22 +02:00
Lionel Flandrin
4cd2c2ebf8 Problem: address parsing code is tied to the TCP code
Solution: Factor the code into a different file with a well defined API and add
unit tests.
2018-05-02 18:06:01 +02:00
Simon Giesecke
c602361836 Problem: debug output in CMake file
Solution: removed
2018-03-14 08:22:23 +01:00
Luca Boccassi
23025f44c6 Problem: unittest_mtrie fails on 32bit *nix
Solution: correctly dereference pointer in test.
2018-03-02 18:00:17 +00:00
Simon Giesecke
9cd01bb54f Problem: inconsistent return values from mtrie_t::rm
Solution: Return an enum from rm instead of a bool, and adapt existing uses
2018-03-02 13:42:50 +01:00
Simon Giesecke
e34e03d1a6 Problem: missing test case for addition of duplicate entry
Solution: added test case
2018-03-02 13:42:46 +01:00
Simon Giesecke
5d5def40b5 Problem: casts required due to void* arguments in a C++ class
Solution: introduce a type template argument
2018-03-02 13:42:42 +01:00
Simon Giesecke
15b4f596a8 Problem: insufficient unit tests for mtrie
Solution: added further test cases
2018-03-02 13:42:41 +01:00
Simon Giesecke
8bb055ece8 Problem: insufficient unit tests for mtrie
Solution: added test case, reduced code duplication in tests
2018-03-02 13:40:53 +01:00
Simon Giesecke
0e34d13063 Problem: insufficient unit tests for mtrie
Solution: added unit test and assertions
2018-03-02 13:40:50 +01:00
Simon Giesecke
506f0e5c44 Problem: insufficient unit tests for mtrie
Solution: add test case
2018-03-02 13:40:49 +01:00
Simon Giesecke
56d806a9ef Problem: infufficient unit tests for mtrie
Solution: added some test cases for rm
2018-03-02 13:40:48 +01:00
Simon Giesecke
b42a59a839 Problem: insufficient unit tests for mtrie
Solution: added test case
2018-03-02 13:40:46 +01:00
Simon Giesecke
dbbc10e05b Problem: incomplete test coverage of mtrie
Solution: add some more test cases
2018-03-02 13:32:51 +01:00
Simon Giesecke
a9712c0bf2 Problem: no unittests for mtrie
Solution: made mtrie generic (to remove complex dependency on pipe_t),
and added some unit tests
2018-03-02 13:32:51 +01:00
Simon Giesecke
5224b8704a Problem: race condition in unit test
Solution: fix order of statements in test_events_t
2018-02-13 22:27:15 -05:00
Simon Giesecke
e8e24030ea Problem: network initialization and shutdown functions not available for
reuse

Solution: extract into functions defined in ip.hpp

Problem: signaler_t::make_fdpair not reusable

Solution: move make_fdpair to ip.hpp

Problem: epoll worker with no fds cannot be stopped

Solution: use interruptible epoll_pwait call

Problem: insufficient unit tests for poller

Solution: add test cases
2018-02-13 18:38:17 +01:00
Simon Giesecke
56c726d425 Problem: no unit tests
Solution: set up initial unit tests
2018-02-11 17:25:36 +00:00