distortos  v0.4.0
object-oriented C++ RTOS for microcontrollers
MessageQueuePriorityTestCase.cpp File Reference

MessageQueuePriorityTestCase class implementation. More...

Include dependency graph for MessageQueuePriorityTestCase.cpp:

Namespaces

 distortos
 Top-level namespace of distortos project.
 
 distortos::test
 Functional tests of distortos project.
 

Typedefs

using distortos::test::anonymous_namespace{MessageQueuePriorityTestCase.cpp}::SequencePoints = std::pair< unsigned int, unsigned int >
 pair of sequence points More...
 
using distortos::test::anonymous_namespace{MessageQueuePriorityTestCase.cpp}::TestThreadFunction = void(SequenceAsserter &, SequencePoints, const QueueWrapper &)
 type of test thread function More...
 
using distortos::test::anonymous_namespace{MessageQueuePriorityTestCase.cpp}::Prepare = void(const QueueWrapper &)
 function executed to prepare queue for test More...
 
using distortos::test::anonymous_namespace{MessageQueuePriorityTestCase.cpp}::Trigger = bool(const QueueWrapper &, size_t, const ThreadParameters &)
 function executed on queue to trigger unblocking of test thread More...
 
using distortos::test::anonymous_namespace{MessageQueuePriorityTestCase.cpp}::FinalCheck = bool(const QueueWrapper &)
 function with final check of queue's contents after all test threads are terminated More...
 
using distortos::test::anonymous_namespace{MessageQueuePriorityTestCase.cpp}::Stage = std::tuple< const TestThreadFunction &, const Prepare *const, const Trigger *const, const FinalCheck *const >
 tuple with functions for one stage, Prepare and FinalCheck may be nullptr More...
 

Functions

bool distortos::test::anonymous_namespace{MessageQueuePriorityTestCase.cpp}::popFinalCheck (const QueueWrapper &queueWrapper)
 Final check for "pop" stage. More...
 
void distortos::test::anonymous_namespace{MessageQueuePriorityTestCase.cpp}::popPrepare (const QueueWrapper &queueWrapper)
 Prepares queue for "pop" stage - just fills it completely with increasing values. More...
 
void distortos::test::anonymous_namespace{MessageQueuePriorityTestCase.cpp}::popThread (SequenceAsserter &sequenceAsserter, const SequencePoints sequencePoints, const QueueWrapper &queueWrapper)
 QueueWrapper::pop() test thread. More...
 
bool distortos::test::anonymous_namespace{MessageQueuePriorityTestCase.cpp}::popTrigger (const QueueWrapper &queueWrapper, const size_t i, const ThreadParameters &)
 Trigger action with QueueWrapper::pop(). More...
 
void distortos::test::anonymous_namespace{MessageQueuePriorityTestCase.cpp}::pushThread (SequenceAsserter &sequenceAsserter, const SequencePoints sequencePoints, const QueueWrapper &queueWrapper)
 QueueWrapper::push() test thread. More...
 
bool distortos::test::anonymous_namespace{MessageQueuePriorityTestCase.cpp}::pushTrigger (const QueueWrapper &queueWrapper, size_t, const ThreadParameters &threadParameters)
 Trigger action with QueueWrapper::push(). More...
 
DynamicThread distortos::test::anonymous_namespace{MessageQueuePriorityTestCase.cpp}::makeTestThread (const TestThreadFunction &testThreadFunction, const unsigned int firstSequencePoint, const ThreadParameters &threadParameters, SequenceAsserter &sequenceAsserter, const QueueWrapper &queueWrapper)
 Builder of test threads. More...
 

Variables

constexpr bool distortos::test::anonymous_namespace{MessageQueuePriorityTestCase.cpp}::falseTrue [] {false, true}
 array with "false" and "true" bool values More...
 
constexpr size_t distortos::test::anonymous_namespace{MessageQueuePriorityTestCase.cpp}::testThreadStackSize {512}
 size of stack for test thread, bytes More...
 
const std::array< Stage, 2 > distortos::test::anonymous_namespace{MessageQueuePriorityTestCase.cpp}::stages
 test stages More...
 

Detailed Description

MessageQueuePriorityTestCase class implementation.

Author
Copyright (C) 2016-2017 Kamil Szczygiel http://www.distortec.com http://www.freddiechopin.info
License
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.