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

Test the message handling utility test code shared between net_ip tests. More...

#include "catch2/catch_test_macros.hpp"
#include <string_view>
#include <cstddef>
#include <cstdint>
#include <vector>
#include <algorithm>
#include <memory>
#include <future>
#include <iostream>
#include <ranges>
#include "asio/ip/udp.hpp"
#include "asio/buffer.hpp"
#include "utility/byte_array.hpp"
#include "buffer/shared_buffer.hpp"
#include "net_ip/basic_io_output.hpp"
#include "net_ip/queue_stats.hpp"
#include "shared_test/msg_handling.hpp"
#include "shared_test/mock_classes.hpp"
Include dependency graph for msg_handling_test.cpp:

Functions

void make_msg_test ()
 
template<typename F >
void make_msg_vec_test (F &&f)
 
template<typename F >
std::size_t msg_hdlr_stress_test (F &&f, std::string_view pre, char body_char, int num_msgs)
 
std::size_t msg_hdlr_stress_test_variable_len_msg (std::string_view pre, char body_char, int num_msgs)
 
std::size_t msg_hdlr_stress_test_cr_lf_text_msg (std::string_view pre, char body_char, int num_msgs)
 
std::size_t msg_hdlr_stress_test_lf_text_msg (std::string_view pre, char body_char, int num_msgs)
 
 TEST_CASE ("Message handling shared test utility, make msg", "[msg_handling] [make_msg]")
 
 TEST_CASE ("Message handling shared test utility, make msg vec", "[msg_handling] [make_msg_vec]")
 
 TEST_CASE ("Message handling shared test utility, msg hdlr function object", "[msg_handling] [msg_hdlr]")
 
 TEST_CASE ("Message handling shared test utility, msg hdlr function object async stress test", "[msg_handling] [msg_hdlr] [stress]")
 
 TEST_CASE ("Message handling shared test utility, output queue stats poll condition", "[msg_handling] [output_stats_cond]")
 
 TEST_CASE ("Message handling shared test utility, fixed size message handling", "[msg_handling] [fixed_size]")
 

Detailed Description

Test the message handling utility test code shared between net_ip tests.

The body of a msg is constructed of a preamble followed by a repeated char. There are three forms of messages:

  1. Variable len: header is 16 bit big endian integer containing length of body
  2. Text, CR LF: body is followed by Ascii CR and LF chars
  3. Text, LF: body is followed by Ascii LF char
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)