diff options
Diffstat (limited to 'Source')
-rw-r--r-- | Source/CTest/cmCTestSubmitHandler.cxx | 13 | ||||
-rw-r--r-- | Source/CTest/cmCTestSubmitHandler.h | 14 | ||||
-rw-r--r-- | Source/ctest.cxx | 3 |
3 files changed, 28 insertions, 2 deletions
diff --git a/Source/CTest/cmCTestSubmitHandler.cxx b/Source/CTest/cmCTestSubmitHandler.cxx index 77af889..db8a054 100644 --- a/Source/CTest/cmCTestSubmitHandler.cxx +++ b/Source/CTest/cmCTestSubmitHandler.cxx @@ -138,6 +138,19 @@ void cmCTestSubmitHandler::Initialize() this->Files.clear(); } +int cmCTestSubmitHandler::ProcessCommandLineArguments( + const std::string& currentArg, size_t& idx, + const std::vector<std::string>& allArgs) +{ + if (cmHasLiteralPrefix(currentArg, "--http-header") && + idx < allArgs.size() - 1) { + ++idx; + this->HttpHeaders.push_back(allArgs[idx]); + this->CommandLineHttpHeaders.push_back(allArgs[idx]); + } + return 1; +} + bool cmCTestSubmitHandler::SubmitUsingHTTP( const std::string& localprefix, const std::vector<std::string>& files, const std::string& remoteprefix, const std::string& url) diff --git a/Source/CTest/cmCTestSubmitHandler.h b/Source/CTest/cmCTestSubmitHandler.h index 0c7253c..e8eb38a 100644 --- a/Source/CTest/cmCTestSubmitHandler.h +++ b/Source/CTest/cmCTestSubmitHandler.h @@ -4,6 +4,7 @@ #include "cmConfigure.h" // IWYU pragma: keep +#include <cstddef> #include <iosfwd> #include <set> #include <string> @@ -33,6 +34,11 @@ public: void Initialize() override; + //! Set all the submit arguments + int ProcessCommandLineArguments( + const std::string& currentArg, size_t& idx, + const std::vector<std::string>& allArgs) override; + /** Specify a set of parts (by name) to submit. */ void SelectParts(std::set<cmCTest::Part> const& parts); @@ -44,7 +50,12 @@ public: void SetHttpHeaders(std::vector<std::string> const& v) { - this->HttpHeaders = v; + if (this->CommandLineHttpHeaders.empty()) { + this->HttpHeaders = v; + } else { + this->HttpHeaders = this->CommandLineHttpHeaders; + this->HttpHeaders.insert(this->HttpHeaders.end(), v.begin(), v.end()); + } } private: @@ -75,5 +86,6 @@ private: bool HasWarnings; bool HasErrors; std::set<std::string> Files; + std::vector<std::string> CommandLineHttpHeaders; std::vector<std::string> HttpHeaders; }; diff --git a/Source/ctest.cxx b/Source/ctest.cxx index fa38a65..b2867e2 100644 --- a/Source/ctest.cxx +++ b/Source/ctest.cxx @@ -25,7 +25,7 @@ const cmDocumentationEntry cmDocumentationName = { const cmDocumentationEntry cmDocumentationUsage = { {}, " ctest [options]" }; -const cmDocumentationEntry cmDocumentationOptions[74] = { +const cmDocumentationEntry cmDocumentationOptions[] = { { "--preset <preset>, --preset=<preset>", "Read arguments from a test preset." }, { "--list-presets", "List available test presets." }, @@ -143,6 +143,7 @@ const cmDocumentationEntry cmDocumentationOptions[74] = { { "--tomorrow-tag", "Nightly or experimental starts with next day tag." }, { "--overwrite", "Overwrite CTest configuration option." }, { "--extra-submit <file>[;<file>]", "Submit extra files to the dashboard." }, + { "--http-header <header>", "Append HTTP header when submitting" }, { "--force-new-ctest-process", "Run child CTest instances as new processes" }, { "--schedule-random", "Use a random order for scheduling tests" }, |