diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2005-07-14 17:25:40 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2005-07-14 17:25:40 (GMT) |
commit | c7de609a372961ceff9121f43c412ac13ae4af45 (patch) | |
tree | d711307b2b12bef5bcd58f064e4cb38dad8a49fb /Source/CTest/cmCTestCoverageHandler.cxx | |
parent | b7b35d2c5aab37c83a77e016de5e01bfaef4eff7 (diff) | |
download | CMake-c7de609a372961ceff9121f43c412ac13ae4af45.zip CMake-c7de609a372961ceff9121f43c412ac13ae4af45.tar.gz CMake-c7de609a372961ceff9121f43c412ac13ae4af45.tar.bz2 |
ENH: Add custom supression regular expressions
Diffstat (limited to 'Source/CTest/cmCTestCoverageHandler.cxx')
-rw-r--r-- | Source/CTest/cmCTestCoverageHandler.cxx | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index 509ebec..b871a61 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -40,6 +40,7 @@ cmCTestCoverageHandler::cmCTestCoverageHandler() void cmCTestCoverageHandler::Initialize() { this->Superclass::Initialize(); + m_CustomCoverageExclude.empty(); } //---------------------------------------------------------------------- @@ -77,6 +78,18 @@ void cmCTestCoverageHandler::EndCoverageLogFile(cmGeneratedFileStream& ostr, int bool cmCTestCoverageHandler::ShouldIDoCoverage(const char* file, const char* srcDir, const char* binDir) { + std::vector<cmsys::RegularExpression>::iterator sit; + for ( sit = m_CustomCoverageExcludeRegex.begin(); + sit != m_CustomCoverageExcludeRegex.end(); ++ sit ) + { + if ( sit->find(file) ) + { + cmCTestLog(m_CTest, HANDLER_VERBOSE_OUTPUT, " File " << file + << " is excluded in CTestCustom.ctest" << std::endl;); + return false; + } + } + std::string fSrcDir = cmSystemTools::CollapseFullPath(srcDir); std::string fBinDir = cmSystemTools::CollapseFullPath(binDir); std::string fFile = cmSystemTools::CollapseFullPath(file); @@ -219,6 +232,15 @@ int cmCTestCoverageHandler::ProcessHandler() // No coverage files is a valid thing, so the exit code is 0 return 0; } + + m_CustomCoverageExcludeRegex.empty(); + std::vector<cmStdString>::iterator rexIt; + for ( rexIt = m_CustomCoverageExclude.begin(); + rexIt != m_CustomCoverageExclude.end(); + ++ rexIt ) + { + m_CustomCoverageExcludeRegex.push_back(cmsys::RegularExpression(rexIt->c_str())); + } typedef std::vector<int> singleFileCoverageVector; typedef std::map<std::string, singleFileCoverageVector> totalCoverageMap; @@ -697,3 +719,10 @@ int cmCTestCoverageHandler::ProcessHandler() } return 0; } + +//---------------------------------------------------------------------- +void cmCTestCoverageHandler::PopulateCustomVectors(cmMakefile *mf) +{ + cmCTest::PopulateCustomVector(mf, "CTEST_CUSTOM_COVERAGE_EXCLUDE", + m_CustomCoverageExclude); +} |