summaryrefslogtreecommitdiffstats
path: root/Source/CTest/cmCTestRunTest.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-12-15 13:36:16 (GMT)
committerBrad King <brad.king@kitware.com>2018-01-08 17:55:01 (GMT)
commit61ab5a8ef451484d3014118ed193eeba83bb22a4 (patch)
treecab8c9b0d7b3ba423128f9f06fb7cd73f4b614e0 /Source/CTest/cmCTestRunTest.cxx
parent4c199a4c28a0647c0277c7009b5f6e81b26333bb (diff)
downloadCMake-61ab5a8ef451484d3014118ed193eeba83bb22a4.zip
CMake-61ab5a8ef451484d3014118ed193eeba83bb22a4.tar.gz
CMake-61ab5a8ef451484d3014118ed193eeba83bb22a4.tar.bz2
cmCTestMultiProcessHandler: Check stop time more directly
Avoid creating a cmCTestRunTest instance if the stop time has been reached. If the stop time occurs in the small time between creating an instance and computing the child process timeout, we will simply compute a zero timeout. This is already done for the case that we StartAgain after the stop time.
Diffstat (limited to 'Source/CTest/cmCTestRunTest.cxx')
-rw-r--r--Source/CTest/cmCTestRunTest.cxx10
1 files changed, 3 insertions, 7 deletions
diff --git a/Source/CTest/cmCTestRunTest.cxx b/Source/CTest/cmCTestRunTest.cxx
index 6ee56ed..72a9d34 100644
--- a/Source/CTest/cmCTestRunTest.cxx
+++ b/Source/CTest/cmCTestRunTest.cxx
@@ -15,6 +15,7 @@
#include "cmsys/RegularExpression.hxx"
#include <chrono>
#include <iomanip>
+#include <ratio>
#include <sstream>
#include <stdio.h>
#include <utility>
@@ -32,7 +33,6 @@ cmCTestRunTest::cmCTestRunTest(cmCTestTestHandler* handler)
this->ProcessOutput.clear();
this->CompressedOutput.clear();
this->CompressionRatio = 2;
- this->StopTimePassed = false;
this->NumberOfRunsLeft = 1; // default to 1 run of the test
this->RunUntilFail = false; // default to run the test once
this->RunAgain = false; // default to not having to run again
@@ -524,15 +524,11 @@ bool cmCTestRunTest::StartTest(size_t total)
std::chrono::system_clock::time_point stop_time = this->CTest->GetStopTime();
if (stop_time != std::chrono::system_clock::time_point()) {
- auto stop_timeout =
+ std::chrono::duration<double> stop_timeout =
(stop_time - std::chrono::system_clock::now()) % std::chrono::hours(24);
if (stop_timeout <= std::chrono::duration<double>::zero()) {
- cmCTestLog(this->CTest, ERROR_MESSAGE, "The stop time has been passed. "
- "Stopping all tests."
- << std::endl);
- this->StopTimePassed = true;
- return false;
+ stop_timeout = std::chrono::duration<double>::zero();
}
if (timeout == std::chrono::duration<double>::zero() ||
stop_timeout < timeout) {