| .. _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. |
| |
| You’ll 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 |