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
|
#endif
|
||||||
|
|
||||||
static void test_object_rng_resp(QObject *res)
|
static void test_object_available(QObject *res, const char *name,
|
||||||
|
const char *type)
|
||||||
{
|
{
|
||||||
Visitor *v;
|
Visitor *v;
|
||||||
g_autoptr(ObjectPropertyInfoList) objs = NULL;
|
g_autoptr(ObjectPropertyInfoList) objs = NULL;
|
||||||
ObjectPropertyInfoList *tmp;
|
ObjectPropertyInfoList *tmp;
|
||||||
ObjectPropertyInfo *obj;
|
ObjectPropertyInfo *obj;
|
||||||
bool seen_rng = false;
|
bool object_available = false;
|
||||||
|
g_autofree char *childtype = g_strdup_printf("child<%s>", type);
|
||||||
|
|
||||||
g_assert(res);
|
g_assert(res);
|
||||||
v = qobject_input_visitor_new(res);
|
v = qobject_input_visitor_new(res);
|
||||||
@ -142,16 +144,15 @@ static void test_object_rng_resp(QObject *res)
|
|||||||
g_assert(tmp->value);
|
g_assert(tmp->value);
|
||||||
|
|
||||||
obj = tmp->value;
|
obj = tmp->value;
|
||||||
if (g_str_equal(obj->name, "rng0") &&
|
if (g_str_equal(obj->name, name) && g_str_equal(obj->type, childtype)) {
|
||||||
g_str_equal(obj->type, "child<rng-builtin>")) {
|
object_available = true;
|
||||||
seen_rng = true;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
tmp = tmp->next;
|
tmp = tmp->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_assert(seen_rng);
|
g_assert(object_available);
|
||||||
|
|
||||||
visit_free(v);
|
visit_free(v);
|
||||||
}
|
}
|
||||||
@ -170,7 +171,7 @@ static void test_object_rng(void)
|
|||||||
resp = qtest_qmp(qts,
|
resp = qtest_qmp(qts,
|
||||||
"{ 'execute': 'qom-list',"
|
"{ 'execute': 'qom-list',"
|
||||||
" 'arguments': {'path': '/objects' }}");
|
" 'arguments': {'path': '/objects' }}");
|
||||||
test_object_rng_resp(qdict_get(resp, "return"));
|
test_object_available(qdict_get(resp, "return"), "rng0", "rng-builtin");
|
||||||
qobject_unref(resp);
|
qobject_unref(resp);
|
||||||
|
|
||||||
qtest_quit(qts);
|
qtest_quit(qts);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user