test_xsub_verbose.cpp
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MPL-2.0 */
2 
3 #include "testutil.hpp"
4 #include "testutil_unity.hpp"
5 
7 
8 const uint8_t unsubscribe_a_msg[] = {0, 'A'};
9 const uint8_t subscribe_a_msg[] = {1, 'A'};
10 
11 const char test_endpoint[] = "inproc://soname";
12 
14 {
15  void *pub = test_context_socket (ZMQ_XPUB);
17 
18  void *sub = test_context_socket (ZMQ_XSUB);
20 
21  // set option ZMQ_XPUB_VERBOSER to get all messages
22  int xbup_verboser = 1;
24  zmq_setsockopt (pub, ZMQ_XPUB_VERBOSER, &xbup_verboser, sizeof (int)));
25 
26  // unsubscribe from topic A, does not exist yet
28 
29  // does not exist, so it will be filtered out by XSUB
31 
32  // subscribe to topic A
34 
35  // receive subscription from subscriber
37 
38  // subscribe again to topic A
40 
41  // receive subscription from subscriber
43 
44  // unsubscribe from topic A
46 
47  // The first unsubscribe will be filtered out
49 
50  // unsubscribe again from topic A
52 
53  // receive unsubscription from subscriber
55 
56  // set option ZMQ_XSUB_VERBOSE_UNSUBSCRIBE to get duplicate unsubscribes
57  int xsub_verbose = 1;
59  sub, ZMQ_XSUB_VERBOSE_UNSUBSCRIBE, &xsub_verbose, sizeof (int)));
60 
61  // unsubscribe from topic A, does not exist yet
63 
64  // does not exist, but with ZMQ_XSUB_VERBOSE_UNSUBSCRIBE set it will be forwarded anyway
66 
67  // subscribe to topic A
69 
70  // receive subscription from subscriber
72 
73  // subscribe again to topic A
75 
76  // receive subscription from subscriber
78 
79  // unsubscribe from topic A
81 
82  // receive unsubscription from subscriber
84 
85  // unsubscribe again from topic A
87 
88  // receive unsubscription from subscriber
90 
91  // Clean up.
94 }
95 
96 int main ()
97 {
99 
100  UNITY_BEGIN ();
102 
103  return UNITY_END ();
104 }
recv_array_expect_success
void recv_array_expect_success(void *socket_, const uint8_t(&array_)[SIZE], int flags_)
Definition: testutil_unity.hpp:148
subscribe_a_msg
const uint8_t subscribe_a_msg[]
Definition: test_xsub_verbose.cpp:9
NULL
NULL
Definition: test_security_zap.cpp:405
UNITY_END
return UNITY_END()
ZMQ_XPUB
#define ZMQ_XPUB
Definition: zmq.h:267
ZMQ_XSUB_VERBOSE_UNSUBSCRIBE
#define ZMQ_XSUB_VERBOSE_UNSUBSCRIBE
Definition: zmq_draft.h:47
EAGAIN
#define EAGAIN
Definition: errno.hpp:14
RUN_TEST
#define RUN_TEST(func)
Definition: unity_internals.h:615
SETUP_TEARDOWN_TESTCONTEXT
#define SETUP_TEARDOWN_TESTCONTEXT
Definition: testutil_unity.hpp:172
ZMQ_XSUB
#define ZMQ_XSUB
Definition: zmq.h:268
zmq_connect
ZMQ_EXPORT int zmq_connect(void *s_, const char *addr_)
Definition: zmq.cpp:307
testutil_unity.hpp
test_endpoint
const char test_endpoint[]
Definition: test_xsub_verbose.cpp:11
zmq_setsockopt
ZMQ_EXPORT int zmq_setsockopt(void *s_, int option_, const void *optval_, size_t optvallen_)
Definition: zmq.cpp:250
testutil.hpp
send_array_expect_success
void send_array_expect_success(void *socket_, const uint8_t(&array_)[SIZE], int flags_)
Definition: testutil_unity.hpp:132
main
int main()
Definition: test_xsub_verbose.cpp:96
unsubscribe_a_msg
const SETUP_TEARDOWN_TESTCONTEXT uint8_t unsubscribe_a_msg[]
Definition: test_xsub_verbose.cpp:8
zmq_bind
ZMQ_EXPORT int zmq_bind(void *s_, const char *addr_)
Definition: zmq.cpp:299
test_context_socket
void * test_context_socket(int type_)
Definition: testutil_unity.cpp:200
ZMQ_DONTWAIT
#define ZMQ_DONTWAIT
Definition: zmq.h:358
ZMQ_XPUB_VERBOSER
#define ZMQ_XPUB_VERBOSER
Definition: zmq.h:339
zmq_recv
ZMQ_EXPORT int zmq_recv(void *s_, void *buf_, size_t len_, int flags_)
Definition: zmq.cpp:487
setup_test_environment
void setup_test_environment(int timeout_seconds_)
Definition: testutil.cpp:201
UNITY_BEGIN
UNITY_BEGIN()
TEST_ASSERT_FAILURE_ERRNO
#define TEST_ASSERT_FAILURE_ERRNO(error_code, expr)
Definition: testutil_unity.hpp:95
test_context_socket_close
void * test_context_socket_close(void *socket_)
Definition: testutil_unity.cpp:208
TEST_ASSERT_SUCCESS_ERRNO
#define TEST_ASSERT_SUCCESS_ERRNO(expr)
Definition: proxy_thr.cpp:47
test_xsub_verbose_unsubscribe
void test_xsub_verbose_unsubscribe()
Definition: test_xsub_verbose.cpp:13


libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:59