diff options
-rw-r--r-- | Source/CTest/cmCTestTestHandler.cxx | 5 | ||||
-rw-r--r-- | Source/cmCTest.cxx | 9 | ||||
-rw-r--r-- | Source/cmCTest.h | 5 |
3 files changed, 18 insertions, 1 deletions
diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx index f6dede8..4437c56 100644 --- a/Source/CTest/cmCTestTestHandler.cxx +++ b/Source/CTest/cmCTestTestHandler.cxx @@ -1052,6 +1052,11 @@ void cmCTestTestHandler::ProcessDirectory(std::vector<cmStdString> &passed, p.Cost = rand(); } + if(p.Timeout == 0 && this->CTest->GetGlobalTimeout() != 0) + { + p.Timeout = this->CTest->GetGlobalTimeout(); + } + if(p.Depends.size()) { for(std::vector<std::string>::iterator i = p.Depends.begin(); diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index 59003be..ee249b2 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -224,6 +224,7 @@ cmCTest::cmCTest() this->MaxTestNameWidth = 30; this->InteractiveDebugMode = true; this->TimeOut = 0; + this->GlobalTimeout = 0; this->CompressXMLFiles = false; this->CTestConfigFile = ""; this->ScheduleType = ""; @@ -1702,6 +1703,13 @@ void cmCTest::HandleCommandLineArguments(size_t &i, int plevel = atoi(arg.substr(2).c_str()); this->SetParallelLevel(plevel); } + + if(this->CheckArgument(arg, "--timeout") && i < args.size() - 1) + { + i++; + double timeout = (double)atof(args[i].c_str()); + this->GlobalTimeout = timeout; + } if(this->CheckArgument(arg, "-C", "--build-config") && i < args.size() - 1) @@ -2760,4 +2768,3 @@ void cmCTest::OutputTestErrors(std::vector<char> const &process_output) } cmCTestLog(this, HANDLER_OUTPUT, test_outputs << std::endl << std::flush); } - diff --git a/Source/cmCTest.h b/Source/cmCTest.h index 210a61b..299dbc8 100644 --- a/Source/cmCTest.h +++ b/Source/cmCTest.h @@ -129,6 +129,9 @@ public: std::string const& GetConfigType(); double GetTimeOut() { return this->TimeOut; } void SetTimeOut(double t) { this->TimeOut = t; } + + double GetGlobalTimeout() { return this->GlobalTimeout; } + // how many test to run at the same time int GetParallelLevel() { return this->ParallelLevel; } void SetParallelLevel(int); @@ -419,6 +422,8 @@ private: double TimeOut; + double GlobalTimeout; + int MaxTestNameWidth; int ParallelLevel; |