mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
target: Improve error reporting for CpuModelInfo member @props
query-cpu-model-comparison, query-cpu-model-baseline, and query-cpu-model-expansion take CpuModelInfo arguments. Errors in @props members of these arguments are reported for 'props', without further context. For instance, s390x rejects {"execute": "query-cpu-model-comparison", "arguments": {"modela": {"name": "z13", "props": {}}, "modelb": {"name": "z14", "props": []}}} with {"error": {"class": "GenericError", "desc": "Invalid parameter type for 'props', expected: object"}} This is unusual; the common QAPI unmarshaling machinery would complain about 'modelb.props'. Our hand-written code to visit the @props member neglects to provide the context. Tweak it so it provides it. The command above now fails with {"error": {"class": "GenericError", "desc": "Invalid parameter type for 'modelb.props', expected: dict"}} Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-ID: <20240305145919.2186971-4-armbru@redhat.com> Acked-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
This commit is contained in:
parent
68192a5ffd
commit
8934643a0e
5 changed files with 24 additions and 17 deletions
|
@ -213,7 +213,8 @@ static void assert_bad_props(QTestState *qts, const char *cpu_type)
|
|||
error = resp_get_error(resp);
|
||||
g_assert(error);
|
||||
g_assert_cmpstr(error, ==,
|
||||
"Invalid parameter type for 'props', expected: object");
|
||||
"Invalid parameter type for 'model.props',"
|
||||
" expected: object");
|
||||
qobject_unref(resp);
|
||||
}
|
||||
|
||||
|
@ -446,7 +447,7 @@ static void test_query_cpu_model_expansion(const void *data)
|
|||
assert_bad_props(qts, "max");
|
||||
assert_error(qts, "foo", "The CPU type 'foo' is not a recognized "
|
||||
"ARM CPU type", NULL);
|
||||
assert_error(qts, "max", "Parameter 'props.not-a-prop' is unexpected",
|
||||
assert_error(qts, "max", "Parameter 'model.props.not-a-prop' is unexpected",
|
||||
"{ 'not-a-prop': false }");
|
||||
assert_error(qts, "host", "The CPU type 'host' requires KVM", NULL);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue