Merge topic 'enh-CTest-SetOption-accepts-new-types'

8f52451682 Use new SetOption signatures
8d0ae460de cmCTestGenericHandler::SetOption accepts cmProp or std::string

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6525
This commit is contained in:
Brad King
2021-09-16 12:20:09 +00:00
committed by Kitware Robot
5 changed files with 49 additions and 17 deletions

View File

@@ -21,11 +21,12 @@ cmCTestGenericHandler::cmCTestGenericHandler()
cmCTestGenericHandler::~cmCTestGenericHandler() = default;
namespace {
/* Modify the given `map`, setting key `op` to `value` if `value`
* is non-null, otherwise removing key `op` (if it exists).
*/
static void SetMapValue(cmCTestGenericHandler::t_StringToString& map,
const std::string& op, const char* value)
void SetMapValue(cmCTestGenericHandler::t_StringToString& map,
const std::string& op, const char* value)
{
if (!value) {
map.erase(op);
@@ -34,11 +35,26 @@ static void SetMapValue(cmCTestGenericHandler::t_StringToString& map,
map[op] = value;
}
void SetMapValue(cmCTestGenericHandler::t_StringToString& map,
const std::string& op, cmProp value)
{
if (!value) {
map.erase(op);
return;
}
map[op] = *value;
}
}
void cmCTestGenericHandler::SetOption(const std::string& op, const char* value)
{
SetMapValue(this->Options, op, value);
}
void cmCTestGenericHandler::SetOption(const std::string& op, cmProp value)
{
SetMapValue(this->Options, op, value);
}
void cmCTestGenericHandler::SetPersistentOption(const std::string& op,
const char* value)
@@ -46,6 +62,12 @@ void cmCTestGenericHandler::SetPersistentOption(const std::string& op,
this->SetOption(op, value);
SetMapValue(this->PersistentOptions, op, value);
}
void cmCTestGenericHandler::SetPersistentOption(const std::string& op,
cmProp value)
{
this->SetOption(op, value);
SetMapValue(this->PersistentOptions, op, value);
}
void cmCTestGenericHandler::AddMultiOption(const std::string& op,
const std::string& value)

View File

@@ -87,7 +87,17 @@ public:
* as a multi-value will return nullptr.
*/
void SetPersistentOption(const std::string& op, const char* value);
void SetPersistentOption(const std::string& op, const std::string& value)
{
this->SetPersistentOption(op, cmProp(value));
}
void SetPersistentOption(const std::string& op, cmProp value);
void SetOption(const std::string& op, const char* value);
void SetOption(const std::string& op, const std::string& value)
{
this->SetOption(op, cmProp(value));
}
void SetOption(const std::string& op, cmProp value);
cmProp GetOption(const std::string& op);
/**

View File

@@ -119,15 +119,15 @@ cmCTestGenericHandler* cmCTestSubmitCommand::InitializeHandler()
handler->SetHttpHeaders(this->HttpHeaders);
}
handler->SetOption("RetryDelay", this->RetryDelay.c_str());
handler->SetOption("RetryCount", this->RetryCount.c_str());
handler->SetOption("RetryDelay", this->RetryDelay);
handler->SetOption("RetryCount", this->RetryCount);
handler->SetOption("InternalTest", this->InternalTest ? "ON" : "OFF");
handler->SetQuiet(this->Quiet);
if (this->CDashUpload) {
handler->SetOption("CDashUploadFile", this->CDashUploadFile.c_str());
handler->SetOption("CDashUploadType", this->CDashUploadType.c_str());
handler->SetOption("CDashUploadFile", this->CDashUploadFile);
handler->SetOption("CDashUploadType", this->CDashUploadType);
}
return handler;
}

View File

@@ -64,13 +64,13 @@ cmCTestGenericHandler* cmCTestTestCommand::InitializeHandler()
if (!this->Start.empty() || !this->End.empty() || !this->Stride.empty()) {
handler->SetOption(
"TestsToRunInformation",
cmStrCat(this->Start, ',', this->End, ',', this->Stride).c_str());
cmStrCat(this->Start, ',', this->End, ',', this->Stride));
}
if (!this->Exclude.empty()) {
handler->SetOption("ExcludeRegularExpression", this->Exclude.c_str());
handler->SetOption("ExcludeRegularExpression", this->Exclude);
}
if (!this->Include.empty()) {
handler->SetOption("IncludeRegularExpression", this->Include.c_str());
handler->SetOption("IncludeRegularExpression", this->Include);
}
if (!this->ExcludeLabel.empty()) {
handler->AddMultiOption("ExcludeLabelRegularExpression",
@@ -81,30 +81,30 @@ cmCTestGenericHandler* cmCTestTestCommand::InitializeHandler()
}
if (!this->ExcludeFixture.empty()) {
handler->SetOption("ExcludeFixtureRegularExpression",
this->ExcludeFixture.c_str());
this->ExcludeFixture);
}
if (!this->ExcludeFixtureSetup.empty()) {
handler->SetOption("ExcludeFixtureSetupRegularExpression",
this->ExcludeFixtureSetup.c_str());
this->ExcludeFixtureSetup);
}
if (!this->ExcludeFixtureCleanup.empty()) {
handler->SetOption("ExcludeFixtureCleanupRegularExpression",
this->ExcludeFixtureCleanup.c_str());
this->ExcludeFixtureCleanup);
}
if (this->StopOnFailure) {
handler->SetOption("StopOnFailure", "ON");
}
if (!this->ParallelLevel.empty()) {
handler->SetOption("ParallelLevel", this->ParallelLevel.c_str());
handler->SetOption("ParallelLevel", this->ParallelLevel);
}
if (!this->Repeat.empty()) {
handler->SetOption("Repeat", this->Repeat.c_str());
handler->SetOption("Repeat", this->Repeat);
}
if (!this->ScheduleRandom.empty()) {
handler->SetOption("ScheduleRandom", this->ScheduleRandom.c_str());
handler->SetOption("ScheduleRandom", this->ScheduleRandom);
}
if (!this->ResourceSpecFile.empty()) {
handler->SetOption("ResourceSpecFile", this->ResourceSpecFile.c_str());
handler->SetOption("ResourceSpecFile", this->ResourceSpecFile);
}
if (!this->StopTime.empty()) {
this->CTest->SetStopTime(this->StopTime);

View File

@@ -79,7 +79,7 @@ cmCTestGenericHandler* cmCTestUpdateCommand::InitializeHandler()
this->SetError("source directory not specified. Please use SOURCE tag");
return nullptr;
}
handler->SetOption("SourceDirectory", source_dir.c_str());
handler->SetOption("SourceDirectory", source_dir);
handler->SetQuiet(this->Quiet);
return handler;
}