From 787ca6457bc944bf4ea75114420c81fdb2c2207f Mon Sep 17 00:00:00 2001 From: Andy Cedilnik Date: Mon, 3 May 2004 16:36:23 -0400 Subject: ENH: Skip tests that do not have defects --- Source/cmCTest.cxx | 21 +++++++++++++++++++-- 1 file 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::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 << "\tm_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 << "" << cmCTestMemCheckResultStrings[failure] << " "; 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 << "" << cmCTestMemCheckResultStrings[failure] << " "; 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; } -- cgit v0.12