BUG: Avoid duplicate CTest coverage submission
This teaches ctest_coverage() to remove any existing CoverageLog-*.xml when it creates new coverage results. Otherwise the next ctest_submit() may submit old coverage log files which unnecessarily.
This commit is contained in:
parent
b4997c3020
commit
f3e713ba65
@ -162,6 +162,24 @@ void cmCTestCoverageHandler::Initialize()
|
|||||||
this->LabelFilter.clear();
|
this->LabelFilter.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
void cmCTestCoverageHandler::CleanCoverageLogFiles(std::ostream& log)
|
||||||
|
{
|
||||||
|
std::string logGlob = this->CTest->GetCTestConfiguration("BuildDirectory");
|
||||||
|
logGlob += "/Testing/";
|
||||||
|
logGlob += this->CTest->GetCurrentTag();
|
||||||
|
logGlob += "/CoverageLog*";
|
||||||
|
cmsys::Glob gl;
|
||||||
|
gl.FindFiles(logGlob.c_str());
|
||||||
|
std::vector<std::string> const& files = gl.GetFiles();
|
||||||
|
for(std::vector<std::string>::const_iterator fi = files.begin();
|
||||||
|
fi != files.end(); ++fi)
|
||||||
|
{
|
||||||
|
log << "Removing old coverage log: " << *fi << "\n";
|
||||||
|
cmSystemTools::RemoveFile(fi->c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
bool cmCTestCoverageHandler::StartCoverageLogFile(
|
bool cmCTestCoverageHandler::StartCoverageLogFile(
|
||||||
cmGeneratedFileStream& covLogFile, int logFileCount)
|
cmGeneratedFileStream& covLogFile, int logFileCount)
|
||||||
@ -342,6 +360,7 @@ int cmCTestCoverageHandler::ProcessHandler()
|
|||||||
}
|
}
|
||||||
|
|
||||||
ofs << "Performing coverage: " << elapsed_time_start << std::endl;
|
ofs << "Performing coverage: " << elapsed_time_start << std::endl;
|
||||||
|
this->CleanCoverageLogFiles(ofs);
|
||||||
|
|
||||||
cmSystemTools::ConvertToUnixSlashes(sourceDir);
|
cmSystemTools::ConvertToUnixSlashes(sourceDir);
|
||||||
cmSystemTools::ConvertToUnixSlashes(binaryDir);
|
cmSystemTools::ConvertToUnixSlashes(binaryDir);
|
||||||
|
@ -56,6 +56,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
bool ShouldIDoCoverage(const char* file, const char* srcDir,
|
bool ShouldIDoCoverage(const char* file, const char* srcDir,
|
||||||
const char* binDir);
|
const char* binDir);
|
||||||
|
void CleanCoverageLogFiles(std::ostream& log);
|
||||||
bool StartCoverageLogFile(cmGeneratedFileStream& ostr, int logFileCount);
|
bool StartCoverageLogFile(cmGeneratedFileStream& ostr, int logFileCount);
|
||||||
void EndCoverageLogFile(cmGeneratedFileStream& ostr, int logFileCount);
|
void EndCoverageLogFile(cmGeneratedFileStream& ostr, int logFileCount);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user