27 static_assert(
stk::Min(10, 20) == 10,
"Min failed at compile time");
28 static_assert(
stk::Max(10, 20) == 20,
"Max failed at compile time");
42 CHECK_EQUAL(2147483647,
stk::Max(0, 2147483647));
59 CHECK_EQUAL(1, result);
75TEST(UserTask, GetStackSize)
84TEST(UserTask, GetStackSizeBytes)
110 CHECK_EQUAL((
size_t)&task, task.
GetId());
111 CHECK_EQUAL((
size_t)&taskw, taskw.
GetId());
118TEST(UserTask, TaskWUnsupportedHrt)
127 CHECK_TEXT(
false,
"expecting assertion - task with weights do not support HRT");
147 CHECK_TRUE(NULL != wrapper.
GetStack());
148 CHECK_EQUAL((
size_t *)&memory, wrapper.
GetStack());
157 CHECK_EQUAL(
sizeof(memory) /
sizeof(
size_t), wrapper.
GetStackSize());
177 ListEntry(int32_t
id) : m_id(
id) {}
187 CHECK_EQUAL_ZERO(list.GetSize());
188 CHECK_TRUE(list.IsEmpty());
189 CHECK_TRUE(NULL == list.GetFirst());
190 CHECK_TRUE(NULL == list.GetLast());
198 ListEntry e1(1), e2(2), e3(3);
201 CHECK_EQUAL(&e1, list.GetFirst());
202 CHECK_EQUAL(&e1, list.GetLast());
203 CHECK_EQUAL(&list, e1.GetHead());
206 CHECK_EQUAL(&e2, list.GetFirst());
207 CHECK_EQUAL(&e1, list.GetLast());
210 CHECK_EQUAL(&e3, list.GetFirst());
211 CHECK_EQUAL(&e1, list.GetLast());
213 CHECK_EQUAL(3, list.GetSize());
219 ListEntry e1(1), e2(2), e3(3);
222 CHECK_EQUAL(&e1, list.GetFirst());
223 CHECK_EQUAL(&e1, list.GetLast());
224 CHECK_EQUAL(&list, e1.GetHead());
227 CHECK_EQUAL(&e1, list.GetFirst());
228 CHECK_EQUAL(&e2, list.GetLast());
231 CHECK_EQUAL(&e1, list.GetFirst());
232 CHECK_EQUAL(&e3, list.GetLast());
234 CHECK_EQUAL(3, list.GetSize());
240 ListEntry e1(1), e2(2), e3(3);
248 CHECK_EQUAL(&e2, list.GetFirst());
249 CHECK_EQUAL(&e3, list.GetLast());
253 CHECK_EQUAL(&e3, list.GetFirst());
254 CHECK_EQUAL(&e3, list.GetLast());
258 CHECK_EQUAL_ZERO(list.GetSize());
259 CHECK_TRUE(list.IsEmpty());
260 CHECK_TRUE(NULL == list.GetFirst());
261 CHECK_TRUE(NULL == list.GetLast());
267 ListEntry e1(1), e2(2), e3(3);
275 CHECK_EQUAL(&e1, list.GetFirst());
276 CHECK_EQUAL(&e2, list.GetLast());
280 CHECK_EQUAL(&e1, list.GetFirst());
281 CHECK_EQUAL(&e1, list.GetLast());
285 CHECK_EQUAL_ZERO(list.GetSize());
286 CHECK_TRUE(list.IsEmpty());
287 CHECK_TRUE(NULL == list.GetFirst());
288 CHECK_TRUE(NULL == list.GetLast());
294 ListEntry e1(1), e2(2), e3(3);
302 CHECK_EQUAL_ZERO(list.GetSize());
303 CHECK_TRUE(list.IsEmpty());
304 CHECK_TRUE(NULL == list.GetFirst());
305 CHECK_TRUE(NULL == list.GetLast());
311 ListEntry e1(1), e2(2), e3(3);
317 ListHead::DLEntryType *itr = list.GetFirst();
318 CHECK_EQUAL(&e1, itr);
320 itr = itr->GetNext();
321 CHECK_EQUAL(&e2, itr);
323 itr = itr->GetNext();
324 CHECK_EQUAL(&e3, itr);
326 itr = itr->GetNext();
327 CHECK_EQUAL(&e1, itr);
333 ListEntry e1(1), e2(2), e3(3);
340 list.RelinkTo(list2);
342 CHECK_EQUAL_ZERO(list.GetSize());
343 CHECK_TRUE(list.IsEmpty());
344 CHECK_TRUE(NULL == list.GetFirst());
345 CHECK_TRUE(NULL == list.GetLast());
347 CHECK_EQUAL(3, list2.GetSize());
348 CHECK_EQUAL(&list2, e1.GetHead());
349 CHECK_EQUAL(&list2, e2.GetHead());
350 CHECK_EQUAL(&list2, e3.GetHead());
Namespace of STK package.
constexpr T Max(T a, T b) noexcept
Compile-time maximum of two values.
constexpr T Min(T a, T b) noexcept
Compile-time minimum of two values.
@ STACK_SIZE_MIN
Minimum stack size in elements of Word. Used as a lower bound for all stack allocations (user task,...
Namespace of the test inventory.
TestContext g_TestContext
Global instance of the TestContext.
virtual const char * GetTraceName() const
Override in subclass to supply a name for SEGGER SystemView tracing. Returns NULL by default.
size_t GetStackSizeBytes() const
Get size of the memory in bytes.
virtual TId GetId() const
Get object's own address as its Id. Unique per task instance, requires no manual assignment.
size_t GetStackSize() const
Get number of elements of the stack memory array.
virtual int32_t GetWeight() const
Default weight of 1. Override in subclass if custom scheduling weight is needed.
virtual const char * GetTraceName() const
Override in subclass to supply a name for SEGGER SystemView tracing. Returns NULL by default.
size_t GetStackSize() const
Get number of elements of the stack memory array.
virtual int32_t GetWeight() const
Returns the compile-time weight _Weight.
virtual void OnDeadlineMissed(uint32_t duration)
Hard Real-Time mode is unsupported for weighted tasks. Triggers an assertion if called.
virtual TId GetId() const
Get object's own address as its Id. Unique per task instance, requires no manual assignment.
size_t GetStackSizeBytes() const
Get size of the memory in bytes.
Adapts an externally-owned stack memory array to the IStackMemory interface.
size_t GetStackSize() const
Get number of elements in the wrapped stack array.
StackMemoryDef< _StackSize >::Type MemoryType
The concrete array type that this wrapper accepts, equivalent to StackMemoryDef<_StackSize>::Type.
size_t GetStackSizeBytes() const
Get size of the wrapped stack array in bytes.
Word * GetStack() const
Get pointer to the first element of the wrapped stack array.
Intrusive doubly-linked list container. Manages a collection of DListEntry nodes embedded in host obj...
Intrusive doubly-linked list node. Embed this as a base class in any object (T) that needs to partici...
Throwable class for catching assertions from STK_ASSERT_HANDLER().
Task mock for SwitchStrategySmoothWeightedRoundRobin and similar algorithms.