summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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,