On 8/16/26 21:12, Marc-André Lureau wrote:
> The test_cdrom_param() function uses qtest_hmp() to run "info block",
> which depends on the human-monitor-command QMP endpoint. Replace it
> with the QMP query-block command so the test works when HMP is
> disabled (-Dhmp=disabled).
>
> Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
> Reviewed-by: Daniel P. Berrangé <[email protected]>
> Signed-off-by: Marc-André Lureau <[email protected]>
> ---
> tests/qtest/cdrom-test.c | 29 ++++++++++++++++++++++++-----
> 1 file changed, 24 insertions(+), 5 deletions(-)
>
> diff --git a/tests/qtest/cdrom-test.c b/tests/qtest/cdrom-test.c
> index a65854d2bc53..bf997be6d690 100644
> --- a/tests/qtest/cdrom-test.c
> +++ b/tests/qtest/cdrom-test.c
> @@ -14,6 +14,7 @@
> #include "libqtest.h"
> #include "boot-sector.h"
> #include "qobject/qdict.h"
> +#include "qobject/qlist.h"
>
> static char isoimage[] = "cdrom-boot-iso-XXXXXX";
>
> @@ -92,17 +93,35 @@ cleanup:
>
> /**
> * Check that at least the -cdrom parameter is basically working, i.e. we can
> - * see the filename of the ISO image in the output of "info block" afterwards
> + * see the filename of the ISO image in the output of "query-block"
> afterwards
> */
> static void test_cdrom_param(gconstpointer data)
> {
> QTestState *qts;
> - char *resp;
> + QDict *response;
> + QList *ret;
> + QListEntry *entry;
> + bool found = false;
>
> qts = qtest_initf("-M %s -cdrom %s", (const char *)data, isoimage);
> - resp = qtest_hmp(qts, "info block");
> - g_assert(strstr(resp, isoimage) != 0);
> - g_free(resp);
> + response = qtest_qmp(qts, "{'execute': 'query-block'}");
> + g_assert(response && qdict_haskey(response, "return"));
> + ret = qdict_get_qlist(response, "return");
> +
> + QLIST_FOREACH_ENTRY(ret, entry) {
> + QDict *entry_dict = qobject_to(QDict, entry->value);
> + QDict *inserted = qdict_get_qdict(entry_dict, "inserted");
> + if (inserted) {
> + const char *file = qdict_get_str(inserted, "file");
> + if (file && strstr(file, isoimage)) {
> + found = true;
> + break;
> + }
> + }
> + }
> +
> + g_assert(found);
> + qobject_unref(response);
> qtest_quit(qts);
> }
>
>
Reviewed-by: Denis V. Lunev <[email protected]>