Provides an overview of how to use code coverage tools when running the unit tests in the EC codebase.
[TOC]
Code coverage is only available for host-based unit tests, as opposed to manual tests that run on target hardware.
To build host-based unit tests for code coverage, invoke make
with the
coverage
target, as follows:
make coverage -j
This target will compile and link the unit tests with --coverage
flag (which
pulls in the gcov
libraries), run the tests, and then process the profiling
data into a code coverage report using the lcov
and genhtml
tools.
The coverage report top-level page is build/coverage/coverage_rpt/index.html
.
When building for code coverage, you may see multiple warnings of the form
geninfo: WARNING: no data found for /mnt/host/source/src/platform/ec/core/host/cpu.h
and
genhtml: WARNING: function data mismatch at /mnt/host/source/src/platform/ec/common/math_util.c:134
These warnings can be ignored. (FYI, the "function data mismatch" warnings appear to be caused in part by using relative paths instead of absolute paths.)