summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2020-01-20 16:03:45 -0800
committerGarrett D'Amore <garrett@damore.org>2020-01-20 16:03:45 -0800
commit5e031e639df65d7f12a0d2f776f188fde1b98fd9 (patch)
tree159f9a76efa89ce40bc0cbe32502d6524b28b985 /tests
parent8abf75857e8993a25e50d07bdd6d9628f028d7cc (diff)
downloadnng-5e031e639df65d7f12a0d2f776f188fde1b98fd9.tar.gz
nng-5e031e639df65d7f12a0d2f776f188fde1b98fd9.tar.bz2
nng-5e031e639df65d7f12a0d2f776f188fde1b98fd9.zip
fixes #1163 compat tests are very brittle
This only addresses the newly rewitten compat_tcp test, but it sets the groundwork for the other tests, so that when they are updated to the new acutest.h they can use the new marry code to establish connections cleanly and safely.
Diffstat (limited to 'tests')
-rw-r--r--tests/testutil.c17
-rw-r--r--tests/testutil.h6
2 files changed, 15 insertions, 8 deletions
diff --git a/tests/testutil.c b/tests/testutil.c
index 6934d4ad..2f6bf24d 100644
--- a/tests/testutil.c
+++ b/tests/testutil.c
@@ -328,19 +328,24 @@ married(nng_pipe p, nng_pipe_ev ev, void *arg)
int
testutil_marry(nng_socket s1, nng_socket s2)
{
- return (testutil_marry_ex(s1, s2, NULL, NULL));
+ return (testutil_marry_ex(s1, s2, NULL, NULL, NULL));
}
int
-testutil_marry_ex(nng_socket s1, nng_socket s2, nng_pipe *p1, nng_pipe *p2)
+testutil_marry_ex(
+ nng_socket s1, nng_socket s2, const char *url, nng_pipe *p1, nng_pipe *p2)
{
struct marriage_notice note;
nng_time timeout;
int rv;
char addr[32];
- (void) snprintf(addr, sizeof(addr), "inproc://marry%04x%04x%04x%04x",
- nng_random(), nng_random(), nng_random(), nng_random());
+ if (url == NULL) {
+ (void) snprintf(addr, sizeof(addr),
+ "inproc://marry%04x%04x%04x%04x", nng_random(),
+ nng_random(), nng_random(), nng_random());
+ url = addr;
+ }
note.cnt1 = 0;
note.cnt2 = 0;
@@ -354,8 +359,8 @@ testutil_marry_ex(nng_socket s1, nng_socket s2, nng_pipe *p1, nng_pipe *p2)
s1, NNG_PIPE_EV_ADD_POST, married, &note)) != 0) ||
((rv = nng_pipe_notify(
s2, NNG_PIPE_EV_ADD_POST, married, &note)) != 0) ||
- ((rv = nng_listen(s1, addr, NULL, 0)) != 0) ||
- ((rv = nng_dial(s2, addr, NULL, 0)) != 0)) {
+ ((rv = nng_listen(s1, url, NULL, 0)) != 0) ||
+ ((rv = nng_dial(s2, url, NULL, 0)) != 0)) {
goto done;
}
diff --git a/tests/testutil.h b/tests/testutil.h
index 88d978de..a297b603 100644
--- a/tests/testutil.h
+++ b/tests/testutil.h
@@ -51,8 +51,10 @@ extern void testutil_scratch_addr(const char *, size_t, char *);
extern int testutil_marry(nng_socket, nng_socket);
// testutil_marry_ex is like testutil_marry, but returns the pipes that
-// were connected. The pipe pointers may be NULL if not needed.
-extern int testutil_marry_ex(nng_socket, nng_socket, nng_pipe *, nng_pipe *);
+// were connected, and includes an optional URL. The pipe pointers and the
+// URL may be NULL if not needed.
+extern int testutil_marry_ex(
+ nng_socket, nng_socket, const char *, nng_pipe *, nng_pipe *);
// TEST_NNG_PASS tests for NNG success. It reports the failure if it
// did not.