Commit Graph

930 Commits

Author SHA1 Message Date
Simon Giesecke
fa8bc17ef3 Problem: CMake error on Win32 with DRAFTS disabled
Solution: guard CMake statement properly
2018-06-01 18:20:11 +02:00
Simon Giesecke
779d120fa3 Problem: tests do not follow naming style
Solution: apply naming style
2018-05-27 13:24:08 +02:00
Simon Giesecke
8b030a9256 Problem: no tests for corner cases of setsockopt ZMQ_HEARTBEAT_TTL
Solution: added tests
2018-05-25 15:13:07 +02:00
Simon Giesecke
7b686900f9 Problem: VS2008 build fails due to unavailable stdint.h
Solution: specify not to use stdint.h for VS<=2008, fixes #3025
2018-05-24 15:56:08 +02:00
Simon Giesecke
1e89a51734 Problem: broken indentation
Solution: fix indentation
2018-05-24 15:56:08 +02:00
Luca Boccassi
f3e7911dd6
Merge pull request #3127 from sigiesec/integrate-wepoll
Support epoll polling under Windows with wepoll
2018-05-23 21:15:56 +01:00
Simon Giesecke
64f2b100da Problem: test_context_socket is not thread-safe
Solution: use regular zmq_socket instead in thread functions
2018-05-23 17:32:27 +02:00
Simon Giesecke
9df851225a Problem: test_radio_dish takes time near timeout
Solution: increase timeout
2018-05-23 16:31:05 +02:00
Simon Giesecke
945c79de67 Problem: test cases setting ZMQ_MULTICAST_LOOP to false fail on Windows
Solution: disable test cases
2018-05-23 16:26:52 +02:00
Simon Giesecke
57ef8e2e3e Problem: custom test ignore
Solution: use unity mechanism for ignoring with message
2018-05-23 16:26:52 +02:00
Simon Giesecke
2bdf86d6c2 Problem: timeout on test_many_sockets with epoll
Solution: increase timeout, remove timeout settings for unsupported poll poller
2018-05-23 16:26:52 +02:00
Simon Giesecke
275a89ac3c Problem: test_many_sockets does not show number of sockets that could be created
Solution: add diagnostic output
2018-05-23 16:25:08 +02:00
Simon Giesecke
bd129e78ff Problem: test assertion unnecessary complex
Solution: use TEST_ASSERT_FAILURE_ERRNO
2018-05-23 16:25:08 +02:00
Simon Giesecke
fdfa907187 Problem: test_inproc_connect not using test framework
Solution: migrate to unity
2018-05-23 13:48:58 +02:00
Simon Giesecke
ad100b0b9f Problem: test_xpub_nodrop not using test framework
Solution: migrate to unity
2018-05-22 18:33:18 +02:00
Simon Giesecke
f13377de05 Problem: test_pub_invert_matching failing
Solution: insert some sleeps to remedy timing dependencies
2018-05-22 18:33:18 +02:00
Simon Giesecke
12c6ae2283 Problem: test_pub_invert_matching not using test framework
Solution: migrate to unity
2018-05-22 18:33:18 +02:00
Simon Giesecke
fa467d3425 Problem: test_hwm_pubsub not using test framework
Solution: migrate to unity
2018-05-22 18:33:17 +02:00
Simon Giesecke
dd1c87f9d9 Problem: type mismatch errors/warnings in Windows build
Solution: fix types
2018-05-15 14:53:40 +02:00
Simon Giesecke
b30cbfc112 Problem: test_spec_dealer not using test framework
Solution: migrate to Unity
2018-05-15 13:58:08 +02:00
Luca Boccassi
d81a041f18
Merge pull request #3103 from sigiesec/win-warnings-as-errors
Warnings in Windows builds
2018-05-14 22:53:04 +01:00
Simon Giesecke
e447f058e2 Problem: C4244 warnings regarding SOCKET vs. int in test_system
Solution: Use fd_t
2018-05-14 21:09:57 +02:00
Simon Giesecke
106127b5d6 Problem: C4267 warnings in test_stream_disconnect
Solution: Use size_t instead of int
2018-05-14 21:09:57 +02:00
Simon Giesecke
5ca0d4e8a9 Problem: C4267 warnings in test_spec_router
Solution: Use unsigned char instead of size_t
2018-05-14 21:09:57 +02:00
Simon Giesecke
69a6b86310 Problem: C4267 warning test_spec_pushpull
Solution: Use unsigned char instead of size_t
2018-05-14 21:09:57 +02:00
Simon Giesecke
3cbc7cb0dc Problem: C4244 warnings regarding SOCKET vs. int in test_security_null and test_security_plain
Solution: Use fd_t
2018-05-14 21:09:56 +02:00
Simon Giesecke
3ee65906af Problem: various warnings regarding SOCKET vs. int in test_security_curve
Solution: Use fd_t
2018-05-14 21:09:56 +02:00
Simon Giesecke
28631d1cd3 Problem: C4550 warning in testutil_security
Solution: explicitly compare function pointer against NULL
2018-05-14 19:18:43 +02:00
Luca Boccassi
6092431b97
Merge pull request #3100 from sigiesec/fix-poller-invalid-events
Problem: zmq_poller_[add/modify] accept invalid events arguments silently
2018-05-14 15:26:19 +01:00
Simon Giesecke
e8877f78a9 Problem: zmq_poller_[add/modify] accept invalid events arguments silently
Solution: check and return an error on invalid arguments. Fixes #3088
2018-05-14 14:58:36 +02:00
Luca Boccassi
eac265059d Problem: heartbeat tests are disabled
Solution: re-enable them
2018-05-14 13:41:39 +01:00
Simon Giesecke
2cd147e5ff Problem: misleading comment for calling zmq_poller_add with events == 0
Solution: change comment, and add test case for zmq_poller_modify with events == 0
2018-05-14 11:29:24 +02:00
Simon Giesecke
be66eacf5c Problem: test_heartbeats still using plain assertions
Solution: migrate to unity assertions
2018-05-14 10:14:32 +02:00
Luca Boccassi
b331caad06 Problem: ZMTP 3.1 PING Context not implemented
Solution: if a PING message contains a context, echo it back in the
PONG message. In order to do so, create the PONG message when PING
is received and store it in the engine.
After the PING the engine goes straight to encoding and sending, so
there can always be at most one pending PING.
Add tests for various contexts.
2018-05-14 10:14:13 +02:00
Luca Boccassi
ba9274c39a Problem: test_heartbeats mocked ZMQ_REP is hacky and fragile
Solution: remove it, it doesn't add much value anyway
2018-05-14 09:15:38 +02:00
Simon Giesecke
f218478237 Problem: test_heartbeats use no test framework
Solution: migrate to unity
2018-05-14 09:15:38 +02:00
Lionel Flandrin
4eb6786347 Problem: test_radio_dish triggers aliasing errors with some compilers
Solution: refactor the test code to work around aliasing issues
2018-05-13 17:05:05 +02:00
Luca Boccassi
c5b7f4f536 Problem: test_system info output hidden on Solaris
Solution: change the ifdef to always print on any Unix, as they
all have ulimit
2018-05-13 13:19:07 +01:00
Luca Boccassi
510a42c3d5 Problem: test_system fails on Solaris due to lower file limit
Solution: use a different max socket value on Solaris, where the
default limit is 256 instead of 1024
2018-05-13 13:18:08 +01:00
Lionel Flandrin
99412c810d Problem: ZMQ doesn't expose the MULTICAST_LOOP socket option
Solution: add a new ZMQ_MULTICAST_LOOP option for UDP sockets.
2018-05-10 19:24:46 +02:00
Lionel Flandrin
f9c30f3e19 Problem: test helper recv_string_expect_success ignores the flags argument
Solution: pass the flags to zmq_recv
2018-05-10 11:43:47 +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
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
Luca Boccassi
4a4c6c27e4 Problem: heartbeat tests only cover ROUTER/DEALER
Solution: check more socket type to cover other session managers.
Increase timeout as the test now takes ~12 seconds.
2018-04-28 15:49:54 +01:00
Simon Giesecke
f571c22851 Problem: socket_poller destruction after context shutdown is only tested with a non-thread-safe socket
Solution: test with both thread-safe and non-thread-safe sockets
2018-03-28 11:23:08 +02:00
Simon Giesecke
32c8abb1d8 Problem: regression when zmq_poller_destroy is called after zmq_ctx_term
Solution: Added test case to reproduce, not solving the problem!
2018-03-28 10:53:16 +02:00
Luca Boccassi
6f26a33359 Problem: 4.2.5 is out, we need to restore API changes and 4.3.x
Solution: revert the revert!

Revert "Problem: regression in 4.2.3 went unnoticed, want to release 4.2.5"

This reverts commit 5f17e26fa4.
2018-03-23 19:31:42 +00:00
Luca Boccassi
5f17e26fa4 Problem: regression in 4.2.3 went unnoticed, want to release 4.2.5
Solution: revert DRAFT -> STABLE API transition so that we can do a
bugfix-only 4.2.5 release.
Will be re-reverted once tagged.

Revert "Problem: ZMQ_BINDTODEVICE has met STABLE conditions"

This reverts commit 3cb79f5042.

Revert "Problem: ZMQ_MSG_GSSAPI_* have met STABLE conditions"

This reverts commit 374da4207b.

Revert "Problem: ZMQ_MSG_T_SIZE has met STABLE conditions"

This reverts commit 6411c4a247.

Revert "Problem: docs say STABLE API still in DRAFT"

This reverts commit 9f2f30b7ff.
2018-03-23 11:22:10 +00:00
Luca Boccassi
1c5a63e939 Problem: backward incompatible change to NULL with ZAP
Solution: like for other mechanism, do not enforce strict ZAP protocol
adherence unless the specific socket option is enabled with NULL auth.

Add test to exercise this functionality, and fix ZAP test to set the
socket option when it uses NULL auth.

