summaryrefslogtreecommitdiff
path: root/tests/virtio-scsi-test.c
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2017-09-11 12:20:01 -0500
committerThomas Huth <thuth@redhat.com>2018-02-14 11:43:41 +0100
commit3d95fb9770f0fbf4396879bb6152b0e78edf0546 (patch)
treee2e4022460ab6878de071853c5d8cba8c3410be1 /tests/virtio-scsi-test.c
parent10747e55d53d32f1f062456cac1e4fa32f58c44e (diff)
downloadqemu-3d95fb9770f0fbf4396879bb6152b0e78edf0546.tar.gz
libqos: Use explicit QTestState for remaining libqos operations
Drop one more client of global_qtest by teaching all remaining libqos stragglers to pass in an explicit QTestState. Change the setting of global_qtest from being implicit in libqos' call to qtest_start() to instead be explicit in all clients that are still relying on global_qtest. Note that qmp_execute() can be greatly simplified in the process, and that we also get rid of interpolation of a JSON string into a temporary variable when qtest_qmp() can do it more reliably. Signed-off-by: Eric Blake <eblake@redhat.com> Acked-by: Greg Kurz <groug@kaod.org> Reviewed-by: John Snow <jsnow@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'tests/virtio-scsi-test.c')
-rw-r--r--tests/virtio-scsi-test.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/tests/virtio-scsi-test.c b/tests/virtio-scsi-test.c
index bcf408fbb6..7393d69bb2 100644
--- a/tests/virtio-scsi-test.c
+++ b/tests/virtio-scsi-test.c
@@ -34,20 +34,22 @@ typedef struct {
static QOSState *qvirtio_scsi_start(const char *extra_opts)
{
+ QOSState *qs;
const char *arch = qtest_get_arch();
const char *cmd = "-drive id=drv0,if=none,file=null-co://,format=raw "
"-device virtio-scsi-pci,id=vs0 "
"-device scsi-hd,bus=vs0.0,drive=drv0 %s";
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
- return qtest_pc_boot(cmd, extra_opts ? : "");
- }
- if (strcmp(arch, "ppc64") == 0) {
- return qtest_spapr_boot(cmd, extra_opts ? : "");
+ qs = qtest_pc_boot(cmd, extra_opts ? : "");
+ } else if (strcmp(arch, "ppc64") == 0) {
+ qs = qtest_spapr_boot(cmd, extra_opts ? : "");
+ } else {
+ g_printerr("virtio-scsi tests are only available on x86 or ppc64\n");
+ exit(EXIT_FAILURE);
}
-
- g_printerr("virtio-scsi tests are only available on x86 or ppc64\n");
- exit(EXIT_FAILURE);
+ global_qtest = qs->qts;
+ return qs;
}
static void qvirtio_scsi_stop(QOSState *qs)