Query the CDash web API to automate CDash version detection.
This commit is contained in:
parent
3ff0b94055
commit
a302b51db5
|
@ -304,9 +304,8 @@ void cmCTest::SetParallelLevel(int level)
|
|||
bool cmCTest::ShouldCompressTestOutput()
|
||||
{
|
||||
if(!this->ComputedCompressOutput)
|
||||
{
|
||||
std::string cdashVersion =
|
||||
this->GetCTestConfiguration("CDashVersion");
|
||||
{
|
||||
std::string cdashVersion = this->GetCDashVersion();
|
||||
//version >= 1.6?
|
||||
bool cdashSupportsGzip = cmSystemTools::VersionCompare(
|
||||
cmSystemTools::OP_GREATER, cdashVersion.c_str(), "1.6") ||
|
||||
|
@ -318,6 +317,19 @@ bool cmCTest::ShouldCompressTestOutput()
|
|||
return this->CompressTestOutput;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmCTest::GetCDashVersion()
|
||||
{
|
||||
//First query the server. If that fails, fall back to the local setting
|
||||
std::string response;
|
||||
std::string url = "http://";
|
||||
url += this->GetCTestConfiguration("DropSite") + "/CDash/api/getversion.php";
|
||||
|
||||
int res = cmSystemTools::HTTPRequest(url, cmSystemTools::HTTP_GET, response);
|
||||
|
||||
return res ? this->GetCTestConfiguration("CDashVersion") : response;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
cmCTest::Part cmCTest::GetPartFromName(const char* name)
|
||||
{
|
||||
|
|
|
@ -197,6 +197,8 @@ public:
|
|||
|
||||
bool ShouldCompressTestOutput();
|
||||
|
||||
std::string GetCDashVersion();
|
||||
|
||||
//Used for parallel ctest job scheduling
|
||||
std::string GetScheduleType() { return this->ScheduleType; }
|
||||
void SetScheduleType(std::string type) { this->ScheduleType = type; }
|
||||
|
|
Loading…
Reference in New Issue