misc: add lcov scripts, README.md

See extras/lcov

Type: feature

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Id229436bd94cd18bcd0f3a3d938eae2b28d5b1f5
This commit is contained in:
Dave Barach
2019-11-06 16:58:48 -05:00
committed by Florin Coras
parent c96d618a5d
commit 8d74caa0a2
3 changed files with 62 additions and 0 deletions

46
extras/lcov/README.md Normal file
View File

@ -0,0 +1,46 @@
## 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.
You'll need to install the following additional packages:
$ sudo apt-get install gcovr ggcov lcov
## Compile an instrumented vpp image
Two ways:
$ cd <workspace-root>
$ make test-gcov
$ ## interrupt compilation after building the image
or
$ cd <workspace-root>/build-root
$ make PLATFORM=vpp TAG=vpp_gcov vpp-install
## Initialize the lcov database
$ cd <workspace-root>
$ ./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:///<workspace-root>/build-root/html/index.html

9
extras/lcov/lcov_post Executable file
View File

@ -0,0 +1,9 @@
#!/bin/bash
set -e
cd build-root
rm -rf html
mkdir html
lcov --no-checksum --directory . --capture --output-file out.info
genhtml out.info -o html

7
extras/lcov/lcov_prep Executable file
View File

@ -0,0 +1,7 @@
#!/bin/bash
set -e
cd build-root
rm -rf html
lcov --capture --initial --directory . --output-file lcov.out