diff options
author | David Cole <david.cole@kitware.com> | 2007-06-11 19:36:50 (GMT) |
---|---|---|
committer | David Cole <david.cole@kitware.com> | 2007-06-11 19:36:50 (GMT) |
commit | ed1a04360afaae3d752cd99346856d484ba42f7f (patch) | |
tree | efd6193201f558a8050ff4b8492b5840f4dc4cc5 | |
parent | 422dc631b62edd22be89dfd665ecaede39c4e283 (diff) | |
download | CMake-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.cxx | 13 | ||||
-rw-r--r-- | Source/cmCTest.cxx | 20 |
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; } |