See: https://github.com/zeromq/pyzmq/pull/1152
2018-03-22 19:27:23 +00:00
Luca Boccassi
e4b3bd8631 Problem: cannot set ZAP_ENFORCE_DOMAIN in testutil's wrappers
Solution: override unused parameter for NULL wrapper
2018-03-22 19:25:42 +00:00
Luca Boccassi
374da4207b Problem: ZMQ_MSG_GSSAPI_* have met STABLE conditions
Solution: move them from DRAFT to STABLE since it's been in a public
release, committed for 6+ months and has not changed.
2018-03-21 16:45:41 +00:00
Simon Giesecke
84a3767d61 Problem: open TODO comment regarding explicit zmq_disconnect/zmq_unbind
Solution: replaced by a comment explaining why the calls are in the test
2018-03-21 16:28:10 +01:00
Simon Giesecke
786a8d48d5 Problem: code duplication in test_reqrep_tcp
Solution: extracted make_connect_address
2018-03-21 15:09:23 +01:00
Simon Giesecke
8372797cc3 Problem: code duplication in test_reqrep_tcp
Solution: extracted bind_loopback
2018-03-21 15:09:22 +01:00
Simon Giesecke
c84c3a525a Problem: test_reqrep_tcp not yet using unity
Solution: migrate to unity
2018-03-21 15:09:19 +01:00
Simon Giesecke
6d89635f9a Problem: test_udp not using unity
Solution: migrate to unity, merge into test_radio_dish, and split up test cases
2018-03-16 17:03:45 +01:00
Simon Giesecke
dc2764f58c Problem: test_last_endpoint not using unity
Solution: migrate to unity
2018-03-16 16:35:31 +01:00
Simon Giesecke
1747cbdcac Problem: test_immediate not using unity
Solution: migrate to unity, and split test cases
2018-03-16 15:46:39 +01:00
Simon Giesecke
6f8b604648 Problem: test_radio_dish not using unity
Solution: migrate to unity, and split test cases
2018-03-16 15:22:14 +01:00
Simon Giesecke
cdc298f567 Problem: bind_loopback_ipv4 not reusable
Solution: Moved bind_loopback_ipv4 to testutil_unity to allow for reuse
2018-03-16 15:21:39 +01:00
Kachanovskiy
eb76ea06bd Fix for #2997 2018-03-16 12:48:00 +01:00
Luca Boccassi
4cb15ec638
Merge pull request #2994 from sigiesec/migrate-to-unity
Migrate further tests to unity, and split up into individual test cases
2018-03-15 16:55:05 +00:00
Simon Giesecke
7bd57ba83b Problem: test case tests multiple aspects
Solution: split test case
2018-03-15 16:43:34 +01:00
Simon Giesecke
3e374d98f1 Problem: test case tests multiple aspects
Solution: split test case
2018-03-15 16:43:33 +01:00
Simon Giesecke
eb0307a9a6 Problem: test case tests multiple aspects
Solution: split test case
2018-03-15 16:43:32 +01:00
Simon Giesecke
10dae6e830 Problem: test_poller not using unity
Solution: migrate to unity, and split test cases
2018-03-15 16:43:30 +01:00
Simon Giesecke
991b2336e4 Problem: test_thread_safe not using unity
Solution: migrate to unity, and split test cases
2018-03-15 16:43:27 +01:00
Simon Giesecke
5d32828bbf Problem: test_reconnect_ivl not using unity
Solution: migrate to unity, and reduce code duplication
2018-03-15 16:43:26 +01:00
Luca Boccassi
e388774737
Merge pull request #2981 from eponsko/master
Problem: no support for ZMTP 3.1 application metadata
2018-03-15 12:57:40 +00:00
Simon Giesecke
1e217ac063 Problem: unity built with unnecessary float but without command line argument support
Solution: add appropriate definitions to build
2018-03-15 11:28:50 +01:00
Simon Giesecke
f92cdf9470 Problem: test_ctx_destroy not using unity, and mixing test cases
Solution: migrate to unit and split up test cases
2018-03-15 10:58:56 +01:00
Simon Giesecke
9553a1f33e Problem: test_connect_resolve not yet using unity
Solution: migrate to unity
2018-03-14 22:40:24 +01:00
Simon Giesecke
6f9459e3fb Migrate tests/test_conflate.cpp to unity 2018-03-14 19:05:19 +01:00
Simon Giesecke
d318c95bc2 Problem: different aspects mixed in one test case
Solution: split up test case
2018-03-14 18:59:36 +01:00
Simon Giesecke
dbcd42c58d Migrate tests/test_client_server.cpp to unity 2018-03-14 18:45:26 +01:00
Simon Giesecke
0114572ce6 Migrate tests/test_bind_src_address.cpp to unity 2018-03-14 18:45:25 +01:00
Simon Giesecke
be33dce68e Migrate tests/test_bind_after_connect_tcp.cpp to unity 2018-03-14 18:45:25 +01:00
Simon Giesecke
631de94563 Problem: test_router_hangover not yet using unity
Solution: migrate to unity
2018-03-14 15:09:13 +01:00
Pontus Sköldström
dd5eec35be Support application metadata through ZMQ_METADATA
Lets the application set per-connection metadata.
Metadata is specified as "X-key:value" and set using zmq_setsockopt, eg:
zmq_setsockopt (s, ZMQ_METADATA, "X-key:value", 11);

