libzmq/tests
Frederic Tregon e45dfe3bc7 Fixed issue #1695 (ZMQ_REQ_CORRELATE)
Problem: when using ZMQ_REQ_RELAXED + ZMQ_REQ_CORRELATE and two 'send' are
executed in a row and no server is available at the time of the sends,
then the internal request_id used to identify messages gets corrupted and
the two messages end up with the same request_id. The correlation no
longer works in that case and you may end up with the wrong message.

Solution: make a copy of the request_id instance member before sending it
down the pipe.
2016-03-20 20:38:18 +01:00
..
CMakeLists.txt Problem: test_large_msg requires 2GB of free RAM 2016-03-16 21:47:58 +00:00
README.md Problem: Tests do no build in Windows environment 2016-03-05 11:23:23 -06:00
test_abstract_ipc.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_atomics.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_bind_src_address.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_capabilities.cpp Problem: use of libsodium vs. tweetnacl is confused 2016-02-11 13:32:01 +01:00
test_client_server.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_conflate.cpp Revert "Revert "Problem: deprecated use and reference of zmq_term"" 2016-02-01 23:00:06 +01:00
test_connect_delay_tipc.cpp Problem: tests don't build on Windows 2016-02-12 15:48:37 +01:00
test_connect_resolve.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_connect_rid.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_ctx_destroy.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_ctx_options.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_diffserv.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_disconnect_inproc.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_filter_ipc.cpp Problem: tests don't build on Windows 2016-02-12 16:12:44 +01:00
test_fork.cpp Problem: test_fork does not clean up at exit 2016-02-13 11:35:51 +00:00
test_getsockopt_memset.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_heartbeats.cpp Problem: tests use various sleep patterns to wait 2016-02-13 18:01:03 +00:00
test_hwm_pubsub.cpp Problem: tests use various sleep patterns to wait 2016-02-13 18:01:03 +00:00
test_hwm.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_immediate.cpp Problem: various tests fail in slow environments 2016-02-13 18:01:03 +00:00
test_inproc_connect.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_invalid_rep.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_iov.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_ipc_wildcard.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_issue_566.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_last_endpoint.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_many_sockets.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_metadata.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_monitor.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_msg_ffn.cpp Problem: tests use various sleep patterns to wait 2016-02-13 18:01:03 +00:00
test_msg_flags.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_pair_inproc.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_pair_ipc.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_pair_tcp.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_pair_tipc.cpp Problem: tests don't build on Windows 2016-02-12 15:48:37 +01:00
test_pair_vmci.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_poller.cpp Problem: deprecated zmq_utils.h is still included 2016-02-01 11:34:36 +01:00
test_probe_router.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_proxy_single_socket.cpp Problem: deprecated zmq_utils.h is still included 2016-02-01 11:34:36 +01:00
test_proxy_terminate.cpp Problem: tests use various sleep patterns to wait 2016-02-13 18:01:03 +00:00
test_proxy.cpp Problem: deprecated zmq_utils.h is still included 2016-02-01 11:34:36 +01:00
test_pub_invert_matching.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_radio_dish.cpp Problem: tests use various sleep patterns to wait 2016-02-13 18:01:03 +00:00
test_req_correlate.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_req_relaxed.cpp Fixed issue #1695 (ZMQ_REQ_CORRELATE) 2016-03-20 20:38:18 +01:00
test_reqrep_device_tipc.cpp Problem: tests don't build on Windows 2016-02-12 15:48:37 +01:00
test_reqrep_device.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_reqrep_inproc.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_reqrep_ipc.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_reqrep_tcp.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_reqrep_tipc.cpp Problem: tests don't build on Windows 2016-02-12 15:48:37 +01:00
test_reqrep_vmci.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_router_handover.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_router_mandatory_hwm.cpp Problem: test_router_mandatory_hwm uses unitialised memory 2016-02-13 11:35:51 +00:00
test_router_mandatory_tipc.cpp Problem: tests don't build on Windows 2016-02-12 15:48:37 +01:00
test_router_mandatory.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_security_curve.cpp Problem: can't be sure crypto_box always returns 0 2016-03-01 15:01:23 +01:00
test_security_null.cpp Problem: tests don't build on Windows 2016-02-12 16:12:44 +01:00
test_security_plain.cpp Problem: tests don't build on Windows 2016-02-12 16:12:44 +01:00
test_setsockopt.cpp Problem: tests don't build on Windows 2016-02-12 15:48:37 +01:00
test_shutdown_stress_tipc.cpp Problem: tests don't build on Windows 2016-02-12 15:48:37 +01:00
test_shutdown_stress.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_sockopt_hwm.cpp Problem: tests use various sleep patterns to wait 2016-02-13 18:01:03 +00:00
test_spec_dealer.cpp Problem: tests use various sleep patterns to wait 2016-02-13 18:01:03 +00:00
test_spec_pushpull.cpp Problem: tests use various sleep patterns to wait 2016-02-13 18:01:03 +00:00
test_spec_rep.cpp Problem: various tests fail in slow environments 2016-02-13 18:01:03 +00:00
test_spec_req.cpp Problem: tests use various sleep patterns to wait 2016-02-13 18:01:03 +00:00
test_spec_router.cpp Problem: various tests fail in slow environments 2016-02-13 18:01:03 +00:00
test_srcfd.cpp Problem: tests use various sleep patterns to wait 2016-02-13 18:01:03 +00:00
test_stream_disconnect.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_stream_empty.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_stream_exceeds_buffer.cpp Problem: tests don't build on Windows 2016-02-12 16:12:44 +01:00
test_stream_timeout.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_stream.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_sub_forward_tipc.cpp Problem: tests don't build on Windows 2016-02-12 15:48:37 +01:00
test_sub_forward.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_system.cpp Problem: test_system does not clean up at exit 2016-02-13 11:35:51 +00:00
test_term_endpoint_tipc.cpp Problem: tests don't build on Windows 2016-02-12 15:48:37 +01:00
test_term_endpoint.cpp Use FILENAME_MAX to determine BUFSIZE when getting socket path. 2016-03-17 15:12:57 -07:00
test_thread_safe.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_timeo.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_timers.cpp Problem: tests don't build on Windows 2016-02-12 15:48:37 +01:00
test_udp.cpp Problem: tests use various sleep patterns to wait 2016-02-13 18:01:03 +00:00
test_unbind_inproc.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_unbind_wildcard.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_use_fd_ipc.cpp Problem: tests don't build on Windows 2016-02-12 15:48:37 +01:00
test_use_fd_tcp.cpp Problem: test_pre_allocated_fd_tcp leaks addrinfo 2016-02-13 11:35:51 +00:00
test_xpub_manual.cpp Problem: tests use various sleep patterns to wait 2016-02-13 18:01:03 +00:00
test_xpub_nodrop.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
test_xpub_welcome_msg.cpp Problem: copyright year is still 2015 2016-01-28 15:07:31 +01:00
testutil.hpp Problem: SETTLE_TIME is too short on slow systems 2016-02-13 18:17:36 +00:00

Guidelines for tests

Write your test case as if you were writing clean application code. It should be safe to compile on all platforms.

The only include file you should use is testutil.hpp. Do not include files from src. Do not use the internal libzmq API or your test case is fair game to be deleted.

If you must write non-portable code, wrap it in #ifdefs to ensure it will compile and run on all systems.

Note that testutil.hpp includes platform.h. Do not include it yourself as it changes location depending on the build system and OS.

All sources must contain the correct header. Please copy from test_system.cpp if you're not certain.

Please use only ANSI C99 in test cases, no C++. This is to make the code more reusable.

On many slower environments, like embedded systems, VMs or CI systems, test might fail because it takes time for sockets to settle after a connect. If you need to add a sleep, please be consistent with all the other tests and use: msleep (SETTLE_TIME);

Building tests in Windows

Install CMAKE CMD> CMAKE libzmq/tests CMD> tests.sln CMD> # build all projects in the solution