summaryrefslogtreecommitdiffstats
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
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.
-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;
}