![]() |
SuperTinyKernel™ RTOS 1.05.3
Lightweight, high-performance, deterministic, bare-metal C++ RTOS for resource-constrained embedded systems. MIT Open Source License.
|
#include <stk_config.h>#include <stk.h>#include <sync/stk_sync_mutex.h>#include <sync/stk_sync_cv.h>#include <assert.h>#include <string.h>#include "stktest_context.h"Go to the source code of this file.
Classes | |
| class | stk::test::condvar::NotifyOneWakesTask< _AccessMode > |
| Tests that NotifyOne() wakes exactly one waiting task per call. More... | |
| class | stk::test::condvar::NotifyAllWakesTask< _AccessMode > |
| Tests that NotifyAll() wakes every waiting task in one call. More... | |
| class | stk::test::condvar::TimeoutExpiresTask< _AccessMode > |
| Tests that Wait() returns false within the expected time when no notification arrives. More... | |
| class | stk::test::condvar::MutexReacquiredTask< _AccessMode > |
| Tests that Wait() atomically releases the mutex and re-acquires it before returning. More... | |
| class | stk::test::condvar::PredicateLoopTask< _AccessMode > |
| Tests the canonical spurious-wakeup-safe predicate loop pattern. More... | |
| class | stk::test::condvar::NotifyOneOrderTask< _AccessMode > |
| Tests that NotifyOne() releases waiters in FIFO arrival order. More... | |
| class | stk::test::condvar::NoWaitTimeoutTask< _AccessMode > |
| Tests that Wait(NO_WAIT) returns false immediately without blocking. More... | |
| class | stk::test::condvar::StressTestTask< _AccessMode > |
| Stress test of ConditionVariable under full five-task contention. More... | |
Namespaces | |
| namespace | stk |
| Namespace of STK package. | |
| namespace | stk::test |
| Namespace of the test inventory. | |
| namespace | stk::test::condvar |
| Namespace of ConditionVariable test. | |
Macros | |
| #define | _STK_CV_TEST_TASKS_MAX 5 |
| #define | _STK_CV_TEST_TIMEOUT 300 |
| #define | _STK_CV_TEST_SHORT_SLEEP 10 |
| #define | _STK_CV_TEST_LONG_SLEEP 100 |
| #define | _STK_CV_STACK_SIZE 256 |
| #define | STK_TASK static |
Functions | |
| void * | operator new (std::size_t, void *ptr) noexcept |
| void | operator delete (void *, void *) noexcept |
| static void | stk::test::condvar::ResetTestState () |
| static bool | NeedsExtendedTasks (const char *test_name) |
| template<class TaskType> | |
| static int32_t | RunTest (const char *test_name, int32_t param=0) |
| int | main (int argc, char **argv) |
Variables | |
| STK_TEST_DECL_ASSERT | |
| static volatile int32_t | stk::test::condvar::g_TestResult = 0 |
| static volatile int32_t | stk::test::condvar::g_SharedCounter = 0 |
| static volatile int32_t | stk::test::condvar::g_AcquisitionOrder [5] = {0} |
| static volatile int32_t | stk::test::condvar::g_OrderIndex = 0 |
| static volatile bool | stk::test::condvar::g_TestComplete = false |
| static volatile int32_t | stk::test::condvar::g_InstancesDone = 0 |
| static Kernel< KERNEL_DYNAMIC|KERNEL_SYNC, 5, SwitchStrategyRR, PlatformDefault > | stk::test::condvar::g_Kernel |
| static sync::Mutex | stk::test::condvar::g_TestMutex |
| static sync::ConditionVariable | stk::test::condvar::g_TestCond |
| #define _STK_CV_STACK_SIZE 256 |
Definition at line 32 of file test_condvar.cpp.
| #define _STK_CV_TEST_LONG_SLEEP 100 |
Definition at line 27 of file test_condvar.cpp.
Referenced by stk::test::condvar::MutexReacquiredTask< _AccessMode >::Run(), stk::test::condvar::NotifyAllWakesTask< _AccessMode >::Run(), stk::test::condvar::NotifyOneOrderTask< _AccessMode >::Run(), stk::test::condvar::NotifyOneWakesTask< _AccessMode >::Run(), stk::test::condvar::PredicateLoopTask< _AccessMode >::Run(), and stk::test::condvar::StressTestTask< _AccessMode >::Run().
| #define _STK_CV_TEST_SHORT_SLEEP 10 |
Definition at line 26 of file test_condvar.cpp.
Referenced by stk::test::condvar::MutexReacquiredTask< _AccessMode >::Run(), stk::test::condvar::NotifyAllWakesTask< _AccessMode >::Run(), stk::test::condvar::NotifyOneOrderTask< _AccessMode >::Run(), stk::test::condvar::NotifyOneWakesTask< _AccessMode >::Run(), stk::test::condvar::NoWaitTimeoutTask< _AccessMode >::Run(), stk::test::condvar::PredicateLoopTask< _AccessMode >::Run(), stk::test::condvar::StressTestTask< _AccessMode >::Run(), and stk::test::condvar::TimeoutExpiresTask< _AccessMode >::Run().
| #define _STK_CV_TEST_TASKS_MAX 5 |
Definition at line 24 of file test_condvar.cpp.
Referenced by stk::test::condvar::ResetTestState(), stk::test::condvar::NotifyAllWakesTask< _AccessMode >::Run(), stk::test::condvar::NotifyOneOrderTask< _AccessMode >::Run(), stk::test::condvar::PredicateLoopTask< _AccessMode >::Run(), and stk::test::condvar::StressTestTask< _AccessMode >::Run().
| #define _STK_CV_TEST_TIMEOUT 300 |
Definition at line 25 of file test_condvar.cpp.
Referenced by stk::test::condvar::MutexReacquiredTask< _AccessMode >::Run(), stk::test::condvar::NotifyAllWakesTask< _AccessMode >::Run(), stk::test::condvar::NotifyOneOrderTask< _AccessMode >::Run(), stk::test::condvar::NotifyOneWakesTask< _AccessMode >::Run(), stk::test::condvar::NoWaitTimeoutTask< _AccessMode >::Run(), stk::test::condvar::PredicateLoopTask< _AccessMode >::Run(), and stk::test::condvar::TimeoutExpiresTask< _AccessMode >::Run().
| #define STK_TASK static |
| int main | ( | int | argc, |
| char ** | argv ) |
Definition at line 635 of file test_condvar.cpp.
References stk::test::TestContext::DEFAULT_FAILURE_EXIT_CODE, stk::test::condvar::g_Kernel, RunTest(), stk::test::TestContext::ShowTestSuiteEpilogue(), stk::test::TestContext::ShowTestSuitePrologue(), and stk::test::TestContext::SUCCESS_EXIT_CODE.
|
static |
Definition at line 584 of file test_condvar.cpp.
Referenced by RunTest().
|
inlinenoexcept |
Definition at line 38 of file test_condvar.cpp.
|
inlinenoexcept |
Definition at line 37 of file test_condvar.cpp.
|
static |
Definition at line 595 of file test_condvar.cpp.
References stk::test::TestContext::DEFAULT_FAILURE_EXIT_CODE, stk::test::condvar::g_Kernel, stk::test::condvar::g_TestResult, NeedsExtendedTasks(), stk::test::condvar::ResetTestState(), STK_TASK, and stk::test::TestContext::SUCCESS_EXIT_CODE.
Referenced by main().
| STK_TEST_DECL_ASSERT |
Definition at line 22 of file test_condvar.cpp.