fsfw/unittest
2020-10-29 15:12:36 +01:00
..
core core changes taken over 2020-10-29 15:12:05 +01:00
internal output tweaked 2020-10-22 14:34:52 +02:00
testcfg makefile moved 2020-10-29 12:07:48 +01:00
tests include fixes 2020-10-28 22:34:41 +01:00
testtemplate unittest folder added 2020-10-20 17:12:56 +02:00
lcov.sh unittest folder added 2020-10-20 17:12:56 +02:00
README.md deleted some sutff 2020-10-29 15:12:36 +01:00
unlockRealtime.sh unittest folder added 2020-10-20 17:12:56 +02:00

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.