Wait Queue
|
Test scenarios for wait_queue
class template.
More...
#include <utility>
#include <functional>
#include <vector>
#include <string>
#include <set>
#include <optional>
#include <chrono>
#include <ranges>
#include <type_traits>
#include <thread>
#include <future>
#include <mutex>
#include <stop_token>
#include "catch2/catch_test_macros.hpp"
#include "catch2/catch_template_test_macros.hpp"
#include "queue/wait_queue.hpp"
#include "nonstd/ring_span.hpp"
#include "circular_buffer.hpp"
Typedefs | |
template<typename T > | |
using | set_elem = std::pair<int, T> |
template<typename T > | |
using | test_set = std::set<set_elem<T> > |
using | vv_float = std::vector<std::vector<float>> |
using | vv_wq = chops::wait_queue<vv_float> |
Functions | |
template<typename Q > | |
void | non_threaded_push_test (Q &wq, const typename Q::value_type &val, int count) |
template<typename Q > requires std::is_arithmetic_v<typename Q::value_type> | |
void | non_threaded_arithmetic_test (Q &wq, int count) |
template<typename Q > | |
void | non_threaded_test (Q &wq) |
template<typename T , typename Q > | |
void | read_func (std::stop_token stop_tok, Q &wq, test_set< T > &s, std::mutex &mut) |
template<typename T , typename Q > | |
void | write_func (std::stop_token stop_tok, Q &wq, int start, int slice, const T &val) |
template<typename T , typename Q > | |
bool | threaded_test (Q &wq, int num_readers, int num_writers, int slice, const T &val) |
TEMPLATE_TEST_CASE ("Non-threaded wait_queue test, deque", "[wait_queue] [non_threaded] [deque]", int, double, short, std::string) | |
TEMPLATE_TEST_CASE ("Non-threaded wait_queue test, ring_span", "[wait_queue] [non_threaded] [ring_span]", int, double, short, std::string) | |
TEMPLATE_TEST_CASE ("Non-threaded wait_queue test, circular_buffer", "[wait_queue] [non_threaded] [circular_buffer]", int, double, short, std::string) | |
TEST_CASE ("Non-threaded wait_queue test, testing copy construction without move construction", "[wait_queue] [no_move]") | |
TEST_CASE ("Non-threaded wait_queue test, testing move construction without copy construction", "[wait_queue] [no_copy]") | |
TEST_CASE ("Non-threaded wait_queue test, testing complex constructor and emplacement", "[wait_queue] [complex_type] [deque]") | |
std::size_t | vv_push_func (vv_wq &wq, std::size_t cnt) |
std::size_t | vv_pop_func (vv_wq &wq, std::size_t exp) |
TEST_CASE ("Vector of vector of float, move and copy", "[wait_queue] [float] [vector_vector_float]") | |
TEST_CASE ("Fixed size ring_span, testing wrap around with int type", "[wait_queue] [int] [ring_span_wrap_around]") | |
TEST_CASE ("Threaded wait queue, deque int", "[wait_queue] [threaded] [int] [deque]") | |
TEST_CASE ("Threaded wait queue, deque string", "[wait_queue] [threaded] [string] [deque]") | |
Variables | |
constexpr int | N = 40 |
const vv_float | data1 { { 42.0f, 43.0f }, { 63.0f, 66.0f, 69.0f}, { 7.0f } } |
const vv_float | data2 { { 8.0f }, { 0.0f }, { } } |
const vv_float | data3 { } |
Test scenarios for wait_queue
class template.
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)