| 166 | } |
| 167 | |
| 168 | bool cmCTestSubmitCommand::InitialPass(std::vector<std::string> const& args, |
| 169 | cmExecutionStatus& status) const |
| 170 | { |
| 171 | // Arguments used by both modes. |
| 172 | static auto const parserBase = |
| 173 | cmArgumentParser<SubmitArguments>{ MakeHandlerParser<SubmitArguments>() } |
| 174 | .Bind("BUILD_ID"_s, &SubmitArguments::BuildID) |
| 175 | .Bind("HTTPHEADER"_s, &SubmitArguments::HttpHeaders) |
| 176 | .Bind("RETRY_COUNT"_s, &SubmitArguments::RetryCount) |
| 177 | .Bind("RETRY_DELAY"_s, &SubmitArguments::RetryDelay) |
| 178 | .Bind("SUBMIT_URL"_s, &SubmitArguments::SubmitURL) |
| 179 | .Bind("INTERNAL_TEST_CHECKSUM"_s, &SubmitArguments::InternalTest); |
| 180 | |
| 181 | // Arguments specific to the CDASH_UPLOAD signature. |
| 182 | static auto const uploadParser = |
| 183 | cmArgumentParser<SubmitArguments>{ parserBase } |
| 184 | .Bind("CDASH_UPLOAD"_s, &SubmitArguments::CDashUploadFile) |
| 185 | .Bind("CDASH_UPLOAD_TYPE"_s, &SubmitArguments::CDashUploadType); |
| 186 | |
| 187 | // Arguments that cannot be used with CDASH_UPLOAD. |
| 188 | static auto const partsParser = |
| 189 | cmArgumentParser<SubmitArguments>{ parserBase } |
| 190 | .Bind("PARTS"_s, &SubmitArguments::Parts) |
| 191 | .Bind("FILES"_s, &SubmitArguments::Files); |
| 192 | |
| 193 | bool const cdashUpload = !args.empty() && args[0] == "CDASH_UPLOAD"; |
| 194 | auto const& parser = cdashUpload ? uploadParser : partsParser; |
| 195 | |
| 196 | return this->Invoke(parser, args, status, [&](SubmitArguments& a) -> bool { |
| 197 | a.CDashUpload = cdashUpload; |
| 198 | return this->ExecuteHandlerCommand(a, status); |
| 199 | }); |
| 200 | } |
| 201 | |
| 202 | void cmCTestSubmitCommand::CheckArguments(HandlerArguments& arguments, |
| 203 | cmExecutionStatus& status) const |
nothing calls this directly
no test coverage detected