diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2004-05-03 20:36:23 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2004-05-03 20:36:23 (GMT) |
commit | 787ca6457bc944bf4ea75114420c81fdb2c2207f (patch) | |
tree | 06e18a5d2374485b931e47ce78e9818a31aa6681 | |
parent | 575afc8b141851edff8cacbacf1c8c83975b799f (diff) | |
download | CMake-787ca6457bc944bf4ea75114420c81fdb2c2207f.zip CMake-787ca6457bc944bf4ea75114420c81fdb2c2207f.tar.gz CMake-787ca6457bc944bf4ea75114420c81fdb2c2207f.tar.bz2 |
ENH: Skip tests that do not have defects
-rw-r--r-- | Source/cmCTest.cxx | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index 5cac61c..5cb12f2 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -2457,7 +2457,6 @@ int cmCTest::TestDirectory(bool memcheck) std::cerr << "\nThe following tests FAILED:\n"; this->OpenOutputFile("Temporary", "LastTestsFailed.log", ofs); - std::cerr << "\nThe following tests FAILED:\n"; std::vector<cmCTest::cmCTestTestResult>::iterator ftit; for(ftit = m_TestResults.begin(); @@ -2724,7 +2723,11 @@ void cmCTest::GenerateDartMemCheckOutput(std::ostream& os) std::string memcheckstr; int memcheckresults[cmCTest::NO_MEMORY_FAULT]; int kk; - this->ProcessMemCheckOutput(result->m_Output, memcheckstr, memcheckresults); + bool res = this->ProcessMemCheckOutput(result->m_Output, memcheckstr, memcheckresults); + if ( res && result->m_Status == cmCTest::COMPLETED ) + { + continue; + } os << "\t<Test Status=\""; if ( result->m_Status == cmCTest::COMPLETED ) { @@ -3783,6 +3786,8 @@ bool cmCTest::ProcessMemCheckPurifyOutput(const std::string&, std::string& log, cmsys::RegularExpression pfW("^\\[[WEI]\\] ([A-Z][A-Z][A-Z][A-Z]*): "); + int defects = 0; + std::string line; while ( cmSystemTools::GetLineFromStream(ifs, line) ) { @@ -3808,11 +3813,16 @@ bool cmCTest::ProcessMemCheckPurifyOutput(const std::string&, std::string& log, { ostr << "<b>" << cmCTestMemCheckResultStrings[failure] << "</b> "; results[failure] ++; + defects ++; } ostr << cmCTest::MakeXMLSafe(line) << std::endl; } log = ostr.str(); + if ( defects ) + { + return false; + } return true; } @@ -3827,6 +3837,8 @@ bool cmCTest::ProcessMemCheckValgrindOutput(const std::string& str, std::string& cmOStringStream ostr; log = ""; + int defects = 0; + cmsys::RegularExpression valgrindLine("^==[0-9][0-9]*=="); cmsys::RegularExpression vgFIM( @@ -3877,12 +3889,17 @@ bool cmCTest::ProcessMemCheckValgrindOutput(const std::string& str, std::string& { ostr << "<b>" << cmCTestMemCheckResultStrings[failure] << "</b> "; results[failure] ++; + defects ++; } ostr << cmCTest::MakeXMLSafe(lines[cc]) << std::endl; } } //std::cout << "End test (elapsed: " << (cmSystemTools::GetTime() - sttime) << std::endl; log = ostr.str(); + if ( defects ) + { + return false; + } return true; } |