.. | ||
core | ||
internal | ||
testcfg | ||
tests | ||
testtemplate | ||
lcov.sh | ||
README.md | ||
unlockRealtime.sh |
FSFW Testing
This repository contains testing and unit testing components.
Catch2 has been used as a framework, and these unit tests can only be run on a linux host machine. The makefile with default settings creates the unit test binary which can be run in the terminal or in eclipse.
Instructions
Eclipse CDT settings
The default eclipse terminal has issues displaying the colors used when running the unit test binary by catch2. To fix this issue, install the ANSI Escape In Console package from the eclipse marketplace.
GCOV integration
GCOV has been integrated as a code coverage tool.
It can be enabled by adding GCOV=1
to the build process as an additional argument.
Coverage data will be provided in form of .gcno and .gcda files.
These can be displayed in eclipse by looking
for a .gcno or .gcda file in the _obj folder, double-clicking it
and picking the right source-binary. This will generate
information about which lines of a file have run, provided it is open in
eclipse.
LCOV integration
The files generated by GCOV can also be processed by the tool LCOV. On ubuntu, the tool can be installed with the following command:
sudo apt-get install lcov
After that, the tool can be run by building the unit tests with GCOV=1
,
running them at least one time and then executing the lcov.sh
script.
Adding unit tests
The catch unit tests are located in unittest/testfw. To add new unit tests, add them to the UnitTestCatch.cpp file or add a new source file which includes catch.hpp.
For writing basics tests, the assertion documentation or the existing examples are a good guideliens. For more advanced tests, refer to the catch2 documentation.