Commit 8a1d25af authored by Brad King's avatar Brad King Committed by Kitware Robot

Merge topic 'ctest-exit-code-int64'

440b08e4 CTest: Represent process exit codes as 64-bit signed integer
Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
Merge-request: !2944
parents 4b37b4f1 440b08e4
Pipeline #129738 failed with stage
in 0 seconds
......@@ -14,6 +14,7 @@
#include "cmsys/RegularExpression.hxx"
#include <chrono>
#include <cmAlgorithms.h>
#include <cstdint>
#include <cstring>
#include <iomanip>
#include <ratio>
......@@ -143,7 +144,7 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
if (res != cmProcess::State::Expired) {
this->TimeoutIsForStopTime = false;
}
int retVal = this->TestProcess->GetExitValue();
std::int64_t retVal = this->TestProcess->GetExitValue();
bool forceFail = false;
bool skipped = false;
bool outputTestErrorsToConsole = false;
......
......@@ -11,6 +11,7 @@
#include "cmsys/RegularExpression.hxx"
#include <chrono>
#include <cstdint>
#include <iosfwd>
#include <map>
#include <set>
......@@ -153,7 +154,7 @@ public:
std::string Reason;
std::string FullCommandLine;
cmDuration ExecutionTime;
int ReturnValue;
std::int64_t ReturnValue;
int Status;
std::string ExceptionStatus;
bool CompressOutput;
......
......@@ -11,7 +11,9 @@
#include <iostream>
#include <signal.h>
#include <string>
#if !defined(_WIN32)
#if defined(_WIN32)
# include "cm_kwiml.h"
#else
# include <unistd.h>
#endif
#include <utility>
......@@ -353,7 +355,7 @@ void cmProcess::OnExit(int64_t exit_status, int term_signal)
}
// Record exit information.
this->ExitValue = static_cast<int>(exit_status);
this->ExitValue = exit_status;
this->Signal = term_signal;
this->TotalTime = std::chrono::steady_clock::now() - this->StartTime;
// Because of a processor clock scew the runtime may become slightly
......@@ -539,7 +541,8 @@ std::string cmProcess::GetExitExceptionString()
case STATUS_NO_MEMORY:
default:
char buf[1024];
_snprintf(buf, 1024, "Exit code 0x%x\n", this->ExitValue);
const char* fmt = "Exit code 0x%" KWIML_INT_PRIx64 "\n";
_snprintf(buf, 1024, fmt, this->ExitValue);
exception_str.assign(buf);
}
#else
......
......@@ -53,7 +53,7 @@ public:
State GetProcessStatus();
int GetId() { return this->Id; }
void SetId(int id) { this->Id = id; }
int GetExitValue() { return this->ExitValue; }
int64_t GetExitValue() { return this->ExitValue; }
cmDuration GetTotalTime() { return this->TotalTime; }
enum class Exception
......@@ -122,7 +122,7 @@ private:
std::vector<std::string> Arguments;
std::vector<const char*> ProcessArgs;
int Id;
int ExitValue;
int64_t ExitValue;
};
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment