]> git.proxmox.com Git - mirror_frr.git/commit - Makefile.am
unit tests: support code coverage instrumentation and reports
authorArthur Jones <arthur.jones@riverbed.com>
Thu, 14 Jun 2018 13:44:38 +0000 (06:44 -0700)
committerArthur Jones <arthur.jones@riverbed.com>
Wed, 4 Jul 2018 18:06:11 +0000 (11:06 -0700)
commit83284209097c4f0ab0aba415e986df0dee6f9cc4
tree8d4f01f4e7db165f099c9678132fee32e6442534
parent732c8da3483d4e09fcfe260454092acef3280086
unit tests: support code coverage instrumentation and reports

Currently, make check runs the unit tests and reports pass/fail,
but we have no way to guage how much of the code is covered by
these tests.  gcov provides those statistics on a per source
file basis, but requires special CFLAGS and LDFLAGS.  Here, we
add the --enable-gcov configure option to setup those options
correctly.  We also add a make target called check-coverage,
which runs the unit tests, runs gcov and uploads the data to
the codecov.io cloud service for display.

Finally, we include a Dockerfile-coverage which creates a
container image in alpine linux to run the tests.  To create
the image:

$ docker build \
--build-arg commit=`git rev-parse HEAD` \
--build-arg token=<upload token from codecov.io> \
-t frr-gcov:latest \
-f docker/alpine/Dockerfile-coverage .

and to create and upload the report:

$ docker run -it --rm frr-gcov:latest

Testing done:

Created and uploaded a report from my fork using alpine linux 3.7.
Non-coverage alpine 3.7 build still works.

Issue: https://github.com/FRRouting/frr/issues/2442
Signed-off-by: Arthur Jones <arthur.jones@riverbed.com>
Makefile.am
configure.ac
doc/user/installation.rst
docker/alpine/Dockerfile-coverage [new file with mode: 0644]