MCPcopy Create free account
hub / github.com/DISTORTEC/distortos / run_

Method run_

test/Thread/ThreadPriorityTestCase.cpp:77–117  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

75+---------------------------------------------------------------------------------------------------------------------*/
76
77bool ThreadPriorityTestCase::run_() const
78{
79 const auto allocatedMemory = mallinfo().uordblks;
80
81 for (const auto& phase : priorityTestPhases)
82 {
83 {
84 SequenceAsserter sequenceAsserter;
85
86 std::array<DynamicThread, totalThreads> threads
87 {{
88 makeTestThread(phase.first[phase.second[0]], sequenceAsserter),
89 makeTestThread(phase.first[phase.second[1]], sequenceAsserter),
90 makeTestThread(phase.first[phase.second[2]], sequenceAsserter),
91 makeTestThread(phase.first[phase.second[3]], sequenceAsserter),
92 makeTestThread(phase.first[phase.second[4]], sequenceAsserter),
93 makeTestThread(phase.first[phase.second[5]], sequenceAsserter),
94 makeTestThread(phase.first[phase.second[6]], sequenceAsserter),
95 makeTestThread(phase.first[phase.second[7]], sequenceAsserter),
96 }};
97
98 {
99 const InterruptMaskingLock interruptMaskingLock;
100
101 for (auto& thread : threads)
102 thread.start();
103 }
104
105 for (auto& thread : threads)
106 thread.join();
107
108 if (sequenceAsserter.assertSequence(totalThreads) == false)
109 return false;
110 }
111
112 if (mallinfo().uordblks != allocatedMemory) // dynamic memory must be deallocated after each test phase
113 return false;
114 }
115
116 return true;
117}
118
119} // namespace test
120

Callers

nothing calls this directly

Calls 4

assertSequenceMethod · 0.80
makeTestThreadFunction · 0.70
startMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected