Change settings.modelChecker.targets to take an array instead of string

This commit is contained in:
Leonardo Alt
2021-04-19 17:53:03 +02:00
parent 6ef7e39e46
commit e3abde43f5
41 changed files with 180 additions and 62 deletions
+17 -6
View File
@@ -913,12 +913,23 @@ std::variant<StandardCompiler::InputsAndSettings, Json::Value> StandardCompiler:
if (modelCheckerSettings.isMember("targets"))
{
if (!modelCheckerSettings["targets"].isString())
return formatFatalError("JSONError", "settings.modelChecker.targets must be a string.");
std::optional<ModelCheckerTargets> targets = ModelCheckerTargets::fromString(modelCheckerSettings["targets"].asString());
if (!targets)
return formatFatalError("JSONError", "Invalid model checker targets requested.");
ret.modelCheckerSettings.targets = *targets;
auto const& targetsArray = modelCheckerSettings["targets"];
if (!targetsArray.isArray())
return formatFatalError("JSONError", "settings.modelChecker.targets must be an array.");
ModelCheckerTargets targets;
for (auto const& t: targetsArray)
{
if (!t.isString())
return formatFatalError("JSONError", "Every target in settings.modelChecker.targets must be a string.");
if (!targets.setFromString(t.asString()))
return formatFatalError("JSONError", "Invalid model checker targets requested.");
}
if (targets.targets.empty())
return formatFatalError("JSONError", "settings.modelChecker.targets must be a non-empty array.");
ret.modelCheckerSettings.targets = targets;
}
if (modelCheckerSettings.isMember("timeout"))