summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorDavid Cole <david.cole@kitware.com>2007-06-11 19:36:50 (GMT)
committerDavid Cole <david.cole@kitware.com>2007-06-11 19:36:50 (GMT)
commited1a04360afaae3d752cd99346856d484ba42f7f (patch)
treeefd6193201f558a8050ff4b8492b5840f4dc4cc5 /Source
parent422dc631b62edd22be89dfd665ecaede39c4e283 (diff)
downloadCMake-ed1a04360afaae3d752cd99346856d484ba42f7f.zip
CMake-ed1a04360afaae3d752cd99346856d484ba42f7f.tar.gz
CMake-ed1a04360afaae3d752cd99346856d484ba42f7f.tar.bz2
BUG: Never return a string containing a ":" from cmCTest::GetShortPathToFile - replace them with "_". DART cannot construct valid file names during dashboard rollup with ":" in the short path. Also, fix the Bullseye coverage handler so that the file names and paths match in both the coverage summary and the individual coverage logs.
Diffstat (limited to 'Source')
-rw-r--r--Source/CTest/cmCTestCoverageHandler.cxx13
-rw-r--r--Source/cmCTest.cxx20
2 files changed, 21 insertions, 12 deletions
diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx
index 2090b2f..d846851 100644
--- a/Source/CTest/cmCTestCoverageHandler.cxx
+++ b/Source/CTest/cmCTestCoverageHandler.cxx
@@ -1288,7 +1288,7 @@ int cmCTestCoverageHandler::RunBullseyeCoverageBranch(
<< std::endl);
// start the file output
covLogFile << "\t<File Name=\""
- << this->CTest->MakeXMLSafe(file.c_str())
+ << this->CTest->MakeXMLSafe(i->first.c_str())
<< "\" FullPath=\"" << this->CTest->MakeXMLSafe(
this->CTest->GetShortPathToFile(
i->second.c_str())) << "\">" << std::endl
@@ -1478,21 +1478,22 @@ int cmCTestCoverageHandler::RunBullseyeSourceSummary(
<< std::endl);
continue;
}
+
cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT,
"Doing coverage for: "
<< file.c_str()
<< std::endl);
coveredFiles.push_back(sourceFile);
+ coveredFilesFullPath.push_back(file);
+
number_files++;
total_functions += totalFunctions;
total_tested += functionsCalled;
total_untested += (totalFunctions - functionsCalled);
+
std::string fileName = cmSystemTools::GetFilenameName(file.c_str());
- // get file relative to the source dir
- file = cmSystemTools::RelativePath(cont->SourceDir.c_str(),
- file.c_str());
- coveredFilesFullPath.push_back(file);
+
float cper = percentBranch + percentFunction;
if(totalBranches > 0)
{
@@ -1519,7 +1520,7 @@ int cmCTestCoverageHandler::RunBullseyeSourceSummary(
tmpLog << "percentBranch: " << percentBranch << "\n";
tmpLog << "percentCoverage: " << percent_coverage << "\n";
tmpLog << "coverage metric: " << cmet << "\n";
- covSumFile << "\t<File Name=\"" << this->CTest->MakeXMLSafe(fileName)
+ covSumFile << "\t<File Name=\"" << this->CTest->MakeXMLSafe(sourceFile)
<< "\" FullPath=\"" << this->CTest->MakeXMLSafe(
this->CTest->GetShortPathToFile(file.c_str()))
<< "\" Covered=\"" << (cmet>0?"true":"false") << "\">\n"
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index b650001..3e5d9c6 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -2204,17 +2204,25 @@ std::string cmCTest::GetShortPathToFile(const char* cfname)
{
res = &bldRelpath;
}
+
+ std::string path;
+
if ( !res )
{
- return fname;
+ path = fname;
}
- cmSystemTools::ConvertToUnixSlashes(*res);
-
- std::string path = "./" + *res;
- if ( path[path.size()-1] == '/' )
+ else
{
- path = path.substr(0, path.size()-1);
+ cmSystemTools::ConvertToUnixSlashes(*res);
+
+ path = "./" + *res;
+ if ( path[path.size()-1] == '/' )
+ {
+ path = path.substr(0, path.size()-1);
+ }
}
+
+ cmsys::SystemTools::ReplaceString(path, ":", "_");
return path;
}