Hi All,

I just saw that when ctest is used to generate coverage information,
it looks for (gc)da files in the build directory - cf.
cmCTestCoverageHandler::FindGCovFiles in cmCTestCoverageHandler.cxx.

If I understand it correctly, when everything is setup correctly for a
coverage build:
  - gcc generates (gc)no files at compile time
  - (gc)da files are generated at run time - i.e. when the unit tests are run

So, it seems to me that for each (gc)da file we are sure that a (gc)no
file exists but not the other way round.

Since ctest is looking for (gc)da files, it seems to me that it will
lead to over-estimating the coverage information. Indeed, some code
can be compiled but never executed by the unit tests.

Am I missing something here?

If not the patch should be straightforward, in
cmCTestCoverageHandler::FindGCovFiles, we only to replace
  daGlob += "/*.da";
by
  noGlob += "/*.no";
and
  daGlob += "/*.gcda";
by
  noGlob += "/*.gcno";

I'll be happy to submit a bug report and a patch if someone more
knowledgeable than I am in gcov and ctest could confirm this issue.

Thanks,
Tom Vercauteren
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to