summaryrefslogtreecommitdiffstats
path: root/Source/CTest/cmCTestCoverageHandler.cxx
diff options
context:
space:
mode:
authorZack Galbreath <zack.galbreath@kitware.com>2015-10-29 20:08:10 (GMT)
committerBrad King <brad.king@kitware.com>2015-11-16 14:08:42 (GMT)
commit1db32ffe98272ded29827b833f373ffa399429e9 (patch)
tree27aca5b30177c4e746fd107090aa3a3966c30ebc /Source/CTest/cmCTestCoverageHandler.cxx
parent4f9a02db41a93822547c4cafd00d545adf07eb86 (diff)
downloadCMake-1db32ffe98272ded29827b833f373ffa399429e9.zip
CMake-1db32ffe98272ded29827b833f373ffa399429e9.tar.gz
CMake-1db32ffe98272ded29827b833f373ffa399429e9.tar.bz2
ctest_coverage: Search for Jacoco files in the binary directory
Search for Jacoco coverage files in both the source directory and the binary directory.
Diffstat (limited to 'Source/CTest/cmCTestCoverageHandler.cxx')
-rw-r--r--Source/CTest/cmCTestCoverageHandler.cxx25
1 files changed, 21 insertions, 4 deletions
diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx
index 20807c8..d358a93 100644
--- a/Source/CTest/cmCTestCoverageHandler.cxx
+++ b/Source/CTest/cmCTestCoverageHandler.cxx
@@ -913,16 +913,33 @@ int cmCTestCoverageHandler::HandleJacocoCoverage(
{
cmParseJacocoCoverage cov =
cmParseJacocoCoverage(*cont, this->CTest);
- cmsys::Glob g;
+
+ // Search in the source directory.
+ cmsys::Glob g1;
std::vector<std::string> files;
- g.SetRecurse(true);
+ g1.SetRecurse(true);
std::string SourceDir
= this->CTest->GetCTestConfiguration("SourceDirectory");
std::string coverageFile = SourceDir+ "/*jacoco.xml";
- g.FindFiles(coverageFile);
- files=g.GetFiles();
+ g1.FindFiles(coverageFile);
+ files = g1.GetFiles();
+
+ // ...and in the binary directory.
+ cmsys::Glob g2;
+ std::vector<std::string> binFiles;
+ g2.SetRecurse(true);
+ std::string binaryDir
+ = this->CTest->GetCTestConfiguration("BuildDirectory");
+ std::string binCoverageFile = binaryDir+ "/*jacoco.xml";
+ g2.FindFiles(binCoverageFile);
+ binFiles = g2.GetFiles();
+ if (!binFiles.empty())
+ {
+ files.insert(files.end(), binFiles.begin(), binFiles.end());
+ }
+
if (!files.empty())
{
cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT,