[libvirt] libvirt 'make cov' vs gnulib 'make coverage'

Cole Robinson crobinso at redhat.com
Wed Feb 20 22:18:02 UTC 2019


Recently I've played with libvirt coverage/gcov/lcov support. The
libvirt specific way to enable it is:

  ./configure --enable-test-coverage
  make check
  make cov
  firefox coverage/index.html

However it looks like gnulib provides an automagic way to get similar
output. The process is:

  make coverage
  firefox doc/coverage/index.html

'make coverage' is composed of these 3 additional commands:

  make init-coverage   # clear lcov counters
  make build-coverage  # 'make check' with coverage flags, generate
                       # lcov metadata
  make gen-coverage    # generate the html report

It seems like we can just drop our custom coverage implementation.

* Less code for us
* The gnulib implementation is more flexible with the split commands
* libvirt impl needs an explicit directory list. right now gnulib output
  reports info for the tools/ dir but libvirt's doesn't
* gnulib impl doesn't require a reconfigure
* seems like libvirt impl never calls lcov --zerocounters which AFAICT
  means that every 'make check' run adds to the coverage stats. so if
  you wanted to check for coverage changes across commits we require a
  make clean in between to zero out the stats for testing. gnulib
  init-coverage takes care of that.

Anyone know a reason not to rip this out? If not I'll send a patch

Thanks,
Cole




More information about the libvir-list mailing list