Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15-SP2
qemu.20755
qtest-switch-users-back-to-qtest_qmp_rec.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File qtest-switch-users-back-to-qtest_qmp_rec.patch of Package qemu.20755
From: Maxim Levitsky <mlevitsk@redhat.com> Date: Tue, 6 Oct 2020 15:38:53 +0300 Subject: qtest: switch users back to qtest_qmp_receive Git-commit: bb1a5b97f75ae209d8707f698da23088d7b9bbb5 References: bsc#1184574 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> Signed-off-by: Lin Ma <lma@suse.com> --- tests/ahci-test.c | 4 ++-- tests/drive_del-test.c | 9 +++------ tests/libqtest.c | 12 +++--------- tests/pvpanic-test.c | 4 +--- tests/tpm-util.c | 8 ++++++-- 5 files changed, 15 insertions(+), 22 deletions(-) diff --git a/tests/ahci-test.c b/tests/ahci-test.c index 39c14f60f046fb8cf7522e2a1204..c8d42ceea0575db645ce62ec2f0b 100644 --- a/tests/ahci-test.c +++ b/tests/ahci-test.c @@ -1589,7 +1589,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, @@ -1619,7 +1619,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... */ diff --git a/tests/drive_del-test.c b/tests/drive_del-test.c index f15ffdf018f9fac6fc10d3b42fe0..64c0fe242bed07073b7a3dcf635d 100644 --- a/tests/drive_del-test.c +++ b/tests/drive_del-test.c @@ -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) diff --git a/tests/libqtest.c b/tests/libqtest.c index e9bca67b5e7bae026039822d979d..fe82b11e046fef5eea32ac602463 100644 --- a/tests/libqtest.c +++ b/tests/libqtest.c @@ -295,7 +295,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' }")); @@ -672,7 +672,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) @@ -680,7 +680,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, ...) @@ -822,12 +822,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); diff --git a/tests/pvpanic-test.c b/tests/pvpanic-test.c index 15fd98db626fc9d58126f05bdbfa..dd724cbdc882ad59e2ecf8984f95 100644 --- a/tests/pvpanic-test.c +++ b/tests/pvpanic-test.c @@ -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")); diff --git a/tests/tpm-util.c b/tests/tpm-util.c index e08b13765148f3c44e8a97564a03..f814a1cf7d2c82721eb1104ee4e0 100644 --- a/tests/tpm-util.c +++ b/tests/tpm-util.c @@ -236,12 +236,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");
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor