From 52118e4dcbc105d2b83c774e001926aceb978488 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Tue, 26 Sep 2017 10:17:16 -0700 Subject: Add C++ test program, proving C++ consumers work. We fixed up the coverage flags for GNU C, but are not going to run the C++ tests when doing coverage (they fail linking gcov for reasons unknown.) --- tests/cplusplus_pair.cc | 66 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 tests/cplusplus_pair.cc (limited to 'tests/cplusplus_pair.cc') diff --git a/tests/cplusplus_pair.cc b/tests/cplusplus_pair.cc new file mode 100644 index 00000000..54a99737 --- /dev/null +++ b/tests/cplusplus_pair.cc @@ -0,0 +1,66 @@ +// +// Copyright 2017 Garrett D'Amore +// +// 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 "nng.h" + +#include + +#define SOCKET_ADDRESS "inproc://c++" + +int +main(int argc, char **argv) +{ + nng_socket s1; + nng_socket s2; + int rv; + size_t sz; + char buf[8]; + + if ((rv = nng_pair0_open(&s1)) != 0) { + throw nng_strerror(rv); + } + if ((rv = nng_pair0_open(&s2)) != 0) { + throw nng_strerror(rv); + } + if ((rv = nng_listen(s1, SOCKET_ADDRESS, NULL, 0)) != 0) { + throw nng_strerror(rv); + } + if ((rv = nng_dial(s2, SOCKET_ADDRESS, NULL, 0)) != 0) { + throw nng_strerror(rv); + } + if ((rv = nng_send(s2, (void *)"ABC", 4, 0)) != 0) { + throw nng_strerror(rv); + } + sz = sizeof (buf); + if ((rv = nng_recv(s1, buf, &sz, 0)) != 0) { + throw nng_strerror(rv); + } + if ((sz != 4) || (memcmp(buf, "ABC", 4) != 0)) { + throw "Contents did not match"; + } + if ((rv = nng_send(s1, (void *)"DEF", 4, 0)) != 0) { + throw nng_strerror(rv); + } + sz = sizeof (buf); + if ((rv = nng_recv(s2, buf, &sz, 0)) != 0) { + throw nng_strerror(rv); + } + if ((sz != 4) || (memcmp(buf, "DEF", 4) != 0)) { + throw "Contents did not match"; + } + if ((rv = nng_close(s1)) != 0) { + throw nng_strerror(rv); + } + if ((rv = nng_close(s2)) != 0) { + throw nng_strerror(rv); + } + + return (0); +} + -- cgit v1.2.3-70-g09d2