aboutsummaryrefslogtreecommitdiff
path: root/src/protocol/bus0
diff options
context:
space:
mode:
Diffstat (limited to 'src/protocol/bus0')
-rw-r--r--src/protocol/bus0/CMakeLists.txt9
-rw-r--r--src/protocol/bus0/bug1247_test.c39
2 files changed, 44 insertions, 4 deletions
diff --git a/src/protocol/bus0/CMakeLists.txt b/src/protocol/bus0/CMakeLists.txt
index 1115e2ec..01c0b05b 100644
--- a/src/protocol/bus0/CMakeLists.txt
+++ b/src/protocol/bus0/CMakeLists.txt
@@ -1,5 +1,5 @@
#
-# Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
+# Copyright 2020 Staysail Systems, Inc. <info@staysail.tech>
# Copyright 2018 Capitar IT Group BV <info@capitar.com>
#
# This software is supplied under the terms of the MIT License, a
@@ -9,9 +9,10 @@
#
# Bus protocol
-option (NNG_PROTO_BUS0 "Enable BUSv0 protocol." ON)
-mark_as_advanced(NNG_PROTO_BUS0)
+nng_directory(bus0)
nng_sources_if(NNG_PROTO_BUS0 bus.c)
nng_headers_if(NNG_PROTO_BUS0 nng/protocol/bus0/bus.h)
-nng_defines_if(NNG_PROTO_BUS0 NNG_HAVE_BUS0) \ No newline at end of file
+nng_defines_if(NNG_PROTO_BUS0 NNG_HAVE_BUS0)
+
+nng_test(bug1247_test) \ No newline at end of file
diff --git a/src/protocol/bus0/bug1247_test.c b/src/protocol/bus0/bug1247_test.c
new file mode 100644
index 00000000..6f418f53
--- /dev/null
+++ b/src/protocol/bus0/bug1247_test.c
@@ -0,0 +1,39 @@
+//
+// Copyright 2020 Staysail Systems, Inc. <info@staysail.tech>
+//
+// This software is supplied under the terms of the MIT License, a
+// copy of which should be located in the distribution where this
+// file was obtained (LICENSE.txt). A copy of the license may also be
+// found online at https://opensource.org/licenses/MIT.
+//
+
+#include <string.h>
+
+#include <nng/nng.h>
+#include <nng/protocol/bus0/bus.h>
+
+#include "acutest.h"
+#include "testutil.h"
+
+void
+test_bug1247(void)
+{
+ nng_socket bus1, bus2;
+ char addr[64];
+
+ testutil_scratch_addr("tcp", sizeof(addr), addr);
+
+ TEST_NNG_PASS(nng_bus0_open(&bus1));
+ TEST_NNG_PASS(nng_bus0_open(&bus2));
+
+ TEST_NNG_PASS(nng_listen(bus1, addr, NULL, 0));
+ TEST_NNG_FAIL(nng_listen(bus2, addr, NULL, 0), NNG_EADDRINUSE);
+
+ TEST_NNG_PASS(nng_close(bus2));
+ TEST_NNG_PASS(nng_close(bus1));
+}
+
+TEST_LIST = {
+ { "bug1247", test_bug1247 },
+ { NULL, NULL },
+};