|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Tests for Aleph::MpscQueue (tpl_mpsc_queue.H). More...
#include <gtest/gtest.h>#include "concurrency_test_utils.H"#include <tpl_mpsc_queue.H>#include <algorithm>#include <atomic>#include <chrono>#include <memory>#include <stdexcept>#include <string>#include <vector>Go to the source code of this file.
Functions | |
| TEST (MpscQueue, DefaultConstructedQueueIsEmpty) | |
| TEST (MpscQueue, PushAndPopSingleThreaded) | |
| TEST (MpscQueue, TryPopOptionalOverload) | |
| TEST (MpscQueue, FifoOrderIsPreservedForASingleProducer) | |
| TEST (MpscQueue, MoveOnlyPayloadIsSupported) | |
| TEST (MpscQueue, ElementLifetimesAreBalancedAcrossPushAndPop) | |
| TEST (MpscQueue, DestructorReleasesAllRemainingElements) | |
| TEST (MpscQueue, FailedEmplaceLeavesQueueUnchanged) | |
| TEST (MpscQueue, SingleProducerSingleConsumerConservesAllElements) | |
| TEST (MpscQueue, MultiProducerSingleConsumerConservesEveryElementExactlyOnce) | |
| TEST (MpscQueue, RandomizedOperationTraceMatchesSequentialReferenceModel) | |
Tests for Aleph::MpscQueue (tpl_mpsc_queue.H).
Definition in file mpsc_queue_test.cc.
| TEST | ( | MpscQueue | , |
| DefaultConstructedQueueIsEmpty | |||
| ) |
Definition at line 98 of file mpsc_queue_test.cc.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::MpscQueue< T >::is_empty().
| TEST | ( | MpscQueue | , |
| DestructorReleasesAllRemainingElements | |||
| ) |
Definition at line 197 of file mpsc_queue_test.cc.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::MpscQueue< T >::emplace().
| TEST | ( | MpscQueue | , |
| ElementLifetimesAreBalancedAcrossPushAndPop | |||
| ) |
Definition at line 175 of file mpsc_queue_test.cc.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::MpscQueue< T >::emplace(), out, and Aleph::MpscQueue< T >::try_pop().
| TEST | ( | MpscQueue | , |
| FailedEmplaceLeavesQueueUnchanged | |||
| ) |
Definition at line 209 of file mpsc_queue_test.cc.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::MpscQueue< T >::emplace(), Aleph::MpscQueue< T >::is_empty(), out, and Aleph::MpscQueue< T >::try_pop().
| TEST | ( | MpscQueue | , |
| FifoOrderIsPreservedForASingleProducer | |||
| ) |
Definition at line 142 of file mpsc_queue_test.cc.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::MpscQueue< T >::is_empty(), N, out, Aleph::MpscQueue< T >::push(), and Aleph::MpscQueue< T >::try_pop().
| TEST | ( | MpscQueue | , |
| MoveOnlyPayloadIsSupported | |||
| ) |
Definition at line 158 of file mpsc_queue_test.cc.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::MpscQueue< T >::emplace(), out, Aleph::MpscQueue< T >::push(), and Aleph::MpscQueue< T >::try_pop().
| TEST | ( | MpscQueue | , |
| MultiProducerSingleConsumerConservesEveryElementExactlyOnce | |||
| ) |
Definition at line 252 of file mpsc_queue_test.cc.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Testing::Producer_Consumer_Stress_Config::consumers, Aleph::MpscQueue< T >::is_empty(), Aleph::Testing::Producer_Consumer_Stress_Config::items_per_producer, out, Aleph::Testing::Producer_Consumer_Stress_Config::producers, Aleph::MpscQueue< T >::push(), Aleph::Testing::run_producer_consumer_stress(), Aleph::Testing::Producer_Consumer_Stress_Config::timeout, Aleph::MpscQueue< T >::try_pop(), and value.
| TEST | ( | MpscQueue | , |
| PushAndPopSingleThreaded | |||
| ) |
Definition at line 104 of file mpsc_queue_test.cc.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::MpscQueue< T >::emplace(), Aleph::MpscQueue< T >::is_empty(), out, Aleph::MpscQueue< T >::push(), and Aleph::MpscQueue< T >::try_pop().
| TEST | ( | MpscQueue | , |
| RandomizedOperationTraceMatchesSequentialReferenceModel | |||
| ) |
Definition at line 298 of file mpsc_queue_test.cc.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Testing::make_random_operation_trace(), out, and Aleph::MpscQueue< T >::push().
| TEST | ( | MpscQueue | , |
| SingleProducerSingleConsumerConservesAllElements | |||
| ) |
Definition at line 227 of file mpsc_queue_test.cc.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Testing::Producer_Consumer_Stress_Config::consumers, Aleph::MpscQueue< T >::is_empty(), Aleph::Testing::Producer_Consumer_Stress_Config::items_per_producer, out, Aleph::Testing::Producer_Consumer_Stress_Config::producers, Aleph::MpscQueue< T >::push(), Aleph::Testing::run_producer_consumer_stress(), Aleph::Testing::Producer_Consumer_Stress_Config::timeout, Aleph::MpscQueue< T >::try_pop(), and value.
| TEST | ( | MpscQueue | , |
| TryPopOptionalOverload | |||
| ) |
Definition at line 124 of file mpsc_queue_test.cc.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::MpscQueue< T >::push(), and Aleph::MpscQueue< T >::try_pop().