This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.. _lcov_code_coverage:

Code coverage with lcov
=======================

Prerequisites
-------------

The Linux gcov and lcov tools are fussy about gcc / g++ compiler
versions. As of this writing, Ubuntu 18.04 gcov / lcov work with these
toolchain versions:

$ gcc version gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 $ g++ version
g++ (Ubuntu 8.3.0-6ubuntu1~18.04.1) 8.3.0

Refer to
https://askubuntu.com/questions/26498/how-to-choose-the-default-gcc-and-g-version
for information on how to install multiple gcc / g++ versions, and
switch between them.

Youll need to install the following additional packages:

$ sudo apt-get install gcovr ggcov lcov

Compile an instrumented vpp image
---------------------------------

Two ways:

$ cd $ make test-gcov $ ## interrupt compilation after building the
image

or $ cd /build-root $ make PLATFORM=vpp TAG=vpp_gcov vpp-install

Initialize the lcov database
----------------------------

$ cd $ ./extras/lcov/lcov_prep $ make test-gcov or make TEST=my_test
test-gcov $ # repeat or vary as desired to increase reported coverage $
# Generate the report: $ ./extras/lcov/lcov_post

You can run vpp manually, do anything you like. Results are cumulative
until you re-run the “prep” script.

Look at the results
-------------------

Point a browser at file:////build-root/html/index.html