tests/qmp-cmd-test: Add qmp/object-add-duplicate-id

This new test checks that attempting to create an object
with an existing ID gracefully fails.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Acked-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>

Message-Id: <20200629193424.30280-3-eric.auger@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Eric Auger 2020-06-29 21:34:23 +02:00 committed by Paolo Bonzini
parent db57fef1e2
commit 9fc719b869

View File

@ -213,6 +213,23 @@ static void test_object_add_without_props(void)
qtest_quit(qts); qtest_quit(qts);
} }
static void test_object_add_with_duplicate_id(void)
{
QTestState *qts;
QDict *resp;
qts = qtest_init(common_args);
resp = qtest_qmp(qts, "{'execute': 'object-add', 'arguments':"
" {'qom-type': 'memory-backend-ram', 'id': 'ram1', 'props': {'size': 1048576 } } }");
g_assert_nonnull(resp);
g_assert(qdict_haskey(resp, "return"));
resp = qtest_qmp(qts, "{'execute': 'object-add', 'arguments':"
" {'qom-type': 'memory-backend-ram', 'id': 'ram1', 'props': {'size': 1048576 } } }");
g_assert_nonnull(resp);
qmp_assert_error_class(resp, "GenericError");
qtest_quit(qts);
}
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
QmpSchema schema; QmpSchema schema;
@ -225,6 +242,8 @@ int main(int argc, char *argv[])
qtest_add_func("qmp/object-add-without-props", qtest_add_func("qmp/object-add-without-props",
test_object_add_without_props); test_object_add_without_props);
qtest_add_func("qmp/object-add-duplicate-id",
test_object_add_with_duplicate_id);
/* TODO: add coverage of generic object-add failure modes */ /* TODO: add coverage of generic object-add failure modes */
ret = g_test_run(); ret = g_test_run();