diff options
-rw-r--r-- | Source/cmCTest.cxx | 18 | ||||
-rw-r--r-- | Source/cmCTest.h | 2 |
2 files changed, 17 insertions, 3 deletions
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index cf2907e..d886f4b 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -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") || @@ -319,6 +318,19 @@ bool cmCTest::ShouldCompressTestOutput() } //---------------------------------------------------------------------------- +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) { // Look up by lower-case to make names case-insensitive. diff --git a/Source/cmCTest.h b/Source/cmCTest.h index 120dd2e..d0b9e1e 100644 --- a/Source/cmCTest.h +++ b/Source/cmCTest.h @@ -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; } |