33 #if defined ZMQ_HAVE_UIO 42 void do_check(
void* sb,
void* sc,
size_t msg_size)
44 assert (sb && sc && msg_size > 0);
47 const char msg_val =
'1';
48 const int num_messages = 10;
49 size_t send_count, recv_count;
51 send_count = recv_count = num_messages;
53 char *ref_msg = (
char *) malloc (msg_size);
55 memset (ref_msg, msg_val, msg_size);
58 struct iovec send_iov[num_messages];
59 char *buf = (
char *) malloc (msg_size * num_messages);
61 for (
int i = 0; i < num_messages; i++)
63 send_iov[i].
iov_base = &buf[i * msg_size];
65 memcpy (send_iov[i].
iov_base, ref_msg, msg_size);
66 assert (memcmp (ref_msg, send_iov[i].iov_base, msg_size) == 0);
71 assert (rc == -1 && errno ==
ENOTSOCK);
74 assert (rc == -1 && errno == EINVAL);
77 assert (rc == -1 && errno == EINVAL);
86 assert ((
size_t)rc == msg_size);
89 struct iovec recv_iov[num_messages];
93 assert (rc == -1 && errno ==
ENOTSOCK);
96 assert (rc == -1 && errno == EINVAL);
97 size_t invalid_recv_count = 0;
98 rc =
zmq_recviov (sb, recv_iov, &invalid_recv_count, 0);
99 assert (rc == -1 && errno == EINVAL);
102 assert (rc == -1 && errno == EINVAL);
106 assert (rc == num_messages);
108 for (
int i = 0; i < num_messages; i++)
111 assert (memcmp (ref_msg, recv_iov[i].iov_base, msg_size) == 0);
112 free(recv_iov[i].iov_base);
115 assert (send_count == recv_count);
ZMQ_EXPORT int zmq_recviov(void *s, struct iovec *iov, size_t *count, int flags)
void msleep(int milliseconds)
ZMQ_EXPORT void * zmq_ctx_new(void)
void setup_test_environment(void)
ZMQ_EXPORT void * zmq_socket(void *, int type)
ZMQ_EXPORT int zmq_connect(void *s, const char *addr)
ZMQ_EXPORT int zmq_close(void *s)
ZMQ_EXPORT int zmq_sendiov(void *s, struct iovec *iov, size_t count, int flags)
ZMQ_EXPORT int zmq_bind(void *s, const char *addr)
ZMQ_EXPORT int zmq_ctx_term(void *context)
void do_check(void *sb, void *sc, size_t msg_size)