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]>

Reply via email to