mirror of
https://github.com/qemu/qemu.git
synced 2024-12-05 09:43:44 +08:00
tests/qtest/readconfig: Rework test_object_rng_resp into a generic function
test_object_rng_resp() can be reworked quite easily to allow testing for arbitrary objects in the qom-list response. Message-Id: <20230228211533.201837-2-thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
3f0760ea31
commit
79571e7f14
@ -124,13 +124,15 @@ static void test_spice(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
static void test_object_rng_resp(QObject *res)
|
||||
static void test_object_available(QObject *res, const char *name,
|
||||
const char *type)
|
||||
{
|
||||
Visitor *v;
|
||||
g_autoptr(ObjectPropertyInfoList) objs = NULL;
|
||||
ObjectPropertyInfoList *tmp;
|
||||
ObjectPropertyInfo *obj;
|
||||
bool seen_rng = false;
|
||||
bool object_available = false;
|
||||
g_autofree char *childtype = g_strdup_printf("child<%s>", type);
|
||||
|
||||
g_assert(res);
|
||||
v = qobject_input_visitor_new(res);
|
||||
@ -142,16 +144,15 @@ static void test_object_rng_resp(QObject *res)
|
||||
g_assert(tmp->value);
|
||||
|
||||
obj = tmp->value;
|
||||
if (g_str_equal(obj->name, "rng0") &&
|
||||
g_str_equal(obj->type, "child<rng-builtin>")) {
|
||||
seen_rng = true;
|
||||
if (g_str_equal(obj->name, name) && g_str_equal(obj->type, childtype)) {
|
||||
object_available = true;
|
||||
break;
|
||||
}
|
||||
|
||||
tmp = tmp->next;
|
||||
}
|
||||
|
||||
g_assert(seen_rng);
|
||||
g_assert(object_available);
|
||||
|
||||
visit_free(v);
|
||||
}
|
||||
@ -170,7 +171,7 @@ static void test_object_rng(void)
|
||||
resp = qtest_qmp(qts,
|
||||
"{ 'execute': 'qom-list',"
|
||||
" 'arguments': {'path': '/objects' }}");
|
||||
test_object_rng_resp(qdict_get(resp, "return"));
|
||||
test_object_available(qdict_get(resp, "return"), "rng0", "rng-builtin");
|
||||
qobject_unref(resp);
|
||||
|
||||
qtest_quit(qts);
|
||||
|
Loading…
Reference in New Issue
Block a user