Re: [PATCH v3 15/49] tests/qtest/cdrom-test: replace HMP "info block" with QMP query-block

"Denis V. Lunev" <[email protected]>
Newsgroups gmane.comp.emulators.qemu.block,gmane.comp.emulators.qemu
Message-ID <[email protected]>
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]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.