The peer can then obtain the metadata from a received message:
char *data = zmq_msg_gets(msg, "X-key");
2018-03-14 12:56:15 +01:00
Simon Giesecke
59157f0e2f Problem: missing guidelines on proper test cleanup
Solution: add guidelines to tests/README.md
2018-03-14 12:26:06 +01:00
Simon Giesecke
9e3932b46b Problem: test assertion failures do not clean up properly
Solution: provide test_context and manage sockets of test_context via setup and teardown
2018-03-14 12:24:21 +01:00
Simon Giesecke
437e9f4f59 Problem: tests readme outdated
Solution: fixed description for building tests, added references to unity and unittests
2018-03-14 08:22:23 +01:00
Simon Giesecke
ae558706bf Problem: test_hwm and test_router_mandatory not yet using unity
Solution: migrate to unity
2018-03-14 08:22:23 +01:00
Luca Boccassi
19060345e4 Problem: TIPC availability check is too strict (#2977)
* Problem: TIPC availability check is too strict

Solution: at build time only check if the API is available. In the tests
do a first check and a skip if the functionality is not available.

TIPC needs an in-tree but not loaded by default kernel module, tipc.ko
to be loaded, which requires root, so it is unlikely to be available on
any build system by default.
This will allow most distributions to ship with TIPC support built in,
and to avoid tests failure if the module is not there.

* Problem: no Travis tests for TIPC

Solution: mark one job with sudo: required and load the kernel module

* Problem: CMake fails when test returns 77 (skip)

Solution: set property to let it mark the test as skipped as intended
2018-03-09 17:47:42 +01:00
Pontus.Skoeldstroem
7abb8388d6 Problem: Tests for different TIPC address types missing (#2956)
* Tests for different TIPC address types and code cleanup

* Adds tests for binding/connecting with different TIPC address types
  using Unity
* Adds error checking for address type misuse
2018-03-07 17:31:26 +00:00
Stefan Kaes
fcbd2a5710 Problem: enormous memory increase due to zero copy decoding
The zero copy decoding strategy implemented for 4.2.0 can lead to a large
increase of main memory usage in some cases (I have seen one program go up to
40G from 10G after upgrading from 4.1.4). This commit adds a new option to
contexts, called ZMQ_ZERO_COPY_RECV, which allows one to switch to the old
decoding strategy.
2018-03-05 18:13:28 +01:00
Luca Boccassi
354491ddf2 Problem: no test for ZMQ_XPUB_VERBOSE(R)
Solution: add test_xpub_verbose to cover those APIs
2018-03-02 13:42:44 +01:00
Simon Giesecke
0458b85dec Problem: Some tests timeout on appveyor for POLLER=poll
Solution: Increase test timeouts for poll poller under Windows
2018-02-13 18:38:26 +01:00
Simon Giesecke
922053237f Problem: test_sockopt_hwm not using unity
Solution: migrate test_sockopt_hwm to unity
2018-02-13 18:38:23 +01:00
Simon Giesecke
9ec95f9d46 Problem: build failure with VS <2015, has no snprintf
Solution: use _snprintf when snprintf is not available
2018-02-11 17:33:13 +00:00
sigiesec
5f854a31b7 Problem: test_security_curve not using test framework
Solution: use unity in test_security_curve
2018-02-11 17:25:36 +00:00
sigiesec
21879abb5b Problem: test_socket_null not using test framework
Solution: rewrite test_socket_null to use unity
2018-02-11 17:25:36 +00:00
sigiesec
61a28a26cc Problem: no test framework
Solution: add unity test framework, and integrate into cmake build
2018-02-11 17:25:36 +00:00
Luca Boccassi
9b1ce59719 Problem: DRAFT build broken with GCC 4.7
Solution: change variable type in test_timers to match public API
2018-02-10 17:08:01 +00:00
Simon Giesecke
a5e763039d Problem: use of TCP loopback fastpath not available for user sockets
Solution: add socket option
2018-02-09 14:22:42 +01:00
sigiesec
50d80d0835 Problem: test_timeo frequently fails on travis, probably because of slow
execution

Solution: relax test assertion to what can be guaranteed
2018-02-09 09:56:38 +01:00
sigiesec
88d8c768d1 Problem: test_timers frequently fails on travis-ci
Solution: relaxed test assertions, based on the actual time passed,
instead of assuming that this equals to the time slept
2018-02-09 09:55:40 +01:00
sigiesec
41f459e1dc Problem: formatting inconsistent
Solution: applied clang-format
2018-02-02 15:47:43 +01:00
Luca Boccassi
0298d037d0 Problem: CMake rebuilds everything twice
Solution: build all the objects separately before the link step, to
avoid rebuilding when doing both static and shared builds
2017-11-20 15:55:35 +00:00
Luca Boccassi
5264d49eab Problem: duplicate definition in CMake tweetnacl builds
Solution: don't redefine preprocessor macro if it's already defined in
platform.hpp
2017-11-19 12:47:05 +00:00
Luca Boccassi
de8f14adf5 Problem: test_security_{zap|curve} often hangs
Solution: set 0 linger on the sockets immediately after creating them
rather than immediately before closing them.
Running through helgrind/drd highlights a few race conditions, one of
which is the setting of linger vs checking it when closing the socket.
Work around it by setting it immediately to fix the test hangs.
2017-11-16 00:44:29 +00:00
Luca Boccassi
498c6bbb67 Problem: test_stream_exceeds_buffer cannot be ran in parallel
Solution: bind to wildcard and let the OS pick a free port instead
of using an hard-coded 12345 TCP port
2017-11-10 09:49:54 +00:00
Rolf Timmermans
c8592dfbc3 Problem: REQ socket with ZMQ_REQ_RELAXED does not report ZMQ_POLLOUT when queried for events after first message.
Solution: Check for strictness before returning false if no reply has been received.
2017-11-08 09:55:14 +01:00
f18m
2aa0e6fd4d Change ZMQ_THREAD_AFFINITY to ZMQ_THREAD_AFFINITY_CPU_ADD/ZMQ_THREAD_AFFINITY_CPU_REMOVE. Avoid prefix thread names when no prefix was set. 2017-10-25 09:55:47 +02:00
Luca Boccassi
bd2ff7fbf8 Problem: DRAFT build broken with old GCC due to missing SIZE_MAX
Solution: define __STDC_LIMIT_MACROS in test_timers.cpp before
including testutil.hpp so that the definitions are included
2017-10-17 14:13:28 +01:00
Luca Boccassi
2e2c22dd5b Problem: DRAFT build broken with old GCC due to GNU modifier
Solution: print unsigned integers instead of size_t to avoid the error:

  error: ISO C++ does not support the 'z' gnu_printf length modifier

due to very old version of GCC.
2017-10-17 13:36:10 +01:00
f18m
f25cd6e7be Background thread names (#2784)
* Add ZMQ_THREAD_NAME_PREFIX ctx option
2017-10-17 12:06:50 +01:00
Luca Boccassi
4c2a95eab2 Problem: test_ctx_options only checks global DRAFT flag
Solution: this will break once the tested APIs move from DRAFT to STABLE
so instead check for the specific macros.
2017-10-16 12:34:13 +01:00
f18m
bfbb4ff2e9 Background threads enhancements (#2778)
* Background thread scheduling 

- add ZMQ_THREAD_AFFINITY ctx option; set all thread scheduling options
from the context of the secondary thread instead of using the main
process thread context!
- change ZMQ_THREAD_PRIORITY to support setting NICE of the background
thread when using SCHED_OTHER
2017-10-16 12:29:03 +01:00
Luca Boccassi
b6aee51691 Problem: strict ZAP protocol adherence is backward incompatible
Solution: add ZMQ_ZAP_ENFORCE_DOMAIN to hide backward incompatible
change and make it disabled by default.
In a future release that breaks API compatibility we can then switch
the default to enabled in order to achieve full RFC compatibility.

Fixes #2762
2017-10-09 17:48:33 +01:00
Luca Boccassi
ed64585e93 Problem: test_rebind_ipc might not see race condition on fast envs
Solution: pre-create the second socket to save a few cycles between
closing the old one and binding the new one
2017-10-06 11:32:14 +01:00
Luca Boccassi
53f463a3fa Problem: test_rebind_ipc uses generic socket file name
Solution: name it after the test to avoid possible clashes when
running tests in parallel.
2017-10-06 11:08:40 +01:00
Ilya Kulakov
656cdb959a Problem: Race condition in IPC sockets
Solution: Don't unlink file on close

File may not belong to the socket at that point.
2017-10-05 14:57:10 -07:00
Luca Boccassi
44f96a3652 Merge pull request #2745 from sigiesec/rename-identity
Problem: term "identity" is confusing
2017-09-20 10:08:45 +02:00
Constantin Rack
f6688f0516 Merge pull request #2756 from bluca/reconnect_ivl_connect
Problem: zmq_connect fails after disconnect due to RECONNECT_IVL == -1
2017-09-20 07:46:19 +02:00
sigiesec
4b821d8f84 Problem: remaining uses of "identity"
Solution: replaced by "routing id"
2017-09-19 17:54:59 +02:00
sigiesec
1414bf938c Problem: use of unqualified "id" in code example
Solution: use "routing_id" instead
2017-09-19 17:54:52 +02:00
sigiesec
41bae55af7 Problem: inconsistent naming related to routing ids
Solution: renamed routing_id fields in pipe_t, renamed ZMQ_CONNECT_RID to ZMQ_CONNECT_ROUTING_ID
2017-09-19 17:53:53 +02:00
sigiesec
9e7507b38b Problem: term "identity" is confusing
Solution: replace by "routing id"
2017-09-19 17:53:44 +02:00
Luca Boccassi
edb4ca1023 Problem: zmq_connect fails after disconnect due to RECONNECT_IVL == -1
Solution: when a connection breaks and ZMQ_RECONNECT_IVL is set to -1,
which means a reconnection will not be attempted, send a message from
the I/O thread to the application thread to make the socket call
term_endpoint, which is the equivalent of manually calling
zmq_disconnect.
This way subsequent zmq_connect call to the same endpoint will attempt
again to do a connection.
Otherwise, for some socket types like SUBs, those new connects will
fail as the endpoint is recorded, despite the connection having been
permanently closed.

Add test cases to exercise this corner case with TCP and IPC.
2017-09-19 14:05:43 +01:00
sigiesec
e0243dcbca Problem: tests where client should receive an ERROR sometimes do not
receive an ERROR (probably because the connection is closed before)

Solution: wait for client-side monitor events before closing the client
socket

Fixes #2705
2017-09-19 11:16:05 +02:00
sigiesec
77f76a49b2 Problem: no tests for cases 5 and 6 of #2711
Solution: added tests
2017-09-18 18:43:32 +02:00
sigiesec
e546f9296e Problem: duplicated code & inconsistent behaviour between
mechanisms

Solution: uniformly require a ZAP domain to be set to activate ZAP
handling, clarify comment on Stonehouse pattern
2017-09-18 17:01:38 +02:00
sigiesec
ee8b8bd29c Problem: no test for ZAP handler terminating in flight
Solution: added test & some improvements of test utils
2017-09-18 16:54:03 +02:00
sigiesec
a5f94cb610 Problem: tests without ZAP handler are failing
Solution: emit events as expected by tests, and refuse connections when
ZAP is required but no handler started

Addresses #2711 partially
2017-09-18 12:58:09 +02:00
sigiesec
13b972b226 Problem: no tests without ZAP handler where one is expected
Solution: added test case for NULL/PLAIN/CURVE
2017-09-18 10:26:28 +02:00
Doron Somech
af03241dcb Revert "Problem: term "identity" is confusing" 2017-09-07 15:47:43 +03:00
sigiesec
e00131dd43 Problem: inconsistent naming related to routing ids
Solution: renamed routing_id fields in pipe_t, renamed ZMQ_CONNECT_RID to ZMQ_CONNECT_ROUTING_ID
2017-09-07 10:33:13 +02:00
sigiesec
1daf83079a Problem: term "identity" is confusing
Solution: replace by "routing id"
2017-09-06 17:45:56 +02:00
Luca Boccassi
b8695a47b5 Problem: proxy_steerable STATISTICS returns conflated buffers
Solution: split each stat into its own frame, to make it simpler and
easier to use it, especially from high level bindings
2017-09-06 01:28:28 +01:00
Luca Boccassi
78c4d33600 Problem: new STATISTICS proxy_steerable not behind DRAFT
Solution: ifdef it until it's declared stable
2017-09-05 17:37:52 +01:00
Luca Boccassi
c5aef5e078 Problem: compilation fails on 32 bit
Solution: trucate 64 bit stats in test_proxy, as it's much easier than
to try and print 64 unsigned integers in a portable way
2017-09-05 17:23:08 +01:00
f18m
4be9513443 Add "STATISTICS" command to zmq_proxy_steerable() (#2737)
* Issue #2736: Add STATISTICS command to zmq_proxy_steerable()
2017-09-05 17:05:04 +01:00
Luca Boccassi
0382118371 Problem: unused variable in test_wait_corner_cases
Solution: don't pass it
2017-09-01 19:55:51 +01:00
sigiesec
f3b268d84f Problem: no tests for error cases of zmq_socket_get_peer_state
Solution: added tests
2017-09-01 16:28:59 +02:00
sigiesec
eeccbbd6f8 Problem: test case fails with tcp transport
Solution: use inproc transport instead
2017-09-01 16:28:59 +02:00
sigiesec
fc334bc759 Problem: unclean and duplicated test code
Solution: refactoring
2017-09-01 16:28:59 +02:00
sigiesec
f70097c1cf Problem: test does not trigger HWM
Solution: modify order of operations, add diagnostic output
2017-09-01 16:28:59 +02:00
sigiesec
cda20260b3 Problem: missing call to zmq_poller_destroy
Solution: added call
2017-09-01 16:28:58 +02:00
sigiesec
efa86fe629 Problem: no test case using the proposed zmq_socket_get_peer_state function
Solution: added test case (with dummy implementation of zmq_socket_get_peer_state)
2017-09-01 16:28:58 +02:00
sigiesec
49e1b8b75f Problem: test case in main function
Solution: extracted test_basic function
2017-09-01 16:28:57 +02:00
Luca Boccassi
fab14a3cc1 Problem: support for CMake << 3.1 broken
Solution: remove redundant target_sources directive
2017-09-01 10:59:48 +01:00
sigiesec
7eebed56a5 Problem: no test for zmq_timers_timeout without any active timers
Solution: add test
2017-08-23 10:31:44 +02:00
sigiesec
6147e45a07 Problem: missing tests for zmq_timers_* corner cases, missing handling of such corner cases, code duplication, missing assertions in test code
Solution: add tests, add checks to timers_t, add match_by_id functor, add assertions
2017-08-23 09:41:34 +02:00
sigiesec
d072d57e2e Problem: no tests for zmq_timer_* with NULL timers argument
Solution: added tests
2017-08-23 09:41:22 +02:00
sigiesec
8b263d5820 Problem: test_timers.cpp sleep_ duplicates msleep from testutil
Solution: replace sleep_ my msleep
2017-08-23 09:05:10 +02:00
sigiesec
8ae91fdf9a Problem: no test cases for zmq_poller_add*, zmq_poller_modify*, zmq_poller_remove* corner cases
Solution: added test cases
2017-08-22 20:22:39 +02:00
sigiesec
68f416c0ca Problem: missing test case for zmq_poller_wait_all with negative number of events
Solution: add test case
2017-08-22 20:04:55 +02:00
sigiesec
a71f7b0405 Problem: zmq_poller_* uses ETIMEDOUT (instead of the usual EAGAIN) to indicate timeouts
Solution: replace ETIMEDOUT within socket_poller_t and all client code by EAGAIN

Fixes #2713
2017-08-22 20:00:29 +02:00
sigiesec
6a3c053a3e Problem: EFAULT is returned for bad file descriptors passed to zmq_poller_*_fd
Solution: Return EBADF instead
2017-08-22 19:43:56 +02:00