mirror of https://github.com/xemu-project/xemu.git
tests/qtest: add various qtest_qmp_assert_success() variants
Add several counterparts of qtest_qmp_assert_success() that can * Use va_list instead of ... * Accept a list of FDs to send * Return the response data Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20230601161347.1803440-2-berrange@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
parent
a86d7b9ec0
commit
28760edcd9
|
@ -1229,25 +1229,108 @@ void qtest_memset(QTestState *s, uint64_t addr, uint8_t pattern, size_t size)
|
|||
qtest_rsp(s);
|
||||
}
|
||||
|
||||
void qtest_qmp_assert_success(QTestState *qts, const char *fmt, ...)
|
||||
QDict *qtest_vqmp_assert_success_ref(QTestState *qts,
|
||||
const char *fmt, va_list args)
|
||||
{
|
||||
va_list ap;
|
||||
QDict *response;
|
||||
QDict *ret;
|
||||
|
||||
va_start(ap, fmt);
|
||||
response = qtest_vqmp(qts, fmt, ap);
|
||||
va_end(ap);
|
||||
response = qtest_vqmp(qts, fmt, args);
|
||||
|
||||
g_assert(response);
|
||||
if (!qdict_haskey(response, "return")) {
|
||||
GString *s = qobject_to_json_pretty(QOBJECT(response), true);
|
||||
g_autoptr(GString) s = qobject_to_json_pretty(QOBJECT(response), true);
|
||||
g_test_message("%s", s->str);
|
||||
g_string_free(s, true);
|
||||
}
|
||||
g_assert(qdict_haskey(response, "return"));
|
||||
ret = qdict_get_qdict(response, "return");
|
||||
qobject_ref(ret);
|
||||
qobject_unref(response);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void qtest_vqmp_assert_success(QTestState *qts,
|
||||
const char *fmt, va_list args)
|
||||
{
|
||||
QDict *response;
|
||||
|
||||
response = qtest_vqmp_assert_success_ref(qts, fmt, args);
|
||||
|
||||
qobject_unref(response);
|
||||
}
|
||||
|
||||
#ifndef _WIN32
|
||||
QDict *qtest_vqmp_fds_assert_success_ref(QTestState *qts, int *fds, size_t nfds,
|
||||
const char *fmt, va_list args)
|
||||
{
|
||||
QDict *response;
|
||||
QDict *ret;
|
||||
|
||||
response = qtest_vqmp_fds(qts, fds, nfds, fmt, args);
|
||||
|
||||
g_assert(response);
|
||||
if (!qdict_haskey(response, "return")) {
|
||||
g_autoptr(GString) s = qobject_to_json_pretty(QOBJECT(response), true);
|
||||
g_test_message("%s", s->str);
|
||||
}
|
||||
g_assert(qdict_haskey(response, "return"));
|
||||
ret = qdict_get_qdict(response, "return");
|
||||
qobject_ref(ret);
|
||||
qobject_unref(response);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void qtest_vqmp_fds_assert_success(QTestState *qts, int *fds, size_t nfds,
|
||||
const char *fmt, va_list args)
|
||||
{
|
||||
QDict *response;
|
||||
response = qtest_vqmp_fds_assert_success_ref(qts, fds, nfds, fmt, args);
|
||||
qobject_unref(response);
|
||||
}
|
||||
#endif /* !_WIN32 */
|
||||
|
||||
QDict *qtest_qmp_assert_success_ref(QTestState *qts, const char *fmt, ...)
|
||||
{
|
||||
QDict *response;
|
||||
va_list ap;
|
||||
va_start(ap, fmt);
|
||||
response = qtest_vqmp_assert_success_ref(qts, fmt, ap);
|
||||
va_end(ap);
|
||||
return response;
|
||||
}
|
||||
|
||||
void qtest_qmp_assert_success(QTestState *qts, const char *fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, fmt);
|
||||
qtest_vqmp_assert_success(qts, fmt, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
#ifndef _WIN32
|
||||
QDict *qtest_qmp_fds_assert_success_ref(QTestState *qts, int *fds, size_t nfds,
|
||||
const char *fmt, ...)
|
||||
{
|
||||
QDict *response;
|
||||
va_list ap;
|
||||
va_start(ap, fmt);
|
||||
response = qtest_vqmp_fds_assert_success_ref(qts, fds, nfds, fmt, ap);
|
||||
va_end(ap);
|
||||
return response;
|
||||
}
|
||||
|
||||
void qtest_qmp_fds_assert_success(QTestState *qts, int *fds, size_t nfds,
|
||||
const char *fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, fmt);
|
||||
qtest_vqmp_fds_assert_success(qts, fds, nfds, fmt, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
#endif /* !_WIN32 */
|
||||
|
||||
bool qtest_big_endian(QTestState *s)
|
||||
{
|
||||
return s->big_endian;
|
||||
|
|
|
@ -693,6 +693,86 @@ void qtest_add_abrt_handler(GHookFunc fn, const void *data);
|
|||
*/
|
||||
void qtest_remove_abrt_handler(void *data);
|
||||
|
||||
/**
|
||||
* qtest_vqmp_assert_success_ref:
|
||||
* @qts: QTestState instance to operate on
|
||||
* @fmt: QMP message to send to qemu, formatted like
|
||||
* qobject_from_jsonf_nofail(). See parse_interpolation() for what's
|
||||
* supported after '%'.
|
||||
* @args: variable arguments for @fmt
|
||||
*
|
||||
* Sends a QMP message to QEMU, asserts that a 'return' key is present in
|
||||
* the response, and returns the response.
|
||||
*/
|
||||
QDict *qtest_vqmp_assert_success_ref(QTestState *qts,
|
||||
const char *fmt, va_list args)
|
||||
G_GNUC_PRINTF(2, 0);
|
||||
|
||||
/**
|
||||
* qtest_vqmp_assert_success:
|
||||
* @qts: QTestState instance to operate on
|
||||
* @fmt: QMP message to send to qemu, formatted like
|
||||
* qobject_from_jsonf_nofail(). See parse_interpolation() for what's
|
||||
* supported after '%'.
|
||||
* @args: variable arguments for @fmt
|
||||
*
|
||||
* Sends a QMP message to QEMU and asserts that a 'return' key is present in
|
||||
* the response.
|
||||
*/
|
||||
void qtest_vqmp_assert_success(QTestState *qts,
|
||||
const char *fmt, va_list args)
|
||||
G_GNUC_PRINTF(2, 0);
|
||||
|
||||
#ifndef _WIN32
|
||||
/**
|
||||
* qtest_vqmp_fds_assert_success_ref:
|
||||
* @qts: QTestState instance to operate on
|
||||
* @fds: the file descriptors to send
|
||||
* @nfds: number of @fds to send
|
||||
* @fmt: QMP message to send to qemu, formatted like
|
||||
* qobject_from_jsonf_nofail(). See parse_interpolation() for what's
|
||||
* supported after '%'.
|
||||
* @args: variable arguments for @fmt
|
||||
*
|
||||
* Sends a QMP message with file descriptors to QEMU,
|
||||
* asserts that a 'return' key is present in the response,
|
||||
* and returns the response.
|
||||
*/
|
||||
QDict *qtest_vqmp_fds_assert_success_ref(QTestState *qts, int *fds, size_t nfds,
|
||||
const char *fmt, va_list args)
|
||||
G_GNUC_PRINTF(4, 0);
|
||||
|
||||
/**
|
||||
* qtest_vqmp_fds_assert_success:
|
||||
* @qts: QTestState instance to operate on
|
||||
* @fds: the file descriptors to send
|
||||
* @nfds: number of @fds to send
|
||||
* @fmt: QMP message to send to qemu, formatted like
|
||||
* qobject_from_jsonf_nofail(). See parse_interpolation() for what's
|
||||
* supported after '%'.
|
||||
* @args: variable arguments for @fmt
|
||||
*
|
||||
* Sends a QMP message with file descriptors to QEMU and
|
||||
* asserts that a 'return' key is present in the response.
|
||||
*/
|
||||
void qtest_vqmp_fds_assert_success(QTestState *qts, int *fds, size_t nfds,
|
||||
const char *fmt, va_list args)
|
||||
G_GNUC_PRINTF(4, 0);
|
||||
#endif /* !_WIN32 */
|
||||
|
||||
/**
|
||||
* qtest_qmp_assert_success_ref:
|
||||
* @qts: QTestState instance to operate on
|
||||
* @fmt: QMP message to send to qemu, formatted like
|
||||
* qobject_from_jsonf_nofail(). See parse_interpolation() for what's
|
||||
* supported after '%'.
|
||||
*
|
||||
* Sends a QMP message to QEMU, asserts that a 'return' key is present in
|
||||
* the response, and returns the response.
|
||||
*/
|
||||
QDict *qtest_qmp_assert_success_ref(QTestState *qts, const char *fmt, ...)
|
||||
G_GNUC_PRINTF(2, 3);
|
||||
|
||||
/**
|
||||
* qtest_qmp_assert_success:
|
||||
* @qts: QTestState instance to operate on
|
||||
|
@ -706,6 +786,41 @@ void qtest_remove_abrt_handler(void *data);
|
|||
void qtest_qmp_assert_success(QTestState *qts, const char *fmt, ...)
|
||||
G_GNUC_PRINTF(2, 3);
|
||||
|
||||
#ifndef _WIN32
|
||||
/**
|
||||
* qtest_qmp_fd_assert_success_ref:
|
||||
* @qts: QTestState instance to operate on
|
||||
* @fds: the file descriptors to send
|
||||
* @nfds: number of @fds to send
|
||||
* @fmt: QMP message to send to qemu, formatted like
|
||||
* qobject_from_jsonf_nofail(). See parse_interpolation() for what's
|
||||
* supported after '%'.
|
||||
*
|
||||
* Sends a QMP message with file descriptors to QEMU,
|
||||
* asserts that a 'return' key is present in the response,
|
||||
* and returns the response.
|
||||
*/
|
||||
QDict *qtest_qmp_fds_assert_success_ref(QTestState *qts, int *fds, size_t nfds,
|
||||
const char *fmt, ...)
|
||||
G_GNUC_PRINTF(4, 5);
|
||||
|
||||
/**
|
||||
* qtest_qmp_fd_assert_success:
|
||||
* @qts: QTestState instance to operate on
|
||||
* @fds: the file descriptors to send
|
||||
* @nfds: number of @fds to send
|
||||
* @fmt: QMP message to send to qemu, formatted like
|
||||
* qobject_from_jsonf_nofail(). See parse_interpolation() for what's
|
||||
* supported after '%'.
|
||||
*
|
||||
* Sends a QMP message with file descriptors to QEMU and
|
||||
* asserts that a 'return' key is present in the response.
|
||||
*/
|
||||
void qtest_qmp_fds_assert_success(QTestState *qts, int *fds, size_t nfds,
|
||||
const char *fmt, ...)
|
||||
G_GNUC_PRINTF(4, 5);
|
||||
#endif /* !_WIN32 */
|
||||
|
||||
/**
|
||||
* qtest_cb_for_every_machine:
|
||||
* @cb: Pointer to the callback function
|
||||
|
|
Loading…
Reference in New Issue