Another bunch of tests refactored
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
diff --git a/tests/inproc_shutdown.c b/tests/inproc_shutdown.c
index 0f426d1..f35429c 100644
--- a/tests/inproc_shutdown.c
+++ b/tests/inproc_shutdown.c
@@ -25,7 +25,7 @@
#include "../src/pubsub.h"
#include "../src/inproc.h"
-#include "../src/utils/err.c"
+#include "testutil.h"
#include "../src/utils/thread.c"
/* Stress test the inproc transport. */
@@ -38,14 +38,12 @@
int rc;
int s;
- s = nn_socket (AF_SP, NN_SUB);
+ s = test_socket (AF_SP, NN_SUB);
if (s < 0 && nn_errno () == EMFILE)
return;
errno_assert (s >= 0);
- rc = nn_connect (s, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- rc = nn_close (s);
- errno_assert (rc == 0);
+ test_connect (s, SOCKET_ADDRESS);
+ test_close (s);
}
int main ()
@@ -58,10 +56,8 @@
/* Stress the shutdown algorithm. */
- sb = nn_socket (AF_SP, NN_PUB);
- errno_assert (sb >= 0);
- rc = nn_bind (sb, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
+ sb = test_socket (AF_SP, NN_PUB);
+ test_bind (sb, SOCKET_ADDRESS);
for (j = 0; j != 10; ++j) {
for (i = 0; i != THREAD_COUNT; ++i)
@@ -70,8 +66,7 @@
nn_thread_term (&threads [i]);
}
- rc = nn_close (sb);
- errno_assert (rc == 0);
+ test_close (sb);
return 0;
}
diff --git a/tests/iovec.c b/tests/iovec.c
index 5298d3f..31eeef1 100644
--- a/tests/iovec.c
+++ b/tests/iovec.c
@@ -23,7 +23,7 @@
#include "../src/nn.h"
#include "../src/pair.h"
-#include "../src/utils/err.c"
+#include "testutil.h"
#include <string.h>
@@ -38,14 +38,10 @@
struct nn_msghdr hdr;
char buf [6];
- sb = nn_socket (AF_SP, NN_PAIR);
- errno_assert (sb != -1);
- rc = nn_bind (sb, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- sc = nn_socket (AF_SP, NN_PAIR);
- errno_assert (sc != -1);
- rc = nn_connect (sc, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
+ sb = test_socket (AF_SP, NN_PAIR);
+ test_bind (sb, SOCKET_ADDRESS);
+ sc = test_socket (AF_SP, NN_PAIR);
+ test_connect (sc, SOCKET_ADDRESS);
iov [0].iov_base = "AB";
iov [0].iov_len = 2;
@@ -70,10 +66,8 @@
nn_assert (rc == 6);
nn_assert (memcmp (buf, "ABCDEF", 6) == 0);
- rc = nn_close (sc);
- errno_assert (rc == 0);
- rc = nn_close (sb);
- errno_assert (rc == 0);
+ test_close (sc);
+ test_close (sb);
return 0;
}
diff --git a/tests/ipc_shutdown.c b/tests/ipc_shutdown.c
index 1ffff43..1d05bec 100644
--- a/tests/ipc_shutdown.c
+++ b/tests/ipc_shutdown.c
@@ -25,8 +25,7 @@
#include "../src/pubsub.h"
#include "../src/ipc.h"
-#include "../src/utils/err.c"
-#include "../src/utils/sleep.c"
+#include "testutil.h"
#include "../src/utils/thread.c"
/* Stress test the IPC transport. */
@@ -43,10 +42,8 @@
if (s < 0 && nn_errno () == EMFILE)
return;
errno_assert (s >= 0);
- rc = nn_connect (s, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- rc = nn_close (s);
- errno_assert (rc == 0);
+ test_connect (s, SOCKET_ADDRESS);
+ test_close (s);
}
int main ()
@@ -60,10 +57,8 @@
/* Stress the shutdown algorithm. */
- sb = nn_socket (AF_SP, NN_PUB);
- errno_assert (sb >= 0);
- rc = nn_bind (sb, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
+ sb = test_socket (AF_SP, NN_PUB);
+ test_bind (sb, SOCKET_ADDRESS);
for (j = 0; j != 10; ++j) {
for (i = 0; i != THREAD_COUNT; ++i)
@@ -72,8 +67,7 @@
nn_thread_term (&threads [i]);
}
- rc = nn_close (sb);
- errno_assert (rc == 0);
+ test_close (sb);
#endif
diff --git a/tests/msg.c b/tests/msg.c
index 1ac2244..5b7fb15 100644
--- a/tests/msg.c
+++ b/tests/msg.c
@@ -23,7 +23,7 @@
#include "../src/nn.h"
#include "../src/pair.h"
-#include "../src/utils/err.c"
+#include "testutil.h"
#include <string.h>
@@ -39,14 +39,10 @@
struct nn_iovec iov;
struct nn_msghdr hdr;
- sb = nn_socket (AF_SP, NN_PAIR);
- errno_assert (sb != -1);
- rc = nn_bind (sb, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- sc = nn_socket (AF_SP, NN_PAIR);
- errno_assert (sc != -1);
- rc = nn_connect (sc, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
+ sb = test_socket (AF_SP, NN_PAIR);
+ test_bind (sb, SOCKET_ADDRESS);
+ sc = test_socket (AF_SP, NN_PAIR);
+ test_connect (sc, SOCKET_ADDRESS);
buf1 = nn_allocmsg (256, 0);
alloc_assert (buf1);
@@ -94,10 +90,8 @@
rc = nn_freemsg (buf2);
errno_assert (rc == 0);
- rc = nn_close (sc);
- errno_assert (rc == 0);
- rc = nn_close (sb);
- errno_assert (rc == 0);
+ test_close (sc);
+ test_close (sb);
return 0;
}
diff --git a/tests/pair.c b/tests/pair.c
index 550ce69..387ea7e 100644
--- a/tests/pair.c
+++ b/tests/pair.c
@@ -23,7 +23,7 @@
#include "../src/nn.h"
#include "../src/pair.h"
-#include "../src/utils/err.c"
+#include "testutil.h"
#define SOCKET_ADDRESS "inproc://a"
@@ -34,35 +34,18 @@
int sc;
char buf [3];
- sb = nn_socket (AF_SP, NN_PAIR);
- errno_assert (sb != -1);
- rc = nn_bind (sb, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- sc = nn_socket (AF_SP, NN_PAIR);
- errno_assert (sc != -1);
- rc = nn_connect (sc, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
+ sb = test_socket (AF_SP, NN_PAIR);
+ test_bind (sb, SOCKET_ADDRESS);
+ sc = test_socket (AF_SP, NN_PAIR);
+ test_connect (sc, SOCKET_ADDRESS);
- rc = nn_send (sc, "ABC", 3, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
+ test_send (sc, "ABC");
+ test_recv (sb, "ABC");
+ test_send (sb, "DEF");
+ test_recv (sc, "DEF");
- rc = nn_recv (sb, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
-
- rc = nn_send (sb, "DEF", 3, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
-
- rc = nn_recv (sc, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
-
- rc = nn_close (sc);
- errno_assert (rc == 0);
- rc = nn_close (sb);
- errno_assert (rc == 0);
+ test_close (sc);
+ test_close (sb);
return 0;
}
diff --git a/tests/pipeline.c b/tests/pipeline.c
index a5ad49e..61f1a4a 100644
--- a/tests/pipeline.c
+++ b/tests/pipeline.c
@@ -23,8 +23,7 @@
#include "../src/nn.h"
#include "../src/pipeline.h"
-#include "../src/utils/err.c"
-#include "../src/utils/sleep.c"
+#include "testutil.h"
#define SOCKET_ADDRESS "inproc://a"
@@ -39,80 +38,45 @@
/* Test fan-out. */
- push1 = nn_socket (AF_SP, NN_PUSH);
- errno_assert (push1 != -1);
- rc = nn_bind (push1, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- pull1 = nn_socket (AF_SP, NN_PULL);
- errno_assert (pull1 != -1);
- rc = nn_connect (pull1, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- pull2 = nn_socket (AF_SP, NN_PULL);
- errno_assert (pull2 != -1);
- rc = nn_connect (pull2, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
+ push1 = test_socket (AF_SP, NN_PUSH);
+ test_bind (push1, SOCKET_ADDRESS);
+ pull1 = test_socket (AF_SP, NN_PULL);
+ test_connect (pull1, SOCKET_ADDRESS);
+ pull2 = test_socket (AF_SP, NN_PULL);
+ test_connect (pull2, SOCKET_ADDRESS);
/* Wait till both connections are established to get messages spread
evenly between the two pull sockets. */
nn_sleep (10);
- rc = nn_send (push1, "ABC", 3, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- rc = nn_send (push1, "DEF", 3, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
+ test_send (push1, "ABC");
+ test_send (push1, "DEF");
- rc = nn_recv (pull1, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- rc = nn_recv (pull2, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
+ test_recv (pull1, "ABC");
+ test_recv (pull2, "DEF");
- rc = nn_close (push1);
- errno_assert (rc == 0);
- rc = nn_close (pull1);
- errno_assert (rc == 0);
- rc = nn_close (pull2);
- errno_assert (rc == 0);
+ test_close (push1);
+ test_close (pull1);
+ test_close (pull2);
/* Test fan-in. */
- pull1 = nn_socket (AF_SP, NN_PULL);
- errno_assert (pull1 != -1);
- rc = nn_bind (pull1, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- push1 = nn_socket (AF_SP, NN_PUSH);
- errno_assert (push1 != -1);
- rc = nn_connect (push1, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- push2 = nn_socket (AF_SP, NN_PUSH);
- errno_assert (push2 != -1);
- rc = nn_connect (push2, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
+ pull1 = test_socket (AF_SP, NN_PULL);
+ test_bind (pull1, SOCKET_ADDRESS);
+ push1 = test_socket (AF_SP, NN_PUSH);
+ test_connect (push1, SOCKET_ADDRESS);
+ push2 = test_socket (AF_SP, NN_PUSH);
+ test_connect (push2, SOCKET_ADDRESS);
- rc = nn_send (push1, "ABC", 3, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- rc = nn_send (push2, "DEF", 3, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
+ test_send (push1, "ABC");
+ test_send (push2, "DEF");
- rc = nn_recv (pull1, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- rc = nn_recv (pull1, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
+ test_recv (pull1, "ABC");
+ test_recv (pull1, "DEF");
- rc = nn_close (pull1);
- errno_assert (rc == 0);
- rc = nn_close (push1);
- errno_assert (rc == 0);
- rc = nn_close (push2);
- errno_assert (rc == 0);
-
+ test_close (pull1);
+ test_close (push1);
+ test_close (push2);
return 0;
}
diff --git a/tests/poll.c b/tests/poll.c
index 6f02786..0a75cdb 100644
--- a/tests/poll.c
+++ b/tests/poll.c
@@ -24,9 +24,8 @@
#include "../src/pair.h"
#include "../src/inproc.h"
-#include "../src/utils/err.c"
+#include "testutil.h"
#include "../src/utils/thread.c"
-#include "../src/utils/sleep.c"
#if defined NN_HAVE_WINDOWS
#include "../src/utils/win.h"
@@ -45,9 +44,7 @@
int rc;
nn_sleep (10);
- rc = nn_send (sc, "ABC", 3, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
+ test_send (sc, "ABC");
}
void routine2 (void *arg)
@@ -131,14 +128,10 @@
struct nn_thread thread;
/* Create a simple topology. */
- sb = nn_socket (AF_SP, NN_PAIR);
- errno_assert (sb != -1);
- rc = nn_bind (sb, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- sc = nn_socket (AF_SP, NN_PAIR);
- errno_assert (sc != -1);
- rc = nn_connect (sc, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
+ sb = test_socket (AF_SP, NN_PAIR);
+ test_bind (sb, SOCKET_ADDRESS);
+ sc = test_socket (AF_SP, NN_PAIR);
+ test_connect (sc, SOCKET_ADDRESS);
/* Check the initial state of the socket. */
rc = getevents (sb, NN_IN | NN_OUT, 1000);
@@ -151,16 +144,12 @@
/* Send a message and start polling. This time IN event should be
signaled. */
- rc = nn_send (sc, "ABC", 3, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
+ test_send (sc, "ABC");
rc = getevents (sb, NN_IN, 1000);
nn_assert (rc == NN_IN);
/* Receive the message and make sure that IN is no longer signaled. */
- rc = nn_recv (sb, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
+ test_recv (sb, "ABC");
rc = getevents (sb, NN_IN, 10);
nn_assert (rc == 0);
@@ -168,9 +157,7 @@
nn_thread_init (&thread, routine1, NULL);
rc = getevents (sb, NN_IN, 1000);
nn_assert (rc == NN_IN);
- rc = nn_recv (sb, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
+ test_recv (sb, "ABC");
nn_thread_term (&thread);
/* Check terminating the library from a different thread. */
@@ -182,10 +169,8 @@
nn_thread_term (&thread);
/* Clean up. */
- rc = nn_close (sc);
- errno_assert (rc == 0);
- rc = nn_close (sb);
- errno_assert (rc == 0);
+ test_close (sc);
+ test_close (sb);
return 0;
}
diff --git a/tests/prio.c b/tests/prio.c
index 4d59359..1b258ec 100644
--- a/tests/prio.c
+++ b/tests/prio.c
@@ -24,7 +24,7 @@
#include "../src/nn.h"
#include "../src/pipeline.h"
-#include "../src/utils/err.c"
+#include "testutil.h"
#define SOCKET_ADDRESS_A "inproc://a"
#define SOCKET_ADDRESS_B "inproc://b"
@@ -38,44 +38,30 @@
int sndprio;
char buf [3];
- pull1 = nn_socket (AF_SP, NN_PULL);
- errno_assert (pull1 != -1);
- rc = nn_bind (pull1, SOCKET_ADDRESS_A);
- errno_assert (rc >= 0);
- pull2 = nn_socket (AF_SP, NN_PULL);
- errno_assert (pull2 != -1);
- rc = nn_bind (pull2, SOCKET_ADDRESS_B);
- errno_assert (rc >= 0);
- push = nn_socket (AF_SP, NN_PUSH);
- errno_assert (push != -1);
+ pull1 = test_socket (AF_SP, NN_PULL);
+ test_bind (pull1, SOCKET_ADDRESS_A);
+ pull2 = test_socket (AF_SP, NN_PULL);
+ test_bind (pull2, SOCKET_ADDRESS_B);
+ push = test_socket (AF_SP, NN_PUSH);
sndprio = 1;
rc = nn_setsockopt (push, NN_SOL_SOCKET, NN_SNDPRIO,
&sndprio, sizeof (sndprio));
errno_assert (rc == 0);
- rc = nn_connect (push, SOCKET_ADDRESS_A);
- errno_assert (rc >= 0);
+ test_connect (push, SOCKET_ADDRESS_A);
sndprio = 2;
rc = nn_setsockopt (push, NN_SOL_SOCKET, NN_SNDPRIO,
&sndprio, sizeof (sndprio));
errno_assert (rc == 0);
- rc = nn_connect (push, SOCKET_ADDRESS_B);
- errno_assert (rc >= 0);
+ test_connect (push, SOCKET_ADDRESS_B);
- rc = nn_send (push, "ABC", 3, 0);
- errno_assert (rc == 3);
- rc = nn_send (push, "DEF", 3, 0);
- errno_assert (rc == 3);
- rc = nn_recv (pull1, buf, sizeof (buf), 0);
- errno_assert (rc == 3);
- rc = nn_recv (pull1, buf, sizeof (buf), 0);
- errno_assert (rc == 3);
+ test_send (push, "ABC");
+ test_send (push, "DEF");
+ test_recv (pull1, "ABC");
+ test_recv (pull1, "DEF");
- rc = nn_close (pull1);
- errno_assert (rc == 0);
- rc = nn_close (push);
- errno_assert (rc == 0);
- rc = nn_close (pull2);
- errno_assert (rc == 0);
+ test_close (pull1);
+ test_close (push);
+ test_close (pull2);
return 0;
}
diff --git a/tests/pubsub.c b/tests/pubsub.c
index 2df82e0..44d24f0 100644
--- a/tests/pubsub.c
+++ b/tests/pubsub.c
@@ -23,8 +23,7 @@
#include "../src/nn.h"
#include "../src/pubsub.h"
-#include "../src/utils/err.c"
-#include "../src/utils/sleep.c"
+#include "testutil.h"
#define SOCKET_ADDRESS "inproc://a"
@@ -37,81 +36,48 @@
int sub2;
char buf [3];
- pub1 = nn_socket (AF_SP, NN_PUB);
- errno_assert (pub1 != -1);
- rc = nn_bind (pub1, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- sub1 = nn_socket (AF_SP, NN_SUB);
- errno_assert (sub1 != -1);
+ pub1 = test_socket (AF_SP, NN_PUB);
+ test_bind (pub1, SOCKET_ADDRESS);
+ sub1 = test_socket (AF_SP, NN_SUB);
rc = nn_setsockopt (sub1, NN_SUB, NN_SUB_SUBSCRIBE, "", 0);
errno_assert (rc == 0);
- rc = nn_connect (sub1, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- sub2 = nn_socket (AF_SP, NN_SUB);
- errno_assert (sub2 != -1);
+ test_connect (sub1, SOCKET_ADDRESS);
+ sub2 = test_socket (AF_SP, NN_SUB);
rc = nn_setsockopt (sub2, NN_SUB, NN_SUB_SUBSCRIBE, "", 0);
errno_assert (rc == 0);
- rc = nn_connect (sub2, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
+ test_connect (sub2, SOCKET_ADDRESS);
/* Wait till connections are established to prevent message loss. */
nn_sleep (10);
- rc = nn_send (pub1, "0123456789012345678901234567890123456789", 40, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 40);
+ test_send (pub1, "0123456789012345678901234567890123456789");
+ test_recv (sub1, "0123456789012345678901234567890123456789");
+ test_recv (sub2, "0123456789012345678901234567890123456789");
- rc = nn_recv (sub1, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 40);
- rc = nn_recv (sub2, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 40);
-
- rc = nn_close (pub1);
- errno_assert (rc == 0);
- rc = nn_close (sub1);
- errno_assert (rc == 0);
- rc = nn_close (sub2);
- errno_assert (rc == 0);
+ test_close (pub1);
+ test_close (sub1);
+ test_close (sub2);
/* Check receiving messages from two publishers. */
- sub1 = nn_socket (AF_SP, NN_SUB);
- errno_assert (sub1 != -1);
+ sub1 = test_socket (AF_SP, NN_SUB);
rc = nn_setsockopt (sub1, NN_SUB, NN_SUB_SUBSCRIBE, "", 0);
errno_assert (rc == 0);
- rc = nn_bind (sub1, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- pub1 = nn_socket (AF_SP, NN_PUB);
- errno_assert (pub1 != -1);
- rc = nn_connect (pub1, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- pub2 = nn_socket (AF_SP, NN_PUB);
- errno_assert (pub2 != -1);
- rc = nn_connect (pub2, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
+ test_bind (sub1, SOCKET_ADDRESS);
+ pub1 = test_socket (AF_SP, NN_PUB);
+ test_connect (pub1, SOCKET_ADDRESS);
+ pub2 = test_socket (AF_SP, NN_PUB);
+ test_connect (pub2, SOCKET_ADDRESS);
nn_sleep (100);
- rc = nn_send (pub1, "0123456789012345678901234567890123456789", 40, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 40);
- rc = nn_send (pub2, "0123456789012345678901234567890123456789", 40, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 40);
- rc = nn_recv (sub1, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 40);
- rc = nn_recv (sub1, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 40);
+ test_send (pub1, "0123456789012345678901234567890123456789");
+ test_send (pub2, "0123456789012345678901234567890123456789");
+ test_recv (sub1, "0123456789012345678901234567890123456789");
+ test_recv (sub1, "0123456789012345678901234567890123456789");
- rc = nn_close (pub2);
- errno_assert (rc == 0);
- rc = nn_close (pub1);
- errno_assert (rc == 0);
- rc = nn_close (sub1);
- errno_assert (rc == 0);
+ test_close (pub2);
+ test_close (pub1);
+ test_close (sub1);
return 0;
}
diff --git a/tests/reqrep.c b/tests/reqrep.c
index 1e9b966..2c538d5 100644
--- a/tests/reqrep.c
+++ b/tests/reqrep.c
@@ -23,7 +23,7 @@
#include "../src/nn.h"
#include "../src/reqrep.h"
-#include "../src/utils/err.c"
+#include "testutil.h"
#define SOCKET_ADDRESS "inproc://test"
@@ -39,17 +39,12 @@
int timeo;
/* Test req/rep with full socket types. */
- rep1 = nn_socket (AF_SP, NN_REP);
- errno_assert (rep1 != -1);
- rc = nn_bind (rep1, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- req1 = nn_socket (AF_SP, NN_REQ);
- errno_assert (req1 != -1);
- rc = nn_connect (req1, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- req2 = nn_socket (AF_SP, NN_REQ);
- errno_assert (req2 != -1);
- rc = nn_connect (req2, SOCKET_ADDRESS);
+ rep1 = test_socket (AF_SP, NN_REP);
+ test_bind (rep1, SOCKET_ADDRESS);
+ req1 = test_socket (AF_SP, NN_REQ);
+ test_connect (req1, SOCKET_ADDRESS);
+ req2 = test_socket (AF_SP, NN_REQ);
+ test_connect (req2, SOCKET_ADDRESS);
errno_assert (rc >= 0);
/* Check invalid sequence of sends and recvs. */
@@ -59,170 +54,95 @@
nn_assert (rc == -1 && nn_errno () == EFSM);
/* Check fair queueing the requests. */
- rc = nn_send (req2, "ABC", 3, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- rc = nn_recv (rep1, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- rc = nn_send (rep1, buf, 3, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- rc = nn_recv (req2, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
+ test_send (req2, "ABC");
+ test_recv (rep1, "ABC");
+ test_send (rep1, "ABC");
+ test_recv (req2, "ABC");
- rc = nn_send (req1, "ABC", 3, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- rc = nn_recv (rep1, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- rc = nn_send (rep1, buf, 3, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- rc = nn_recv (req1, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
+ test_send (req1, "ABC");
+ test_recv (rep1, "ABC");
+ test_send (rep1, "ABC");
+ test_recv (req1, "ABC");
- rc = nn_close (rep1);
- errno_assert (rc == 0);
- rc = nn_close (req1);
- errno_assert (rc == 0);
- rc = nn_close (req2);
- errno_assert (rc == 0);
+ test_close (rep1);
+ test_close (req1);
+ test_close (req2);
/* Check load-balancing of requests. */
- req1 = nn_socket (AF_SP, NN_REQ);
- errno_assert (req1 != -1);
- rc = nn_bind (req1, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- rep1 = nn_socket (AF_SP, NN_REP);
- errno_assert (rep1 != -1);
- rc = nn_connect (rep1, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- rep2 = nn_socket (AF_SP, NN_REP);
- errno_assert (rep2 != -1);
- rc = nn_connect (rep2, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
+ req1 = test_socket (AF_SP, NN_REQ);
+ test_bind (req1, SOCKET_ADDRESS);
+ rep1 = test_socket (AF_SP, NN_REP);
+ test_connect (rep1, SOCKET_ADDRESS);
+ rep2 = test_socket (AF_SP, NN_REP);
+ test_connect (rep2, SOCKET_ADDRESS);
- rc = nn_send (req1, "ABC", 3, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- rc = nn_recv (rep1, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- rc = nn_send (rep1, buf, 3, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- rc = nn_recv (req1, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
+ test_send (req1, "ABC");
+ test_recv (rep1, "ABC");
+ test_send (rep1, "ABC");
+ test_recv (req1, "ABC");
- rc = nn_send (req1, "ABC", 3, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- rc = nn_recv (rep2, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- rc = nn_send (rep2, buf, 3, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- rc = nn_recv (req1, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
+ test_send (req1, "ABC");
+ test_recv (rep2, "ABC");
+ test_send (rep2, "ABC");
+ test_recv (req1, "ABC");
- rc = nn_close (rep2);
- errno_assert (rc == 0);
- rc = nn_close (rep1);
- errno_assert (rc == 0);
- rc = nn_close (req1);
- errno_assert (rc == 0);
+ test_close (rep2);
+ test_close (rep1);
+ test_close (req1);
/* Test re-sending of the request. */
- rep1 = nn_socket (AF_SP, NN_REP);
- errno_assert (rep1 != -1);
- rc = nn_bind (rep1, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- req1 = nn_socket (AF_SP, NN_REQ);
- errno_assert (req1 != -1);
- rc = nn_connect (req1, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
+ rep1 = test_socket (AF_SP, NN_REP);
+ test_bind (rep1, SOCKET_ADDRESS);
+ req1 = test_socket (AF_SP, NN_REQ);
+ test_connect (req1, SOCKET_ADDRESS);
resend_ivl = 100;
rc = nn_setsockopt (req1, NN_REQ, NN_REQ_RESEND_IVL,
&resend_ivl, sizeof (resend_ivl));
errno_assert (rc == 0);
- rc = nn_send (req1, "ABC", 3, 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- rc = nn_recv (rep1, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- rc = nn_recv (rep1, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
+ test_send (req1, "ABC");
+ test_recv (rep1, "ABC");
+ /* The following waits for request to be resent */
+ test_recv (rep1, "ABC");
- rc = nn_close (req1);
- errno_assert (rc == 0);
- rc = nn_close (rep1);
- errno_assert (rc == 0);
+ test_close (req1);
+ test_close (rep1);
/* Check sending a request when the peer is not available. (It should
be sent immediatelly when the peer comes online rather than relying
on the resend algorithm. */
- req1 = nn_socket (AF_SP, NN_REQ);
- errno_assert (req1 != -1);
- rc = nn_connect (req1, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- rc = nn_send (req1, "ABC", 3, 0);
- errno_assert (rc >= 0);
+ req1 = test_socket (AF_SP, NN_REQ);
+ test_connect (req1, SOCKET_ADDRESS);
+ test_send (req1, "ABC");
- rep1 = nn_socket (AF_SP, NN_REP);
- errno_assert (rep1 != -1);
- rc = nn_bind (rep1, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
+ rep1 = test_socket (AF_SP, NN_REP);
+ test_bind (rep1, SOCKET_ADDRESS);
timeo = 200;
rc = nn_setsockopt (rep1, NN_SOL_SOCKET, NN_RCVTIMEO,
&timeo, sizeof (timeo));
errno_assert (rc == 0);
- rc = nn_recv (rep1, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
+ test_recv (rep1, "ABC");
- rc = nn_close (req1);
- errno_assert (rc == 0);
- rc = nn_close (rep1);
- errno_assert (rc == 0);
+ test_close (req1);
+ test_close (rep1);
/* Test cancelling delayed request */
- req1 = nn_socket (AF_SP, NN_REQ);
- errno_assert (req1 != -1);
- rc = nn_connect (req1, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
- rc = nn_send (req1, "ABC", 3, 0);
- errno_assert (rc >= 0);
- rc = nn_send (req1, "DEF", 3, 0);
- errno_assert (rc >= 0);
+ req1 = test_socket (AF_SP, NN_REQ);
+ test_connect (req1, SOCKET_ADDRESS);
+ test_send (req1, "ABC");
+ test_send (req1, "DEF");
- rep1 = nn_socket (AF_SP, NN_REP);
- errno_assert (rep1 != -1);
- rc = nn_bind (rep1, SOCKET_ADDRESS);
- errno_assert (rc >= 0);
+ rep1 = test_socket (AF_SP, NN_REP);
+ test_bind (rep1, SOCKET_ADDRESS);
timeo = 100;
// rc = nn_setsockopt (rep1, NN_SOL_SOCKET, NN_RCVTIMEO,
// &timeo, sizeof (timeo));
// errno_assert (rc == 0);
- rc = nn_recv (rep1, buf, sizeof (buf), 0);
- errno_assert (rc >= 0);
- nn_assert (rc == 3);
- nn_assert (!memcmp(buf, "DEF", 3));
+ test_recv (rep1, "DEF");
- rc = nn_close (req1);
- errno_assert (rc == 0);
- rc = nn_close (rep1);
- errno_assert (rc == 0);
+ test_close (req1);
+ test_close (rep1);
return 0;
}