diff options
author | Thomas Huth <thuth@redhat.com> | 2022-11-21 20:42:40 +0100 |
---|---|---|
committer | Thomas Huth <thuth@redhat.com> | 2022-11-23 10:58:48 +0100 |
commit | 9f083d618140dd1cae824bb2f8a2ae719db73f13 (patch) | |
tree | 9d68d43c51748fe9d711779373fc6b39f7bf6ae1 | |
parent | 72cf57b07444c3048069fa9e47decc9cca3956a7 (diff) | |
download | qemu-9f083d618140dd1cae824bb2f8a2ae719db73f13.zip qemu-9f083d618140dd1cae824bb2f8a2ae719db73f13.tar.gz qemu-9f083d618140dd1cae824bb2f8a2ae719db73f13.tar.bz2 |
tests/qtest: Decrease the amount of output from the qom-test
The logs in the gitlab-CI have a size constraint, and sometimes
we already hit this limit. The biggest part of the log then seems
to be filled by the qom-test, so we should decrease the size of
the output - which can be done easily by not printing the path
for each property, since the path has already been logged at the
beginning of each node that we handle here.
However, if we omit the path, we should make sure to not recurse
into child nodes in between, so that it is clear to which node
each property belongs. Thus store the children and links in a
temporary list and recurse only at the end of each node, when
all properties have already been printed.
Message-Id: <20221121194240.149268-1-thuth@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
-rw-r--r-- | tests/qtest/qom-test.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/tests/qtest/qom-test.c b/tests/qtest/qom-test.c index 7b871b2..13510bc 100644 --- a/tests/qtest/qom-test.c +++ b/tests/qtest/qom-test.c @@ -20,6 +20,7 @@ static void test_properties(QTestState *qts, const char *path, bool recurse) QDict *response, *tuple, *tmp; QList *list; QListEntry *entry; + GSList *children = NULL, *links = NULL; g_test_message("Obtaining properties of %s", path); response = qtest_qmp(qts, "{ 'execute': 'qom-list'," @@ -41,11 +42,14 @@ static void test_properties(QTestState *qts, const char *path, bool recurse) if (is_child || is_link) { child_path = g_strdup_printf("%s/%s", path, qdict_get_str(tuple, "name")); - test_properties(qts, child_path, is_child); - g_free(child_path); + if (is_child) { + children = g_slist_prepend(children, child_path); + } else { + links = g_slist_prepend(links, child_path); + } } else { const char *prop = qdict_get_str(tuple, "name"); - g_test_message("Testing property %s.%s", path, prop); + g_test_message("-> %s", prop); tmp = qtest_qmp(qts, "{ 'execute': 'qom-get'," " 'arguments': { 'path': %s, 'property': %s } }", @@ -55,6 +59,18 @@ static void test_properties(QTestState *qts, const char *path, bool recurse) qobject_unref(tmp); } } + + while (links) { + test_properties(qts, links->data, false); + g_free(links->data); + links = g_slist_delete_link(links, links); + } + while (children) { + test_properties(qts, children->data, true); + g_free(children->data); + children = g_slist_delete_link(children, children); + } + qobject_unref(response); } |