qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 4/7] libqtest: add qmp(fmt, ...) -> QDict* fu


From: Andreas Färber
Subject: Re: [Qemu-devel] [PATCH v3 4/7] libqtest: add qmp(fmt, ...) -> QDict* function
Date: Wed, 06 Nov 2013 16:32:40 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.0

Am 30.10.2013 14:54, schrieb Stefan Hajnoczi:
> Add a qtest qmp() function that returns the response object.  This
> allows test cases to verify the result or to check for error responses.
> It also allows waiting for QMP events.
> 
> Signed-off-by: Stefan Hajnoczi <address@hidden>
> ---
>  tests/libqtest.c | 66 
> ++++++++++++++++++++++++++++++++++++++++++++------------
>  tests/libqtest.h | 37 +++++++++++++++++++++++++++++++
>  2 files changed, 89 insertions(+), 14 deletions(-)
[...]
> diff --git a/tests/libqtest.h b/tests/libqtest.h
> index 4f1b060..9deebdc 100644
> --- a/tests/libqtest.h
> +++ b/tests/libqtest.h
> @@ -22,6 +22,7 @@
>  #include <stdbool.h>
>  #include <stdarg.h>
>  #include <sys/types.h>
> +#include "qapi/qmp/qdict.h"
>  
>  typedef struct QTestState QTestState;
>  
> @@ -53,6 +54,15 @@ void qtest_quit(QTestState *s);
>  void qtest_qmp_discard_response(QTestState *s, const char *fmt, ...);
>  
>  /**
> + * qtest_qmp:
> + * @s: #QTestState instance to operate on.
> + * @fmt...: QMP message to send to qemu
> + *
> + * Sends a QMP message to QEMU and returns the response.
> + */
> +QDict *qtest_qmp(QTestState *s, const char *fmt, ...);
> +
> +/**
>   * qtest_qmpv_discard_response:
>   * @s: #QTestState instance to operate on.
>   * @fmt: QMP message to send to QEMU
> @@ -63,6 +73,16 @@ void qtest_qmp_discard_response(QTestState *s, const char 
> *fmt, ...);
>  void qtest_qmpv_discard_response(QTestState *s, const char *fmt, va_list ap);
>  
>  /**
> + * qtest_qmpv:
> + * @s: #QTestState instance to operate on.
> + * @fmt: QMP message to send to QEMU
> + * @ap: QMP message arguments
> + *
> + * Sends a QMP message to QEMU and returns the response.
> + */
> +QDict *qtest_qmpv(QTestState *s, const char *fmt, va_list ap);
> +
> +/**
>   * qtest_get_irq:
>   * @s: #QTestState instance to operate on.
>   * @num: Interrupt to observe.
> @@ -331,6 +351,23 @@ static inline void qtest_end(void)
>  }
>  
>  /**
> + * qmp:
> + * @fmt...: QMP message to send to qemu
> + *
> + * Sends a QMP message to QEMU and returns the response.
> + */
> +static inline QDict *qmp(const char *fmt, ...)
> +{
> +    va_list ap;
> +    QDict *response;
> +
> +    va_start(ap, fmt);
> +    response = qtest_qmpv(global_qtest, fmt, ap);
> +    va_end(ap);
> +    return response;
> +}
> +
> +/**
>   * qmp_discard_response:
>   * @fmt...: QMP message to send to qemu
>   *

I can't really judge the JSON implementation, but it looks sane reusing
existing code.

The new prototypes could get the GCC_FMT_ATTR(2,3) and
GCC_FMT_ATTR(1,2), but since that's an improvement over existing code it
can be done as follow-up, so

Reviewed-by: Andreas Färber <address@hidden>

and thanks a lot for following up on Jason's earlier attempt!

Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg



reply via email to

[Prev in Thread] Current Thread [Next in Thread]