From: Thomas Huth <thuth@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>, qemu-devel@nongnu.org
Cc: ehabkost@redhat.com
Subject: [Qemu-devel] [PULL 09/14] tests/drive_del-test: Use qtest_init() instead of qtest_start()
Date: Thu, 9 May 2019 10:19:25 +0200 [thread overview]
Message-ID: <20190509081930.19081-10-thuth@redhat.com> (raw)
In-Reply-To: <20190509081930.19081-1-thuth@redhat.com>
qtest_start() + qtest_end() should be avoided, since they use the
global_qtest variable that we want to get rid of in the long run
Use qtest_init() and qtest_quit() instead.
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20190508142153.21555-1-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/drive_del-test.c | 63 +++++++++++++++++++++---------------------
1 file changed, 32 insertions(+), 31 deletions(-)
diff --git a/tests/drive_del-test.c b/tests/drive_del-test.c
index 2f9474e03c..b56b223fc2 100644
--- a/tests/drive_del-test.c
+++ b/tests/drive_del-test.c
@@ -16,32 +16,32 @@
#include "qapi/qmp/qdict.h"
/* TODO actually test the results and get rid of this */
-#define qmp_discard_response(...) qobject_unref(qmp(__VA_ARGS__))
+#define qmp_discard_response(q, ...) qobject_unref(qtest_qmp(q, __VA_ARGS__))
-static void drive_add(void)
+static void drive_add(QTestState *qts)
{
- char *resp = hmp("drive_add 0 if=none,id=drive0");
+ char *resp = qtest_hmp(qts, "drive_add 0 if=none,id=drive0");
g_assert_cmpstr(resp, ==, "OK\r\n");
g_free(resp);
}
-static void drive_del(void)
+static void drive_del(QTestState *qts)
{
- char *resp = hmp("drive_del drive0");
+ char *resp = qtest_hmp(qts, "drive_del drive0");
g_assert_cmpstr(resp, ==, "");
g_free(resp);
}
-static void device_del(void)
+static void device_del(QTestState *qts)
{
QDict *response;
/* Complication: ignore DEVICE_DELETED event */
- qmp_discard_response("{'execute': 'device_del',"
+ qmp_discard_response(qts, "{'execute': 'device_del',"
" 'arguments': { 'id': 'dev0' } }");
- response = qmp_receive();
+ response = qtest_qmp_receive(qts);
g_assert(response);
g_assert(qdict_haskey(response, "return"));
qobject_unref(response);
@@ -49,18 +49,20 @@ static void device_del(void)
static void test_drive_without_dev(void)
{
+ QTestState *qts;
+
/* Start with an empty drive */
- qtest_start("-drive if=none,id=drive0");
+ qts = qtest_init("-drive if=none,id=drive0");
/* Delete the drive */
- drive_del();
+ drive_del(qts);
/* Ensure re-adding the drive works - there should be no duplicate ID error
* because the old drive must be gone.
*/
- drive_add();
+ drive_add(qts);
- qtest_end();
+ qtest_quit(qts);
}
/*
@@ -85,54 +87,53 @@ static void test_after_failed_device_add(void)
{
char driver[32];
QDict *response;
+ QTestState *qts;
snprintf(driver, sizeof(driver), "virtio-blk-%s",
qvirtio_get_dev_type());
- qtest_start("-drive if=none,id=drive0");
+ qts = qtest_init("-drive if=none,id=drive0");
/* Make device_add fail. If this leaks the virtio-blk device then a
* reference to drive0 will also be held (via qdev properties).
*/
- response = qmp("{'execute': 'device_add',"
- " 'arguments': {"
- " 'driver': %s,"
- " 'drive': 'drive0'"
- "}}", driver);
+ response = qtest_qmp(qts, "{'execute': 'device_add',"
+ " 'arguments': {"
+ " 'driver': %s,"
+ " 'drive': 'drive0'"
+ "}}", driver);
g_assert(response);
qmp_assert_error_class(response, "GenericError");
/* Delete the drive */
- drive_del();
+ drive_del(qts);
/* Try to re-add the drive. This fails with duplicate IDs if a leaked
* virtio-blk device exists that holds a reference to the old drive0.
*/
- drive_add();
+ drive_add(qts);
- qtest_end();
+ qtest_quit(qts);
}
static void test_drive_del_device_del(void)
{
- char *args;
+ QTestState *qts;
/* Start with a drive used by a device that unplugs instantaneously */
- args = g_strdup_printf("-drive if=none,id=drive0,file=null-co://,format=raw"
- " -device virtio-scsi-%s"
- " -device scsi-hd,drive=drive0,id=dev0",
- qvirtio_get_dev_type());
- qtest_start(args);
+ qts = qtest_initf("-drive if=none,id=drive0,file=null-co://,format=raw"
+ " -device virtio-scsi-%s"
+ " -device scsi-hd,drive=drive0,id=dev0",
+ qvirtio_get_dev_type());
/*
* Delete the drive, and then the device
* Doing it in this order takes notoriously tricky special paths
*/
- drive_del();
- device_del();
+ drive_del(qts);
+ device_del(qts);
- qtest_end();
- g_free(args);
+ qtest_quit(qts);
}
int main(int argc, char **argv)
--
2.21.0
next prev parent reply other threads:[~2019-05-09 8:29 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-09 8:19 [Qemu-devel] [PULL 00/14] qtests, copyright statement clarifications and misc patches Thomas Huth
2019-05-09 8:19 ` [Qemu-devel] [PULL 01/14] tests: Force Python I/O encoding for check-qapi-schema Thomas Huth
2019-05-09 8:19 ` [Qemu-devel] [PULL 02/14] tests/tco: Make test independent of global_qtest Thomas Huth
2019-05-09 8:19 ` [Qemu-devel] [PULL 03/14] tests/megasas: " Thomas Huth
2019-05-09 8:19 ` [Qemu-devel] [PULL 04/14] tests/qmp-cmd-test: Use qtest_init() instead of qtest_start() Thomas Huth
2019-05-09 8:19 ` [Qemu-devel] [PULL 05/14] tests/test-hmp: " Thomas Huth
2019-05-09 8:19 ` [Qemu-devel] [PULL 06/14] tests/ide-test: Make test independent of global_qtest Thomas Huth
2019-05-09 8:19 ` [Qemu-devel] [PULL 07/14] tests/tpm-tests: Use g_test_skip() to mark skipped tests Thomas Huth
2019-05-09 8:19 ` [Qemu-devel] [PULL 08/14] tests/Makefile: Remove unused test-obj-y variable Thomas Huth
2019-05-09 8:19 ` Thomas Huth [this message]
2019-05-09 8:19 ` [Qemu-devel] [PULL 10/14] tests: qpci_unplug_acpi_device_test() should not rely on global_qtest Thomas Huth
2019-05-09 8:19 ` [Qemu-devel] [PULL 11/14] hw/i2c/smbus_ich9: Fix the confusing contributions-after-2012 statement Thomas Huth
2019-05-09 8:19 ` [Qemu-devel] [PULL 12/14] target/openrisc: Fix LGPL information in the file headers Thomas Huth
2019-05-09 8:19 ` [Qemu-devel] [PULL 13/14] target/sh4: " Thomas Huth
2019-05-09 8:19 ` [Qemu-devel] [PULL 14/14] include/exec/poison: Mark TARGET_FMT_lu as poisoned, too Thomas Huth
2019-05-09 15:30 ` [Qemu-devel] [PULL 00/14] qtests, copyright statement clarifications and misc patches Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190509081930.19081-10-thuth@redhat.com \
--to=thuth@redhat.com \
--cc=ehabkost@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.