Chops Net IP
Loading...
Searching...
No Matches
tcp_connector_test.cpp File Reference

Test scenarios for tcp_connector detail class. More...

#include "catch2/catch_test_macros.hpp"
#include "asio/ip/tcp.hpp"
#include "asio/buffer.hpp"
#include "asio/io_context.hpp"
#include <system_error>
#include <cstddef>
#include <memory>
#include <utility>
#include <thread>
#include <future>
#include <chrono>
#include <functional>
#include <string_view>
#include <vector>
#include <deque>
#include <ranges>
#include <cassert>
#include "net_ip/detail/tcp_acceptor.hpp"
#include "net_ip/detail/tcp_connector.hpp"
#include "net_ip/basic_io_output.hpp"
#include "net_ip/io_type_decls.hpp"
#include "net_ip_component/worker.hpp"
#include "net_ip_component/error_delivery.hpp"
#include "net_ip_component/io_output_delivery.hpp"
#include "net_ip_component/output_queue_stats.hpp"
#include "shared_test/msg_handling.hpp"
#include "shared_test/msg_handling_start_funcs.hpp"
#include "buffer/shared_buffer.hpp"
#include "queue/wait_queue.hpp"
#include <iostream>
Include dependency graph for tcp_connector_test.cpp:

Functions

void no_start_io_state_chg (chops::net::tcp_io_interface, std::size_t, bool)
 
std::size_t start_fixed_connectors (int num_conns, std::size_t expected_cnt, test_counter &conn_cnt, chops::net::err_wait_q &err_wq)
 
void start_stop_connector (asio::io_context &ioc, int interval, chops::net::err_wait_q &err_wq)
 
std::size_t start_var_connectors (const vec_buf &in_msg_vec, int interval, int num_conns, std::string_view delim, chops::const_shared_buffer empty_msg, test_counter &conn_cnt, chops::net::err_wait_q &err_wq)
 
void perform_test (const vec_buf &in_msg_vec, const vec_buf &fixed_msg_vec, bool reply, int interval, int num_conns, std::string_view delim, const chops::const_shared_buffer &empty_msg)
 
 TEST_CASE ("Tcp connector test, var len msgs, one-way, interval 50, 1 connector", "[tcp_conn] [var_len_msg] [one_way] [interval_50] [connectors_1]")
 
 TEST_CASE ("Tcp connector test, var len msgs, one-way, interval 0, 1 connector", "[tcp_conn] [var_len_msg] [one_way] [interval_0] [connectors_1]")
 
 TEST_CASE ("Tcp connector test, var len msgs, two-way, interval 30, 1 connector", "[tcp_conn] [var_len_msg] [two_way] [interval_30] [connectors_1]")
 
 TEST_CASE ("Tcp connector test, var len msgs, two-way, interval 0, 1 connector, many msgs", "[tcp_conn] [var_len_msg] [two_way] [interval_0] [connectors_1]")
 
 TEST_CASE ("Tcp connector test, var len msgs, one-way, interval 0, 2 connectors", "[tcp_conn] [var_len_msg] [one_way] [interval_0] [connectors_2]")
 
 TEST_CASE ("Tcp connector test, var len msgs, two-way, interval 0, 2 connectors", "[tcp_conn] [var_len_msg] [two_way] [interval_0] [connectors_2]")
 
 TEST_CASE ("Tcp connector test, var len msgs, two-way, interval 0, 10 connectors, many msgs", "[tcp_conn] [var_len_msg] [two_way] [interval_0] [connectors_10] [many]")
 
 TEST_CASE ("Tcp connector test, CR / LF msgs, one-way, interval 20, 1 connectors", "[tcp_conn] [cr_lf_msg] [one_way] [interval_20] [connectors_1]")
 
 TEST_CASE ("Tcp connector test, CR / LF msgs, one-way, interval 30, 10 connectors", "[tcp_conn] [cr_lf_msg] [one_way] [interval_30] [connectors_10]")
 
 TEST_CASE ("Tcp connector test, CR / LF msgs, one-way, interval 0, 20 connectors", "[tcp_conn] [cr_lf_msg] [one_way] [interval_0] [connectors_20]")
 
 TEST_CASE ("Tcp connector test, CR / LF msgs, two-way, interval 10, 5 connectors", "[tcp_conn] [cr_lf_msg] [two_way] [interval_10] [connectors_5]")
 
 TEST_CASE ("Tcp connector test, CR / LF msgs, two-way, interval 0, 10 connectors, many msgs", "[tcp_conn] [cr_lf_msg] [two_way] [interval_0] [connectors_10] [many]")
 
 TEST_CASE ("Tcp connector test, LF msgs, one-way, interval 40, 1 connectors", "[tcp_conn] [lf_msg] [one_way] [interval_40] [connectors_1]")
 
 TEST_CASE ("Tcp connector test, LF msgs, one-way, interval 0, 15 connectors", "[tcp_conn] [lf_msg] [one_way] [interval_0] [connectors_15]")
 
 TEST_CASE ("Tcp connector test, LF msgs, two-way, interval 0, 15 connectors, many msgs", "[tcp_conn] [lf_msg] [two_way] [interval_0] [connectors_15] [many]")
 

Variables

const char * test_port_var = "30777"
 
const char * test_port_fixed = "30778"
 
const char * test_host = "localhost"
 
constexpr int num_msgs = 50
 
constexpr std::chrono::milliseconds tout { 800 }
 

Detailed Description

Test scenarios for tcp_connector detail class.

This test is similar to the tcp_acceptor_test code, except the Chops Net IP tcp_connector class instead of Asio blocking io calls.

Author
Cliff Green

Copyright (c) 2018-2025 by Cliff Green

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt)