qtest: switch users back to qtest_qmp_receive

Let test use the new functionality for buffering events.
The only remaining users of qtest_qmp_receive_dict are tests
that fuzz the QMP protocol.

Tested with 'make check-qtest'.

Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20201006123904.610658-4-mlevitsk@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Maxim Levitsky 2020-10-06 15:38:53 +03:00 committed by Paolo Bonzini
parent c45a70d8c2
commit bb1a5b97f7
5 changed files with 15 additions and 22 deletions

View File

@ -1590,7 +1590,7 @@ static void test_atapi_tray(void)
qtest_qmp_send(ahci->parent->qts, "{'execute': 'blockdev-open-tray', "
"'arguments': {'id': 'cd0'}}");
atapi_wait_tray(ahci, true);
rsp = qtest_qmp_receive_dict(ahci->parent->qts);
rsp = qtest_qmp_receive(ahci->parent->qts);
qobject_unref(rsp);
qmp_discard_response(ahci->parent->qts,
@ -1620,7 +1620,7 @@ static void test_atapi_tray(void)
qtest_qmp_send(ahci->parent->qts, "{'execute': 'blockdev-close-tray', "
"'arguments': {'id': 'cd0'}}");
atapi_wait_tray(ahci, false);
rsp = qtest_qmp_receive_dict(ahci->parent->qts);
rsp = qtest_qmp_receive(ahci->parent->qts);
qobject_unref(rsp);
/* Now, to convince ATAPI we understand the media has changed... */

View File

@ -15,9 +15,6 @@
#include "libqos/virtio.h"
#include "qapi/qmp/qdict.h"
/* TODO actually test the results and get rid of this */
#define qmp_discard_response(q, ...) qobject_unref(qtest_qmp(q, __VA_ARGS__))
static void drive_add(QTestState *qts)
{
char *resp = qtest_hmp(qts, "drive_add 0 if=none,id=drive0");
@ -38,13 +35,13 @@ static void device_del(QTestState *qts)
{
QDict *response;
/* Complication: ignore DEVICE_DELETED event */
qmp_discard_response(qts, "{'execute': 'device_del',"
response = qtest_qmp(qts, "{'execute': 'device_del',"
" 'arguments': { 'id': 'dev0' } }");
response = qtest_qmp_receive_dict(qts);
g_assert(response);
g_assert(qdict_haskey(response, "return"));
qobject_unref(response);
qtest_qmp_eventwait(qts, "DEVICE_DELETED");
}
static void test_drive_without_dev(void)

View File

@ -324,7 +324,7 @@ QTestState *qtest_init(const char *extra_args)
QDict *greeting;
/* Read the QMP greeting and then do the handshake */
greeting = qtest_qmp_receive_dict(s);
greeting = qtest_qmp_receive(s);
qobject_unref(greeting);
qobject_unref(qtest_qmp(s, "{ 'execute': 'qmp_capabilities' }"));
@ -700,7 +700,7 @@ QDict *qtest_vqmp_fds(QTestState *s, int *fds, size_t fds_num,
qtest_qmp_vsend_fds(s, fds, fds_num, fmt, ap);
/* Receive reply */
return qtest_qmp_receive_dict(s);
return qtest_qmp_receive(s);
}
QDict *qtest_vqmp(QTestState *s, const char *fmt, va_list ap)
@ -708,7 +708,7 @@ QDict *qtest_vqmp(QTestState *s, const char *fmt, va_list ap)
qtest_qmp_vsend(s, fmt, ap);
/* Receive reply */
return qtest_qmp_receive_dict(s);
return qtest_qmp_receive(s);
}
QDict *qmp_fd(int fd, const char *fmt, ...)
@ -850,12 +850,6 @@ char *qtest_vhmp(QTestState *s, const char *fmt, va_list ap)
" 'arguments': {'command-line': %s}}",
cmd);
ret = g_strdup(qdict_get_try_str(resp, "return"));
while (ret == NULL && qdict_get_try_str(resp, "event")) {
/* Ignore asynchronous QMP events */
qobject_unref(resp);
resp = qtest_qmp_receive_dict(s);
ret = g_strdup(qdict_get_try_str(resp, "return"));
}
g_assert(ret);
qobject_unref(resp);
g_free(cmd);

View File

@ -24,9 +24,7 @@ static void test_panic(void)
qtest_outb(qts, 0x505, 0x1);
response = qtest_qmp_receive_dict(qts);
g_assert(qdict_haskey(response, "event"));
g_assert_cmpstr(qdict_get_str(response, "event"), ==, "GUEST_PANICKED");
response = qtest_qmp_eventwait_ref(qts, "GUEST_PANICKED");
g_assert(qdict_haskey(response, "data"));
data = qdict_get_qdict(response, "data");
g_assert(qdict_haskey(data, "action"));

View File

@ -237,12 +237,16 @@ void tpm_util_migrate(QTestState *who, const char *uri)
void tpm_util_wait_for_migration_complete(QTestState *who)
{
while (true) {
QDict *rsp;
QDict *rsp_return;
bool completed;
const char *status;
qtest_qmp_send(who, "{ 'execute': 'query-migrate' }");
rsp_return = qtest_qmp_receive_success(who, NULL, NULL);
rsp = qtest_qmp(who, "{ 'execute': 'query-migrate' }");
g_assert(qdict_haskey(rsp, "return"));
rsp_return = qdict_get_qdict(rsp, "return");
g_assert(!qdict_haskey(rsp_return, "error"));
status = qdict_get_str(rsp_return, "status");
completed = strcmp(status, "completed") == 0;
g_assert_cmpstr(status, !=, "failed");