summaryrefslogtreecommitdiff
path: root/FreeRTOS/Test/CMock/Readme.md
diff options
context:
space:
mode:
Diffstat (limited to 'FreeRTOS/Test/CMock/Readme.md')
-rw-r--r--FreeRTOS/Test/CMock/Readme.md37
1 files changed, 36 insertions, 1 deletions
diff --git a/FreeRTOS/Test/CMock/Readme.md b/FreeRTOS/Test/CMock/Readme.md
index df2c7c105..059f65303 100644
--- a/FreeRTOS/Test/CMock/Readme.md
+++ b/FreeRTOS/Test/CMock/Readme.md
@@ -21,6 +21,14 @@ Doxygen (optional)
```
1.8.5
```
+Python (optional, required for coverage filtering)
+```
+Python 3.8 or later
+```
+Cflow (optional, required for coverage filtering)
+```
+cflow (GNU cflow) 1.6
+```
## How to run
```
$ make help
@@ -41,7 +49,7 @@ $ make doc
Would generate the doxygen documentation in build/doc
```
-$ make run | run_formatted | run_col | run_col_formatted
+$ make run | run_formatted | run_col | run_col_formatted
```
Would build all unit tests and runs them one after the other with different
options between normal and formatted and colored for easily spotting errors
@@ -52,3 +60,30 @@ $ make coverage
Would build all unit tests, runs them one after the other, then generates html code
coverage and places them in build/coverage with initial file index.html
+## Running individual tests
+From each test directory, you can build, run the test, and generate gcov coverage with the default "all" target like so:
+```
+$ make -C list
+```
+For convenience, a "gcov" target is also provided.
+```
+$ make -C list gcov
+```
+Alternatively, you can generate filtered coverage with the "lcov" target:
+```
+$ make -C list lcov
+```
+You can also generate an html coverage report with the lcovhtml target:
+```
+$ make -C list lcovhtml
+```
+
+## Coverage Filtering ##
+Coverage filtering is meant to remove "unintentional" or "incidental" test coverage that is generated by other test cases which call a specific function but are not meant to test that function.
+In order to use coverage filtering and the associated lcov and lcovhtml targets, you must install the "optional" requirements listed above.
+
+
+Additionally, you must also document which functions you are targeting inside each _utest.c file with a tag inside each file similar to the following:
+```
+@coverage vFunctionNameHere vAnotherFunctionNameHere
+```