@@ -6,7 +6,15 @@ Copyright Matthew Eshleman
66
77# Introduction
88
9- TODO
9+ CppUTest for FreeRTOS is a host PC based unit testing library supporting
10+ the unit testing of FreeRTOS based code.
11+
12+ At this time, the library is proven for firmware following an event driven
13+ active object pattern, i.e. threads that sit on a queue and process one event
14+ at a time. Other patterns may be possible too, as long as the module under test
15+ does not mix blocking operating system calls within a function being tested. See
16+ the provided example which provides a back-door for processing a single event,
17+ which in-turn enables host PC based unit testing.
1018
1119# Environment
1220
@@ -29,11 +37,59 @@ of one of the key benefits of host-based testing of embedded software.
2937
3038See the configuration at: ` .github/workflows/cmake.yml `
3139
32-
3340# Testing Support
3441
35- TODO
42+ ## Tasks
43+
44+ Non-functional FreeRTOS task related methods are provided for linking purposes only.
45+ The library assumes that the unit under test will avoid actual threading
46+ behavior while unit testing. i.e. test the code executed by a thread, NOT
47+ threading behavior itself.
48+
49+ ## Queues
50+
51+ The library provides fake but functional FreeRTOS compatible queues. The queues
52+ do not block in any manner.
53+
54+ ## Timers
55+
56+ The library provides fake but functional FreeRTOS compatible software timers.
57+ Accessor methods are provided to allow the unit tests to "move time forward"
58+ triggers timers to fire as expected.
59+
60+ ## ASSERT
61+
62+ The library provides a configured "configASSERT" macro for asserts compatible
63+ with the FreeRTOS assert method. The assert is mocked and helper methods
64+ are provided to enable unit testing of assert behavior.
65+
66+ ## Delay
67+
68+ TODO.
69+
70+ ## Semaphores
3671
72+ TODO.
73+
74+ ## Mutexes
75+
76+ TODO.
77+
78+ ## Direct to task notifications
79+
80+ TODO.
81+
82+ ## Stream buffers
83+
84+ TODO.
85+
86+ ## Message buffers
87+
88+ TODO.
89+
90+ ## Event groups
91+
92+ TODO.
3793
3894# License
3995
@@ -43,13 +99,12 @@ Please see LICENSE.txt for details.
4399All licenses for external source code and libraries relied upon by this project
44100remain fully owned by their respective owners.
45101
46-
47102# References
48103
49- This project was also inspired by a generic example, see this blog post:
104+ This project was inspired by a generic example, see this blog post:
50105https://covemountainsoftware.com/2020/04/17/unit-testing-active-objects-and-state-machines/
51106
52- Additionally, please see that post's associated github repo:
107+ Additionally, please see that post's associated GitHub repo:
53108https://github.com/covemountainsoftware/activeObjectUnitTestingDemo
54109
55110Other references:
0 commit comments