Nathan Skrzypczak a2c9509a4a docs: convert extras doc md->rst
Type: improvement

Change-Id: Ie3b25a86b99098d2b3a21a11fc73234c8ed589d6
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-10-13 15:32:22 +00:00
..
2020-04-28 20:55:20 +00:00
2021-10-13 15:32:22 +00:00

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