|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Comprehensive tests for TimeoutQueue class. More...
#include <gtest/gtest.h>#include <stdexcept>#include <atomic>#include <chrono>#include <thread>#include <vector>#include <mutex>#include <condition_variable>#include <timeoutQueue.H>Go to the source code of this file.
Classes | |
| class | TestEvent |
| class | SignalingEvent |
| class | TimingEvent |
| class | ReschedulingEvent |
| class | TimeoutQueueEnvironment |
Functions | |
| static Time | time_from_now_ms (int ms) |
| TEST (TimeoutQueueTest, ScheduleAndExecuteSingleEvent) | |
| TEST (TimeoutQueueTest, EventExecutionStatus) | |
| TEST (TimeoutQueueTest, ScheduleWithExplicitTime) | |
| TEST (TimeoutQueueTest, GetAbsoluteTime) | |
| TEST (TimeoutQueueTest, CancelEventBeforeExecution) | |
| TEST (TimeoutQueueTest, CancelEventNotInQueue) | |
| TEST (TimeoutQueueTest, CancelDeleteEvent) | |
| TEST (TimeoutQueueTest, CancelDeleteNullEvent) | |
| TEST (TimeoutQueueTest, RescheduleEvent) | |
| TEST (TimeoutQueueTest, RescheduleNotInQueue) | |
| TEST (TimeoutQueueTest, SelfReschedulingEvent) | |
| TEST (TimeoutQueueTest, MultipleEventsExecuteInOrder) | |
| TEST (TimeoutQueueTest, ManyEventsStressTest) | |
| TEST (TimeoutQueueTest, EventWithImmediateTime) | |
| TEST (TimeoutQueueTest, EventThrowsException) | |
| TEST (TimeoutQueueTest, SetForDeletion) | |
| TEST (TimeoutQueueTest, TimingAccuracy) | |
| TEST (TimeoutQueueTest, ConcurrentScheduling) | |
| TEST (TimeoutQueueTest, ConcurrentCancellation) | |
| TEST (TimeoutQueueTest, SizeAndIsEmpty) | |
| TEST (TimeoutQueueTest, IsRunning) | |
| TEST (TimeoutQueueTest, ScheduleAfterMs) | |
| TEST (TimeoutQueueTest, NextEventTime) | |
| TEST (TimeoutQueueTest, ExecutedStatus) | |
| TEST (TimeoutQueueTest, ClearAll) | |
| TEST (TimeoutQueueTest, Statistics) | |
| TEST (TimeoutQueueTest, ResetStats) | |
| TEST (TimeoutQueueTest, PauseAndResume) | |
| TEST (TimeoutQueueTest, WaitUntilEmpty) | |
| TEST (TimeoutQueueTest, WaitUntilEmptyTimeout) | |
| TEST (TimeoutQueueTest, WaitUntilEmptyAfterCancel) | |
| TEST (TimeoutQueueTest, WaitUntilEmptyAfterCancelDelete) | |
| TEST (TimeoutQueueTest, EventName) | |
| TEST (TimeoutQueueTest, CompletionCallback) | |
| TEST (TimeoutQueueTest, CompletionCallbackOnCancel) | |
| TEST (TimeoutQueueTest, EventId) | |
| TEST (TimeoutQueueTest, FindById) | |
| TEST (TimeoutQueueTest, CancelById) | |
| TEST (TimeoutQueueTest, CancelByIdWithCallback) | |
| TEST (TimeoutQueueTest, DestructorWithoutShutdown) | |
| TEST (TimeoutQueueTest, CancelBeforeDeleteIsSafe) | |
| TEST (TimeoutQueueTest, CancelDuringTimeout) | |
| TEST (TimeoutQueueTest, RescheduleDuringTimeout) | |
| TEST (TimeoutQueueTest, NullEventValidation) | |
| TEST (TimeoutQueueTest, InvalidNsecValidation) | |
| TEST (TimeoutQueueTest, ScheduleSameEventTwiceThrows) | |
| TEST (TimeoutQueueTest, ShutdownCancelsPendingEventsAndInvokesCallback) | |
| TEST (TimeoutQueueTest, CancelDeleteEventCallback) | |
| TEST (TimeoutQueueTest, CancelDeleteExecutingEvent) | |
| TEST (TimeoutQueueTest, CallbackReceivesNullptrOnlyForDeleted) | |
| TEST (TimeoutQueueTest, CompletionCallbackOrderCorrect) | |
| TEST (TimeoutQueueTest, CompletionCallbackCanClearAllWithoutDeadlock) | |
| TEST (TimeoutQueueTest, MultipleEventsWithSameTime) | |
| int | main (int argc, char **argv) |
Variables | |
| static TimeoutQueue * | g_queue = nullptr |
Comprehensive tests for TimeoutQueue class.
Note: Updated to reflect header Doxygen group changes.
Note: TimeoutQueue is a singleton (only one instance allowed). All tests share a single global queue instance.
Definition in file timeoutQueue_test.cc.
| int main | ( | int | argc, |
| char ** | argv | ||
| ) |
Definition at line 1340 of file timeoutQueue_test.cc.
References Aleph::maps().
| TEST | ( | TimeoutQueueTest | , |
| CallbackReceivesNullptrOnlyForDeleted | |||
| ) |
Definition at line 1212 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_delete_event(), TimeoutQueue::cancel_event(), TimeoutQueue::Event::Canceled, TimeoutQueue::Event::Deleted, TimeoutQueue::Event::Executed, g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| CancelBeforeDeleteIsSafe | |||
| ) |
Definition at line 949 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_event(), g_queue, TimeoutQueue::Event::In_Queue, Aleph::maps(), output, TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| CancelById | |||
| ) |
Definition at line 866 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_by_id(), TimeoutQueue::Event::Canceled, g_queue, TimeoutQueue::Event::InvalidId, TimeoutQueue::is_empty(), Aleph::maps(), TimeoutQueue::schedule_event(), TimeoutQueue::size(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| CancelByIdWithCallback | |||
| ) |
Definition at line 899 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_by_id(), TimeoutQueue::Event::Canceled, g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| CancelDeleteEvent | |||
| ) |
Definition at line 242 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_delete_event(), g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| CancelDeleteEventCallback | |||
| ) |
Definition at line 1132 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_delete_event(), TimeoutQueue::Event::Deleted, g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| CancelDeleteExecutingEvent | |||
| ) |
Definition at line 1155 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_delete_event(), TimeoutQueue::Event::Deleted, TimeoutQueue::Event::EventFct(), g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), TimeoutQueue::Event::set_completion_callback(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| CancelDeleteNullEvent | |||
| ) |
Definition at line 252 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_delete_event(), g_queue, and Aleph::maps().
| TEST | ( | TimeoutQueueTest | , |
| CancelDuringTimeout | |||
| ) |
Definition at line 1003 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_event(), TimeoutQueue::canceled_count(), TimeoutQueue::executed_count(), g_queue, Aleph::maps(), TimeoutQueue::reset_stats(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| CancelEventBeforeExecution | |||
| ) |
Definition at line 215 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_event(), TimeoutQueue::Event::Canceled, g_queue, TimeoutQueue::Event::In_Queue, Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| CancelEventNotInQueue | |||
| ) |
Definition at line 232 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_event(), g_queue, Aleph::maps(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| ClearAll | |||
| ) |
Definition at line 596 of file timeoutQueue_test.cc.
References TimeoutQueue::Event::Canceled, TimeoutQueue::clear_all(), g_queue, TimeoutQueue::is_empty(), Aleph::maps(), TimeoutQueue::schedule_event(), TimeoutQueue::size(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| CompletionCallback | |||
| ) |
Definition at line 780 of file timeoutQueue_test.cc.
References TimeoutQueue::Event::Executed, g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| CompletionCallbackCanClearAllWithoutDeadlock | |||
| ) |
Definition at line 1286 of file timeoutQueue_test.cc.
References TimeoutQueue::clear_all(), g_queue, TimeoutQueue::is_empty(), Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| CompletionCallbackOnCancel | |||
| ) |
Definition at line 801 of file timeoutQueue_test.cc.
References TimeoutQueue::Event::Canceled, TimeoutQueue::clear_all(), g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| CompletionCallbackOrderCorrect | |||
| ) |
Definition at line 1257 of file timeoutQueue_test.cc.
References TimeoutQueue::Event::Executed, g_queue, Aleph::maps(), TimeoutQueue::Event::Out_Queue, TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| ConcurrentCancellation | |||
| ) |
Definition at line 474 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_event(), g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), Aleph::HTList::size(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| ConcurrentScheduling | |||
| ) |
Definition at line 437 of file timeoutQueue_test.cc.
References g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| DestructorWithoutShutdown | |||
| ) |
Definition at line 922 of file timeoutQueue_test.cc.
References Aleph::maps(), output, TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| EventExecutionStatus | |||
| ) |
Definition at line 171 of file timeoutQueue_test.cc.
References g_queue, TimeoutQueue::Event::In_Queue, Aleph::maps(), TimeoutQueue::Event::Out_Queue, TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| EventId | |||
| ) |
Definition at line 823 of file timeoutQueue_test.cc.
References TimeoutQueue::Event::InvalidId, Aleph::maps(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| EventName | |||
| ) |
Definition at line 761 of file timeoutQueue_test.cc.
References TimeoutQueue::Event::EventFct(), Aleph::maps(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| EventThrowsException | |||
| ) |
Definition at line 380 of file timeoutQueue_test.cc.
References g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| EventWithImmediateTime | |||
| ) |
Definition at line 367 of file timeoutQueue_test.cc.
References g_queue, Aleph::maps(), read_current_time(), and TimeoutQueue::schedule_event().
| TEST | ( | TimeoutQueueTest | , |
| ExecutedStatus | |||
| ) |
Definition at line 583 of file timeoutQueue_test.cc.
References TimeoutQueue::Event::Executed, g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| FindById | |||
| ) |
Definition at line 837 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_event(), TimeoutQueue::find_by_id(), g_queue, TimeoutQueue::Event::InvalidId, Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| GetAbsoluteTime | |||
| ) |
Definition at line 199 of file timeoutQueue_test.cc.
References Aleph::maps(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| InvalidNsecValidation | |||
| ) |
Definition at line 1068 of file timeoutQueue_test.cc.
References Aleph::maps(), read_current_time(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| IsRunning | |||
| ) |
Definition at line 541 of file timeoutQueue_test.cc.
References g_queue, TimeoutQueue::is_running(), and Aleph::maps().
| TEST | ( | TimeoutQueueTest | , |
| ManyEventsStressTest | |||
| ) |
Definition at line 340 of file timeoutQueue_test.cc.
References g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| MultipleEventsExecuteInOrder | |||
| ) |
Definition at line 305 of file timeoutQueue_test.cc.
References g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), Aleph::HTList::size(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| MultipleEventsWithSameTime | |||
| ) |
Definition at line 1309 of file timeoutQueue_test.cc.
References g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| NextEventTime | |||
| ) |
Definition at line 559 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_event(), g_queue, Aleph::maps(), TimeoutQueue::next_event_time(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| NullEventValidation | |||
| ) |
Definition at line 1058 of file timeoutQueue_test.cc.
References g_queue, Aleph::maps(), TimeoutQueue::reschedule_event(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| PauseAndResume | |||
| ) |
Definition at line 674 of file timeoutQueue_test.cc.
References g_queue, TimeoutQueue::is_paused(), Aleph::maps(), TimeoutQueue::pause(), TimeoutQueue::reset_stats(), TimeoutQueue::resume(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| RescheduleDuringTimeout | |||
| ) |
Definition at line 1032 of file timeoutQueue_test.cc.
References g_queue, Aleph::maps(), TimeoutQueue::reschedule_event(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| RescheduleEvent | |||
| ) |
Definition at line 263 of file timeoutQueue_test.cc.
References g_queue, Aleph::maps(), TimeoutQueue::reschedule_event(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| RescheduleNotInQueue | |||
| ) |
Definition at line 279 of file timeoutQueue_test.cc.
References g_queue, Aleph::maps(), TimeoutQueue::reschedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| ResetStats | |||
| ) |
Definition at line 655 of file timeoutQueue_test.cc.
References TimeoutQueue::canceled_count(), TimeoutQueue::executed_count(), g_queue, Aleph::maps(), TimeoutQueue::reset_stats(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| ScheduleAfterMs | |||
| ) |
Definition at line 546 of file timeoutQueue_test.cc.
References g_queue, Aleph::maps(), TimeoutQueue::schedule_after_ms(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| ScheduleAndExecuteSingleEvent | |||
| ) |
Definition at line 144 of file timeoutQueue_test.cc.
References Aleph::completed(), TimeoutQueue::Event::Executed, g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| ScheduleSameEventTwiceThrows | |||
| ) |
Definition at line 1095 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_event(), g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| ScheduleWithExplicitTime | |||
| ) |
Definition at line 186 of file timeoutQueue_test.cc.
References g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| SelfReschedulingEvent | |||
| ) |
Definition at line 289 of file timeoutQueue_test.cc.
References g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| SetForDeletion | |||
| ) |
Definition at line 400 of file timeoutQueue_test.cc.
References Aleph::maps(), time_from_now_ms(), and TimeoutQueue::Event::To_Delete.
| TEST | ( | TimeoutQueueTest | , |
| ShutdownCancelsPendingEventsAndInvokesCallback | |||
| ) |
Definition at line 1104 of file timeoutQueue_test.cc.
References TimeoutQueue::Event::Canceled, TimeoutQueue::is_running(), Aleph::maps(), TimeoutQueue::schedule_event(), TimeoutQueue::shutdown(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| SizeAndIsEmpty | |||
| ) |
Definition at line 516 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_event(), g_queue, TimeoutQueue::is_empty(), Aleph::maps(), TimeoutQueue::schedule_event(), TimeoutQueue::size(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| Statistics | |||
| ) |
Definition at line 619 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_event(), TimeoutQueue::canceled_count(), TimeoutQueue::executed_count(), g_queue, Aleph::maps(), TimeoutQueue::reset_stats(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| TimingAccuracy | |||
| ) |
Definition at line 414 of file timeoutQueue_test.cc.
References g_queue, Aleph::maps(), TimeoutQueue::schedule_event(), and time_from_now_ms().
| TEST | ( | TimeoutQueueTest | , |
| WaitUntilEmpty | |||
| ) |
Definition at line 700 of file timeoutQueue_test.cc.
References Aleph::completed(), g_queue, TimeoutQueue::is_empty(), Aleph::maps(), TimeoutQueue::schedule_event(), time_from_now_ms(), and TimeoutQueue::wait_until_empty().
| TEST | ( | TimeoutQueueTest | , |
| WaitUntilEmptyAfterCancel | |||
| ) |
Definition at line 736 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_event(), g_queue, TimeoutQueue::is_empty(), Aleph::maps(), TimeoutQueue::schedule_event(), time_from_now_ms(), and TimeoutQueue::wait_until_empty().
| TEST | ( | TimeoutQueueTest | , |
| WaitUntilEmptyAfterCancelDelete | |||
| ) |
Definition at line 749 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_delete_event(), g_queue, TimeoutQueue::is_empty(), Aleph::maps(), TimeoutQueue::schedule_event(), time_from_now_ms(), and TimeoutQueue::wait_until_empty().
| TEST | ( | TimeoutQueueTest | , |
| WaitUntilEmptyTimeout | |||
| ) |
Definition at line 721 of file timeoutQueue_test.cc.
References TimeoutQueue::cancel_event(), Aleph::completed(), g_queue, TimeoutQueue::is_empty(), Aleph::maps(), TimeoutQueue::schedule_event(), time_from_now_ms(), and TimeoutQueue::wait_until_empty().
|
static |
Definition at line 27 of file timeoutQueue_test.cc.
References Aleph::maps(), read_current_time(), and time_plus_msec().
Referenced by ReschedulingEvent::EventFct(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), and TEST().
|
static |
Definition at line 24 of file timeoutQueue_test.cc.
Referenced by TimeoutQueueEnvironment::SetUp(), TimeoutQueueEnvironment::TearDown(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), and TEST().