@@ -9,14 +9,18 @@ To learn more about Matthew, see here: https://covemountainsoftware.com/services
99# Introduction
1010
1111CppUTest for FreeRTOS is a host PC based unit testing library supporting
12- the unit testing of FreeRTOS based code.
12+ the unit testing of well-formed FreeRTOS based code. Fundamentally it provides
13+ various FreeRTOS functions as non-functional linking only replacements OR 'fakes'
14+ that provide equivalent functionality (especially see timers).
1315
14- At this time, the library is proven for firmware following an event driven
15- active object pattern, i.e. threads that sit on a queue and process one event
16- at a time. Other patterns may be possible too, as long as the module under test
17- does not mix blocking operating system calls within a function being tested. See
18- the provided example which provides a back-door for processing a single event,
19- which in-turn enables host PC based unit testing.
16+ What do I mean by well-formed? Well-formed in this context means a thread or
17+ module with only a single thread blocking mechanism (queue or semaphore, for example)
18+ which in turn, when unblocked, activates the thread's behavior.
19+ A well-known example would be an [ active object] ( https://covemountainsoftware.com/2021/04/20/what-is-an-active-object/ ) .
20+
21+ Frankly, a firmware's threads should be well-formed. Like many others,
22+ I consider the mixing of RTOS blocking and locking mechanism's to be
23+ a recipe for a bad-cake, if not disaster.
2024
2125# Environment
2226
@@ -33,9 +37,9 @@ be compatible with this code.
3337
3438## Continuous Integration
3539
36- This project has configured GitHub Actions to build and execute all
37- unit tests found in this project. This is an example
38- of one of the key benefits of host-based testing of embedded software.
40+ This project uses GitHub Actions to build and execute all
41+ unit tests found in this project. This is an example of one of the
42+ key benefits of host-based testing of embedded software.
3943
4044See the configuration at: ` .github/workflows/cmake.yml `
4145
0 commit comments