diff options
Diffstat (limited to 'Source/CTest/cmCTestRunTest.cxx')
-rw-r--r-- | Source/CTest/cmCTestRunTest.cxx | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Source/CTest/cmCTestRunTest.cxx b/Source/CTest/cmCTestRunTest.cxx index d108592..7f3a077 100644 --- a/Source/CTest/cmCTestRunTest.cxx +++ b/Source/CTest/cmCTestRunTest.cxx @@ -64,6 +64,28 @@ bool cmCTestRunTest::CheckOutput() this->GetIndex() << ": " << line << std::endl); this->ProcessOutput += line; this->ProcessOutput += "\n"; + + // Check for TIMEOUT_AFTER_MATCH property. + if (!this->TestProperties->TimeoutRegularExpressions.empty()) + { + std::vector<std::pair<cmsys::RegularExpression, + std::string> >::iterator regIt; + for ( regIt = this->TestProperties->TimeoutRegularExpressions.begin(); + regIt != this->TestProperties->TimeoutRegularExpressions.end(); + ++ regIt ) + { + if ( regIt->first.find(this->ProcessOutput.c_str()) ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Test timeout changed to " << + this->TestProperties->AlternateTimeout << std::endl); + this->TestProcess->ResetStartTime(); + this->TestProcess->ChangeTimeout( + this->TestProperties->AlternateTimeout); + break; + } + } + } } else // if(p == cmsysProcess_Pipe_Timeout) { |