mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-02 03:39:43 -06:00
ctest: allow HTTP headers via command line
Add ability to specify HTTP headers via `ctest -T Submit`.
This commit is contained in:
committed by
Brad King
parent
b2ea53f484
commit
20adf8cfce
@@ -754,6 +754,16 @@ The available ``<dashboard-options>`` are the following:
|
||||
|
||||
This option will submit extra files to the dashboard.
|
||||
|
||||
.. option:: --http-header <header>
|
||||
|
||||
.. versionadded:: 3.29
|
||||
|
||||
Append HTTP header when submitting to the dashboard.
|
||||
|
||||
This option will cause CTest to append the specified header
|
||||
when submitting to the dashboard.
|
||||
This option may be specified more than once.
|
||||
|
||||
.. option:: --http1.0
|
||||
|
||||
Submit using `HTTP 1.0`.
|
||||
|
||||
5
Help/release/dev/ctest-cli-http-headers.rst
Normal file
5
Help/release/dev/ctest-cli-http-headers.rst
Normal file
@@ -0,0 +1,5 @@
|
||||
ctest-cli-http-headers
|
||||
----------------------
|
||||
|
||||
* :manual:`ctest(1)` gained a :option:`--http-header <ctest --http-header>`
|
||||
option to add custom headers on submission to CDash.
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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" },
|
||||
|
||||
Reference in New Issue
Block a user