Commit ed1a0436 authored by David Cole's avatar David Cole
Browse files

BUG: Never return a string containing a ":" from cmCTest::GetShortPathToFile -...

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.
parent 422dc631
......@@ -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"
......
......@@ -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;
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment