test_pubsub.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 void test (const char *address)
9 {
10  // Create a publisher
11  void *publisher = test_context_socket (ZMQ_PUB);
13 
14  // Bind publisher
16 
17  // Create a subscriber
18  void *subscriber = test_context_socket (ZMQ_SUB);
20 
21  // Subscribe to all messages.
23  zmq_setsockopt (subscriber, ZMQ_SUBSCRIBE, "", 0));
24 
25  // Wait a bit till the subscription gets to the publisher
27 
28  // Send an empty message
29  send_string_expect_success (publisher, "test", 0);
30 
31  // Receive the message in the subscriber
32  recv_string_expect_success (subscriber, "test", 0);
33 
34  // Clean up.
35  test_context_socket_close (publisher);
36  test_context_socket_close (subscriber);
37 }
38 
39 void test_norm ()
40 {
41 #if defined ZMQ_HAVE_NORM
42  test ("norm://224.1.2.3:5556");
43 #else
44  TEST_IGNORE_MESSAGE ("libzmq without NORM, ignoring test");
45 #endif
46 }
47 
48 int main ()
49 {
51 
52  UNITY_BEGIN ();
54  return UNITY_END ();
55 }
UNITY_END
return UNITY_END()
ZMQ_PUB
#define ZMQ_PUB
Definition: zmq.h:259
msleep
void msleep(int milliseconds_)
Definition: testutil.cpp:227
RUN_TEST
#define RUN_TEST(func)
Definition: unity_internals.h:615
test_norm
void test_norm()
Definition: test_pubsub.cpp:39
SETUP_TEARDOWN_TESTCONTEXT
#define SETUP_TEARDOWN_TESTCONTEXT
Definition: testutil_unity.hpp:172
ZMQ_SUBSCRIBE
#define ZMQ_SUBSCRIBE
Definition: zmq.h:278
test
SETUP_TEARDOWN_TESTCONTEXT void test(const char *address)
Definition: test_pubsub.cpp:8
address
const char * address
Definition: builds/zos/test_fork.cpp:6
ZMQ_SUB
#define ZMQ_SUB
Definition: zmq.h:260
zmq_connect
ZMQ_EXPORT int zmq_connect(void *s_, const char *addr_)
Definition: zmq.cpp:307
testutil_unity.hpp
zmq_setsockopt
ZMQ_EXPORT int zmq_setsockopt(void *s_, int option_, const void *optval_, size_t optvallen_)
Definition: zmq.cpp:250
testutil.hpp
my_endpoint
char my_endpoint[MAX_SOCKET_STRING]
Definition: test_security_curve.cpp:31
MAX_SOCKET_STRING
#define MAX_SOCKET_STRING
Definition: libzmq/tests/testutil.hpp:35
test_context_socket
void * test_context_socket(int type_)
Definition: testutil_unity.cpp:200
SETTLE_TIME
#define SETTLE_TIME
Definition: libzmq/tests/testutil.hpp:31
TEST_IGNORE_MESSAGE
#define TEST_IGNORE_MESSAGE(message)
Definition: unity.h:103
send_string_expect_success
void send_string_expect_success(void *socket_, const char *str_, int flags_)
Definition: testutil_unity.cpp:94
recv_string_expect_success
void recv_string_expect_success(void *socket_, const char *str_, int flags_)
Definition: testutil_unity.cpp:101
setup_test_environment
void setup_test_environment(int timeout_seconds_)
Definition: testutil.cpp:201
UNITY_BEGIN
UNITY_BEGIN()
test_context_socket_close
void * test_context_socket_close(void *socket_)
Definition: testutil_unity.cpp:208
main
int main()
Definition: test_pubsub.cpp:48
TEST_ASSERT_SUCCESS_ERRNO
#define TEST_ASSERT_SUCCESS_ERRNO(expr)
Definition: proxy_thr.cpp:47
test_bind
void test_bind(void *socket_, const char *bind_address_, char *my_endpoint_, size_t len_)
Definition: testutil_unity.cpp:223


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