fileapi: Make launcher attribute 'arguments' optional

This was missed in commit 80a64c9ce5 (fileapi: Add cross-compiling
emulator to codemodel-v2, 2023-11-11).
This commit is contained in:
Ralf Habacker
2023-12-11 23:30:03 +01:00
committed by Brad King
parent b44e38a397
commit 478a5f4e04
3 changed files with 12 additions and 8 deletions

View File

@@ -2102,7 +2102,9 @@ Json::Value Target::DumpLauncher(const char* name, const char* type)
for (std::string const& arg : cmMakeRange(commandWithArgs).advance(1)) {
args.append(arg);
}
launcher["arguments"] = std::move(args);
if (!args.empty()) {
launcher["arguments"] = std::move(args);
}
}
return launcher;
}

View File

@@ -410,15 +410,18 @@ def check_target(c):
expected_keys.append("launchers")
def check_launcher(actual, expected):
assert is_dict(actual)
launcher_keys = ["arguments", "command", "type"]
launcher_keys = ["command", "type"]
if "arguments" in expected:
launcher_keys.append("arguments")
assert sorted(actual.keys()) == sorted(launcher_keys)
assert matches(actual["command"], expected["command"])
assert matches(actual["type"], expected["type"])
if expected["arguments"] is not None:
check_list_match(lambda a, e: matches(a, e),
actual["arguments"], expected["arguments"],
missing_exception=lambda e: "argument: %s" % e,
extra_exception=lambda a: "argument: %s" % actual["arguments"])
if "arguments" in expected:
if expected["arguments"] is not None:
check_list_match(lambda a, e: matches(a, e),
actual["arguments"], expected["arguments"],
missing_exception=lambda e: "argument: %s" % e,
extra_exception=lambda a: "argument: %s" % actual["arguments"])
check_list_match(lambda a, e: matches(a["type"], e["type"]),
obj["launchers"], expected["launchers"],
check=check_launcher,

View File

@@ -80,7 +80,6 @@
"install": null,
"launchers" : [
{
"arguments" : null,
"command": "^no-such-emulator(\\.exe)?$",
"type" : "emulator"
}