From 25873b4fad8a5afbf5c539a9b9bb9659ce43c02e Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sat, 30 Nov 2024 12:19:10 -0500 Subject: [PATCH] tests: tcp test converted to NUTS TCPv6 not done yet since that needs special work to be conditionalized. Also tcpsupp remains to be converted. --- src/sp/transport/tcp/tcp_test.c | 42 ++++++++++++++++++++++- tests/CMakeLists.txt | 1 - tests/tcp.c | 60 --------------------------------- 3 files changed, 41 insertions(+), 62 deletions(-) delete mode 100644 tests/tcp.c diff --git a/src/sp/transport/tcp/tcp_test.c b/src/sp/transport/tcp/tcp_test.c index 82abcae1b..482d4ff4f 100644 --- a/src/sp/transport/tcp/tcp_test.c +++ b/src/sp/transport/tcp/tcp_test.c @@ -238,8 +238,47 @@ test_tcp_recv_max(void) NUTS_CLOSE(s1); } -NUTS_TESTS = { +static void +check_props_v4(nng_msg *msg) +{ + nng_pipe p; + size_t z; + nng_sockaddr la; + nng_sockaddr ra; + bool b; + + p = nng_msg_get_pipe(msg); + NUTS_TRUE(nng_pipe_id(p) > 0); + NUTS_PASS(nng_pipe_get_addr(p, NNG_OPT_LOCADDR, &la)); + NUTS_FAIL(nng_pipe_get_size(p, NNG_OPT_LOCADDR, &z), NNG_EBADTYPE); + NUTS_TRUE(la.s_family == NNG_AF_INET); + NUTS_TRUE(la.s_in.sa_port != 0); + NUTS_TRUE(la.s_in.sa_addr == htonl(0x7f000001)); + + NUTS_PASS(nng_pipe_get_addr(p, NNG_OPT_REMADDR, &ra)); + NUTS_TRUE(ra.s_family == NNG_AF_INET); + NUTS_TRUE(ra.s_in.sa_port != 0); + NUTS_TRUE(ra.s_in.sa_addr == htonl(0x7f000001)); + NUTS_TRUE(ra.s_in.sa_port != la.s_in.sa_port); + NUTS_FAIL(nng_pipe_get_size(p, NNG_OPT_REMADDR, &z), NNG_EBADTYPE); + + NUTS_PASS(nng_pipe_get_bool(p, NNG_OPT_TCP_KEEPALIVE, &b)); + NUTS_TRUE(b == false); // default + + NUTS_PASS(nng_pipe_get_bool(p, NNG_OPT_TCP_NODELAY, &b)); + NUTS_TRUE(b); // default +} + +void +test_tcp_props_v4(void) +{ + nuts_tran_msg_props("tcp4", check_props_v4); +} +NUTS_DECLARE_TRAN_TESTS(tcp) + +NUTS_TESTS = { + NUTS_INSERT_TRAN_TESTS(tcp), { "tcp wild card connect fail", test_tcp_wild_card_connect_fail }, { "tcp wild card bind", test_tcp_wild_card_bind }, { "tcp port zero bind", test_tcp_port_zero_bind }, @@ -249,5 +288,6 @@ NUTS_TESTS = { { "tcp keep alive option", test_tcp_keep_alive_option }, { "tcp recv max", test_tcp_recv_max }, { "tcp ipv6", test_tcp_ipv6 }, + { "tcp props v4", test_tcp_props_v4 }, { NULL, NULL }, }; diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index f6008c415..4e1d23311 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -132,7 +132,6 @@ add_nng_test(nonblock 60) add_nng_test(scalability 20 ON) add_nng_test(synch 5) add_nng_test(tcpsupp 10) -add_nng_test(tcp 180) add_nng_test(tcp6 60) add_nng_test(ws 30) add_nng_test(wss 30) diff --git a/tests/tcp.c b/tests/tcp.c deleted file mode 100644 index 2c80035cd..000000000 --- a/tests/tcp.c +++ /dev/null @@ -1,60 +0,0 @@ -// -// Copyright 2022 Staysail Systems, Inc. -// Copyright 2018 Capitar IT Group BV -// Copyright 2018 Devolutions -// -// 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. -// - -#ifndef _WIN32 -#include -#endif - -#include -#include - -#include "convey.h" -#include "stubs.h" -#include "trantest.h" - -// TCP tests. - -static int -check_props_v4(nng_msg *msg) -{ - nng_pipe p; - size_t z; - nng_sockaddr la; - nng_sockaddr ra; - bool b; - - p = nng_msg_get_pipe(msg); - So(nng_pipe_id(p) > 0); - So(nng_pipe_get_addr(p, NNG_OPT_LOCADDR, &la) == 0); - So(la.s_family == NNG_AF_INET); - So(la.s_in.sa_port == htons(trantest_port - 1)); - So(la.s_in.sa_port != 0); - So(la.s_in.sa_addr == htonl(0x7f000001)); - - // untyped - So(nng_pipe_get_addr(p, NNG_OPT_REMADDR, &ra) == 0); - So(ra.s_family == NNG_AF_INET); - So(ra.s_in.sa_port != 0); - So(ra.s_in.sa_addr == htonl(0x7f000001)); - - So(nng_pipe_get_size(p, NNG_OPT_REMADDR, &z) == NNG_EBADTYPE); - - So(nng_pipe_get_bool(p, NNG_OPT_TCP_KEEPALIVE, &b) == 0); - So(b == false); // default - - So(nng_pipe_get_bool(p, NNG_OPT_TCP_NODELAY, &b) == 0); - So(b == true); // default - - return (0); -} - -TestMain("TCP Transport", - { trantest_test_extended("tcp://127.0.0.1:", check_props_v4); })