|
@@ -6,6 +6,7 @@
|
|
|
#include "cm_jsoncpp_reader.h"
|
|
|
#include "cm_jsoncpp_value.h"
|
|
|
#include "cmsys/Process.h"
|
|
|
+#include <chrono>
|
|
|
#include <sstream>
|
|
|
#include <stdio.h>
|
|
|
#include <stdlib.h>
|
|
@@ -496,10 +497,11 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(const std::string& localprefix,
|
|
|
? ""
|
|
|
: this->GetOption("RetryCount");
|
|
|
|
|
|
- int delay = retryDelay.empty()
|
|
|
- ? atoi(this->CTest->GetCTestConfiguration("CTestSubmitRetryDelay")
|
|
|
- .c_str())
|
|
|
- : atoi(retryDelay.c_str());
|
|
|
+ auto delay = std::chrono::duration<double>(
|
|
|
+ retryDelay.empty()
|
|
|
+ ? atoi(this->CTest->GetCTestConfiguration("CTestSubmitRetryDelay")
|
|
|
+ .c_str())
|
|
|
+ : atoi(retryDelay.c_str()));
|
|
|
int count = retryCount.empty()
|
|
|
? atoi(this->CTest->GetCTestConfiguration("CTestSubmitRetryCount")
|
|
|
.c_str())
|
|
@@ -507,12 +509,12 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(const std::string& localprefix,
|
|
|
|
|
|
for (int i = 0; i < count; i++) {
|
|
|
cmCTestOptionalLog(this->CTest, HANDLER_OUTPUT,
|
|
|
- " Submit failed, waiting " << delay
|
|
|
+ " Submit failed, waiting " << delay.count()
|
|
|
<< " seconds...\n",
|
|
|
this->Quiet);
|
|
|
|
|
|
- double stop = cmSystemTools::GetTime() + delay;
|
|
|
- while (cmSystemTools::GetTime() < stop) {
|
|
|
+ auto stop = std::chrono::steady_clock::now() + delay;
|
|
|
+ while (std::chrono::steady_clock::now() < stop) {
|
|
|
cmSystemTools::Delay(100);
|
|
|
}
|
|
|
|
|
@@ -1031,11 +1033,15 @@ int cmCTestSubmitHandler::HandleCDashUploadFile(std::string const& file,
|
|
|
std::string retryCountString = this->GetOption("RetryCount") == nullptr
|
|
|
? ""
|
|
|
: this->GetOption("RetryCount");
|
|
|
- unsigned long retryDelay = 0;
|
|
|
+ auto retryDelay = std::chrono::seconds(0);
|
|
|
if (!retryDelayString.empty()) {
|
|
|
- if (!cmSystemTools::StringToULong(retryDelayString.c_str(), &retryDelay)) {
|
|
|
+ unsigned long retryDelayValue = 0;
|
|
|
+ if (!cmSystemTools::StringToULong(retryDelayString.c_str(),
|
|
|
+ &retryDelayValue)) {
|
|
|
cmCTestLog(this->CTest, WARNING, "Invalid value for 'RETRY_DELAY' : "
|
|
|
<< retryDelayString << std::endl);
|
|
|
+ } else {
|
|
|
+ retryDelay = std::chrono::seconds(retryDelayValue);
|
|
|
}
|
|
|
}
|
|
|
unsigned long retryCount = 0;
|
|
@@ -1087,12 +1093,12 @@ int cmCTestSubmitHandler::HandleCDashUploadFile(std::string const& file,
|
|
|
// If request failed, wait and retry.
|
|
|
for (unsigned long i = 0; i < retryCount; i++) {
|
|
|
cmCTestOptionalLog(this->CTest, HANDLER_OUTPUT,
|
|
|
- " Request failed, waiting " << retryDelay
|
|
|
+ " Request failed, waiting " << retryDelay.count()
|
|
|
<< " seconds...\n",
|
|
|
this->Quiet);
|
|
|
|
|
|
- double stop = cmSystemTools::GetTime() + static_cast<double>(retryDelay);
|
|
|
- while (cmSystemTools::GetTime() < stop) {
|
|
|
+ auto stop = std::chrono::steady_clock::now() + retryDelay;
|
|
|
+ while (std::chrono::steady_clock::now() < stop) {
|
|
|
cmSystemTools::Delay(100);
|
|
|
}
|
|
|
|
|
@@ -1161,12 +1167,12 @@ int cmCTestSubmitHandler::HandleCDashUploadFile(std::string const& file,
|
|
|
// If upload failed, wait and retry.
|
|
|
for (unsigned long i = 0; i < retryCount; i++) {
|
|
|
cmCTestOptionalLog(this->CTest, HANDLER_OUTPUT,
|
|
|
- " Upload failed, waiting " << retryDelay
|
|
|
+ " Upload failed, waiting " << retryDelay.count()
|
|
|
<< " seconds...\n",
|
|
|
this->Quiet);
|
|
|
|
|
|
- double stop = cmSystemTools::GetTime() + static_cast<double>(retryDelay);
|
|
|
- while (cmSystemTools::GetTime() < stop) {
|
|
|
+ auto stop = std::chrono::steady_clock::now() + retryDelay;
|
|
|
+ while (std::chrono::steady_clock::now() < stop) {
|
|
|
cmSystemTools::Delay(100);
|
|
|
}
|
|
|
|