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
committed by
Florin Coras
parent
c96d618a5d
commit
8d74caa0a2
46
extras/lcov/README.md
Normal file
46
extras/lcov/README.md
Normal 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
9
extras/lcov/lcov_post
Executable 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
7
extras/lcov/lcov_prep
Executable file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
cd build-root
|
||||
rm -rf html
|
||||
lcov --capture --initial --directory . --output-file lcov.out
|
Reference in New Issue
Block a user