Code coverage

Since we would like to know how much of the code base is actually checked when running the tests, we’ve included code coverage options to the build process. If this flag is enabled during building, running the tests will generate additional files in the build directory which are processed using coverage tools to generate detailed reports. You’ll have to compile using gfortran, since we use gcovr for code coverage.

To locally generate the report you have to remove the build folder and executable in the main Legolas directory. Next you recreate the build directory and compile with coverage flags enabled:

rm -rf build
mkdir build
cd build
cmake -DCoverage=ON ..
make

You then navigate to the tests/core_tests folder and do the exact same thing, this ensures that the coverage tools are linked to the test_legolas executable during the compilation process.

Next you simply run all tests and the reports will be automatically generated. To process the results, navigate to the main legolas directory and do

mkdir coverage
cd build
gcovr . -r ../src --print-summary --html --html-details --output ../coverage/coverage.html

This will generate the report in the coverage folder, after which you can open coverage.html in your preferred browser. In some cases it’s possible that you have to specify the gcov executable in order for this to work, you can do that through the additional --gcov-executable flag. More info here.