diff --git a/Source/CTest/cmCTestLaunch.cxx b/Source/CTest/cmCTestLaunch.cxx index 7d9c03486..cd3bd5746 100644 --- a/Source/CTest/cmCTestLaunch.cxx +++ b/Source/CTest/cmCTestLaunch.cxx @@ -587,8 +587,7 @@ void cmCTestLaunch::DumpFileToXML(std::ostream& fxml, while(cmSystemTools::GetLineFromStream(fin, line)) { - if(OptionFilterPrefix.size() && cmSystemTools::StringStartsWith( - line.c_str(), OptionFilterPrefix.c_str())) + if(MatchesFilterPrefix(line)) { continue; } @@ -676,6 +675,11 @@ bool cmCTestLaunch::ScrapeLog(std::string const& fname) std::string line; while(cmSystemTools::GetLineFromStream(fin, line)) { + if(MatchesFilterPrefix(line)) + { + continue; + } + if(this->Match(line.c_str(), this->RegexWarning) && !this->Match(line.c_str(), this->RegexWarningSuppress)) { @@ -700,6 +704,17 @@ bool cmCTestLaunch::Match(std::string const& line, return false; } +//---------------------------------------------------------------------------- +bool cmCTestLaunch::MatchesFilterPrefix(std::string const& line) const +{ + if(this->OptionFilterPrefix.size() && cmSystemTools::StringStartsWith( + line.c_str(), this->OptionFilterPrefix.c_str())) + { + return true; + } + return false; +} + //---------------------------------------------------------------------------- int cmCTestLaunch::Main(int argc, const char* const argv[]) { diff --git a/Source/CTest/cmCTestLaunch.h b/Source/CTest/cmCTestLaunch.h index a86a9df74..f680d19d9 100644 --- a/Source/CTest/cmCTestLaunch.h +++ b/Source/CTest/cmCTestLaunch.h @@ -88,6 +88,7 @@ private: bool ScrapeLog(std::string const& fname); bool Match(std::string const& line, std::vector& regexps); + bool MatchesFilterPrefix(std::string const& line) const; // Methods to generate the xml fragment. void WriteXML();