@@ -27,7 +27,7 @@ extern QTestState *global_qtest;
* qtest_start_without_qmp_handshake:
* @extra_args: other arguments to pass to QEMU.
*
- * Returns: #QTestState instance. Does not affect #global_qtest.
+ * Returns: #QTestState instance, handshaking not yet completed.
*/
QTestState *qtest_start_without_qmp_handshake(const char *extra_args);
@@ -35,10 +35,7 @@ QTestState *qtest_start_without_qmp_handshake(const char *extra_args);
* qtest_start:
* @args: other arguments to pass to QEMU
*
- * Start QEMU and assign the resulting #QTestState to #global_qtest.
- * The global variable is used by "shortcut" functions documented below.
- *
- * Returns: #QTestState instance.
+ * Returns: #QTestState instance, handshaking completed.
*/
QTestState *qtest_start(const char *args);
@@ -47,10 +44,7 @@ QTestState *qtest_start(const char *args);
* @fmt...: Format for creating other arguments to pass to QEMU, formatted
* like sprintf().
*
- * Start QEMU and return the resulting #QTestState (but unlike qtest_start(),
- * #global_qtest is left at NULL).
- *
- * Returns: #QTestState instance.
+ * Returns: #QTestState instance, handshaking completed.
*/
QTestState *qtest_startf(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
@@ -60,30 +54,11 @@ QTestState *qtest_startf(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
* like vsprintf().
* @ap: Format arguments.
*
- * Start QEMU and return the resulting #QTestState (but unlike qtest_start(),
- * #global_qtest is left at NULL).
- *
- * Returns: #QTestState instance.
+ * Returns: #QTestState instance, handshaking completed.
*/
QTestState *qtest_vstartf(const char *fmt, va_list ap) GCC_FMT_ATTR(1, 0);
/**
- * qtest_init:
- * @extra_args: other arguments to pass to QEMU.
- *
- * Returns: #QTestState instance. Does not affect #global_qtest.
- */
-static inline QTestState *qtest_init(const char *extra_args)
-{
- QTestState *s;
-
- assert(!global_qtest);
- s = qtest_start(extra_args);
- global_qtest = NULL;
- return s;
-}
-
-/**
* qtest_quit:
* @s: #QTestState instance to operate on.
*
@@ -242,7 +242,7 @@ QTestState *qtest_start(const char *extra_args)
qtest_qmp_discard_response(s, "{ 'execute': 'qmp_capabilities' }");
assert(!global_qtest);
- return global_qtest = s;
+ return s;
}
QTestState *qtest_vstartf(const char *fmt, va_list ap)
@@ -988,7 +988,7 @@ void qtest_cb_for_every_machine(void (*cb)(const char *machine))
QString *qstr;
const char *mname;
- qtest_start("-machine none");
+ global_qtest = qtest_start("-machine none");
response = qmp("{ 'execute': 'query-machines' }");
g_assert(response);
list = qdict_get_qlist(response, "return");
@@ -22,7 +22,7 @@ int main(int argc, char **argv)
g_test_init(&argc, &argv, NULL);
qtest_add_func("/ac97/nop", nop);
- qtest_start("-device AC97");
+ global_qtest = qtest_start("-device AC97");
ret = g_test_run();
qtest_quit(global_qtest);
@@ -126,7 +126,7 @@ static void test_device_intro_list(void)
QList *types;
char *help;
- qtest_start(common_args);
+ global_qtest = qtest_start(common_args);
types = device_type_list(true);
QDECREF(types);
@@ -167,7 +167,7 @@ static void test_qom_list_fields(void)
QList *non_abstract;
QListEntry *e;
- qtest_start(common_args);
+ global_qtest = qtest_start(common_args);
all_types = qom_list_types(NULL, true);
non_abstract = qom_list_types(NULL, false);
@@ -194,14 +194,14 @@ static void test_qom_list_fields(void)
static void test_device_intro_none(void)
{
- qtest_start(common_args);
+ global_qtest = qtest_start(common_args);
test_one_device("nonexistent");
qtest_quit(global_qtest);
}
static void test_device_intro_abstract(void)
{
- qtest_start(common_args);
+ global_qtest = qtest_start(common_args);
test_one_device("device");
qtest_quit(global_qtest);
}
@@ -212,7 +212,7 @@ static void test_device_intro_concrete(void)
QListEntry *entry;
const char *type;
- qtest_start(common_args);
+ global_qtest = qtest_start(common_args);
types = device_type_list(false);
QLIST_FOREACH_ENTRY(types, entry) {
@@ -232,7 +232,7 @@ static void test_abstract_interfaces(void)
QListEntry *e;
QDict *index;
- qtest_start(common_args);
+ global_qtest = qtest_start(common_args);
all_types = qom_list_types("interface", true);
index = qom_type_index(all_types);
@@ -12,39 +12,33 @@
static void pci_cirrus(void)
{
- qtest_start("-vga none -device cirrus-vga");
- qtest_quit(global_qtest);
+ qtest_quit(qtest_start("-vga none -device cirrus-vga"));
}
static void pci_stdvga(void)
{
- qtest_start("-vga none -device VGA");
- qtest_quit(global_qtest);
+ qtest_quit(qtest_start("-vga none -device VGA"));
}
static void pci_secondary(void)
{
- qtest_start("-vga none -device secondary-vga");
- qtest_quit(global_qtest);
+ qtest_quit(qtest_start("-vga none -device secondary-vga"));
}
static void pci_multihead(void)
{
- qtest_start("-vga none -device VGA -device secondary-vga");
- qtest_quit(global_qtest);
+ qtest_quit(qtest_start("-vga none -device VGA -device secondary-vga"));
}
static void pci_virtio_gpu(void)
{
- qtest_start("-vga none -device virtio-gpu-pci");
- qtest_quit(global_qtest);
+ qtest_quit(qtest_start("-vga none -device virtio-gpu-pci"));
}
#ifdef CONFIG_VIRTIO_VGA
static void pci_virtio_vga(void)
{
- qtest_start("-vga none -device virtio-vga");
- qtest_quit(global_qtest);
+ qtest_quit(qtest_start("-vga none -device virtio-vga"));
}
#endif
@@ -45,7 +45,7 @@ static void device_del(void)
static void test_drive_without_dev(void)
{
/* Start with an empty drive */
- qtest_start("-drive if=none,id=drive0");
+ global_qtest = qtest_start("-drive if=none,id=drive0");
/* Delete the drive */
drive_del();
@@ -63,7 +63,7 @@ static void test_after_failed_device_add(void)
QDict *response;
QDict *error;
- qtest_start("-drive if=none,id=drive0");
+ global_qtest = qtest_start("-drive if=none,id=drive0");
/* Make device_add fail. If this leaks the virtio-blk-pci device then a
* reference to drive0 will also be held (via qdev properties).
@@ -92,9 +92,10 @@ static void test_after_failed_device_add(void)
static void test_drive_del_device_del(void)
{
/* Start with a drive used by a device that unplugs instantaneously */
- qtest_start("-drive if=none,id=drive0,file=null-co://,format=raw"
- " -device virtio-scsi-pci"
- " -device scsi-hd,drive=drive0,id=dev0");
+ global_qtest = qtest_start(
+ "-drive if=none,id=drive0,file=null-co://,format=raw"
+ " -device virtio-scsi-pci"
+ " -device scsi-hd,drive=drive0,id=dev0");
/*
* Delete the drive, and then the device
@@ -22,7 +22,7 @@ int main(int argc, char **argv)
g_test_init(&argc, &argv, NULL);
qtest_add_func("/es1370/nop", nop);
- qtest_start("-device ES1370");
+ global_qtest = qtest_start("-device ES1370");
ret = g_test_run();
qtest_quit(global_qtest);
@@ -564,7 +564,7 @@ int main(int argc, char **argv)
/* Run the tests */
g_test_init(&argc, &argv, NULL);
- qtest_start("-device floppy,id=floppy0");
+ global_qtest = qtest_start("-device floppy,id=floppy0");
qtest_irq_intercept_in(global_qtest, "ioapic");
qtest_add_func("/fdc/cmos", test_cmos);
qtest_add_func("/fdc/no_media_on_start", test_no_media_on_start);
@@ -106,7 +106,7 @@ int main(int argc, char **argv)
g_test_init(&argc, &argv, NULL);
- s = qtest_init("-uuid 4600cb32-38ec-4b2f-8acb-81c6ea54f2d8");
+ s = qtest_start("-uuid 4600cb32-38ec-4b2f-8acb-81c6ea54f2d8");
fw_cfg = pc_fw_cfg_init(s);
@@ -241,7 +241,7 @@ static void test_ide_none(void)
setup_common(argv, ARGV_SIZE);
args = g_strjoinv(" ", argv);
- qtest_start(args);
+ global_qtest = qtest_start(args);
g_strfreev(argv);
g_free(args);
test_cmos();
@@ -263,7 +263,7 @@ static void test_ide_mbr(bool use_device, MBRcontents mbr)
argc = setup_ide(argc, argv, ARGV_SIZE, i, dev, i, mbr, "");
}
args = g_strjoinv(" ", argv);
- qtest_start(args);
+ global_qtest = qtest_start(args);
g_strfreev(argv);
g_free(args);
test_cmos();
@@ -339,7 +339,7 @@ static void test_ide_drive_user(const char *dev, bool trans)
dev ? "" : opts);
g_free(opts);
args = g_strjoinv(" ", argv);
- qtest_start(args);
+ global_qtest = qtest_start(args);
g_strfreev(argv);
g_free(args);
test_cmos();
@@ -396,7 +396,7 @@ static void test_ide_drive_cd_0(void)
ide_idx, NULL, i, mbr_blank, "");
}
args = g_strjoinv(" ", argv);
- qtest_start(args);
+ global_qtest = qtest_start(args);
g_strfreev(argv);
g_free(args);
test_cmos();
@@ -340,7 +340,7 @@ static void test_i440fx_firmware(FirmwareTestFixture *fixture,
: "-drive if=pflash,format=raw,file=",
fw_pathname);
g_test_message("qemu cmdline: %s", cmdline);
- qtest_start(cmdline);
+ global_qtest = qtest_start(cmdline);
g_free(cmdline);
/* QEMU has loaded the firmware (because qtest_start() only returns after
@@ -22,7 +22,8 @@ int main(int argc, char **argv)
g_test_init(&argc, &argv, NULL);
qtest_add_func("/i82801b11/nop", nop);
- qtest_start("-machine q35 -device i82801b11-bridge,bus=pcie.0,addr=1e.0");
+ global_qtest = qtest_start("-machine q35 "
+ "-device i82801b11-bridge,bus=pcie.0,addr=1e.0");
ret = g_test_run();
qtest_quit(global_qtest);
@@ -18,15 +18,14 @@
/* Tests only initialization so far. TODO: Replace with functional tests */
static void ich6_test(void)
{
- qtest_start("-device intel-hda,id=" HDA_ID CODEC_DEVICES);
- qtest_quit(global_qtest);
+ qtest_quit(qtest_start("-device intel-hda,id=" HDA_ID CODEC_DEVICES));
}
static void ich9_test(void)
{
- qtest_start("-machine q35 -device ich9-intel-hda,bus=pcie.0,addr=1b.0,id="
- HDA_ID CODEC_DEVICES);
- qtest_quit(global_qtest);
+ qtest_quit(qtest_start(
+ "-machine q35 -device ich9-intel-hda,bus=pcie.0,addr=1b.0,id="
+ HDA_ID CODEC_DEVICES));
}
int main(int argc, char **argv)
@@ -22,8 +22,9 @@ int main(int argc, char **argv)
g_test_init(&argc, &argv, NULL);
qtest_add_func("/ioh3420/nop", nop);
- qtest_start("-machine q35 -device ioh3420,bus=pcie.0,addr=1c.0,port=1,"
- "chassis=1,multifunction=on");
+ global_qtest = qtest_start(
+ "-machine q35 -device ioh3420,bus=pcie.0,addr=1c.0,port=1,"
+ "chassis=1,multifunction=on");
ret = g_test_run();
qtest_quit(global_qtest);
@@ -264,7 +264,6 @@ static void test_enable_irq(void)
int main(int argc, char **argv)
{
const char *arch = qtest_get_arch();
- char *cmdline;
int ret;
/* Check architecture */
@@ -276,10 +275,8 @@ int main(int argc, char **argv)
/* Run the tests */
g_test_init(&argc, &argv, NULL);
- cmdline = g_strdup_printf("-device ipmi-bmc-sim,id=bmc0"
- " -device isa-ipmi-kcs,bmc=bmc0");
- qtest_start(cmdline);
- g_free(cmdline);
+ global_qtest = qtest_start("-device ipmi-bmc-sim,id=bmc0"
+ " -device isa-ipmi-kcs,bmc=bmc0");
qtest_irq_intercept_in(global_qtest, "ioapic");
qtest_add_func("/ipmi/local/kcs_base", test_kcs_base);
qtest_add_func("/ipmi/local/kcs_abort", test_kcs_abort);
@@ -22,7 +22,8 @@ int main(int argc, char **argv)
g_test_init(&argc, &argv, NULL);
qtest_add_func("/ipoctal232/tpci200/nop", nop);
- qtest_start("-device tpci200,id=ipack0 -device ipoctal232,bus=ipack0.0");
+ global_qtest = qtest_start("-device tpci200,id=ipack0 "
+ "-device ipoctal232,bus=ipack0.0");
ret = g_test_run();
qtest_quit(global_qtest);
@@ -407,7 +407,7 @@ static void test_ivshmem_hotplug(void)
gchar *opts;
QTestState *qts;
- qts = qtest_init("");
+ qts = qtest_start("");
opts = g_strdup_printf("'shm': '%s', 'size': '1M'", tmpshm);
@@ -246,7 +246,7 @@ int main(int argc, char **argv)
g_test_init(&argc, &argv, NULL);
- s = qtest_start("-rtc clock=vm");
+ s = global_qtest = qtest_start("-rtc clock=vm");
qtest_add_func("/rtc/bcd/check-time", bcd_check_time);
qtest_add_func("/rtc/fuzz-registers", fuzz_registers);
@@ -22,7 +22,7 @@ int main(int argc, char **argv)
g_test_init(&argc, &argv, NULL);
qtest_add_func("/ne2000/pci/nop", pci_nop);
- qtest_start("-device ne2k_pci");
+ global_qtest = qtest_start("-device ne2k_pci");
ret = g_test_run();
qtest_quit(global_qtest);
@@ -22,8 +22,9 @@ int main(int argc, char **argv)
g_test_init(&argc, &argv, NULL);
qtest_add_func("/nvme/nop", nop);
- qtest_start("-drive id=drv0,if=none,file=null-co://,format=raw "
- "-device nvme,drive=drv0,serial=foo");
+ global_qtest = qtest_start(
+ "-drive id=drv0,if=none,file=null-co://,format=raw "
+ "-device nvme,drive=drv0,serial=foo");
ret = g_test_run();
qtest_quit(global_qtest);
@@ -22,7 +22,7 @@ int main(int argc, char **argv)
g_test_init(&argc, &argv, NULL);
qtest_add_func("/pcnet/pci/nop", pci_nop);
- qtest_start("-device pcnet");
+ global_qtest = qtest_start("-device pcnet");
ret = g_test_run();
qtest_quit(global_qtest);
@@ -403,10 +403,10 @@ static void test_migrate(void)
g_free(bootpath);
- from = qtest_init(cmd_src);
+ from = qtest_start(cmd_src);
g_free(cmd_src);
- to = qtest_init(cmd_dst);
+ to = qtest_start(cmd_dst);
g_free(cmd_dst);
assert(!global_qtest);
@@ -37,7 +37,7 @@ int main(int argc, char **argv)
g_test_init(&argc, &argv, NULL);
qtest_add_func("/pvpanic/panic", test_panic);
- qtest_start("-device pvpanic");
+ global_qtest = qtest_start("-device pvpanic");
ret = g_test_run();
qtest_quit(global_qtest);
@@ -84,7 +84,7 @@ static void test_smram_lock(void)
QPCIDevice *pcidev;
QDict *response;
- qtest_start("-M q35");
+ global_qtest = qtest_start("-M q35");
pcibus = qpci_init_pc(global_qtest, NULL);
g_assert(pcibus != NULL);
@@ -141,7 +141,7 @@ static void test_tseg_size(const void *data)
cmdline = g_strdup_printf("-M q35 -m %uM",
TSEG_SIZE_TEST_GUEST_RAM_MBYTES);
}
- qtest_start(cmdline);
+ global_qtest = qtest_start(cmdline);
g_free(cmdline);
/* locate the DRAM controller */
@@ -172,7 +172,7 @@ static void test_query(const void *data)
QDict *resp, *error;
const char *error_class;
- qtest_start(common_args);
+ global_qtest = qtest_start(common_args);
resp = qmp("{ 'execute': %s }", cmd);
error = qdict_get_qdict(resp, "error");
@@ -224,7 +224,7 @@ static void qmp_schema_init(QmpSchema *schema)
Visitor *qiv;
SchemaInfoList *tail;
- qtest_start(common_args);
+ global_qtest = qtest_start(common_args);
resp = qmp("{ 'execute': 'query-qmp-schema' }");
qiv = qobject_input_visitor_new(qdict_get(resp, "return"));
@@ -690,7 +690,7 @@ int main(int argc, char **argv)
g_test_init(&argc, &argv, NULL);
- s = qtest_start("-rtc clock=vm");
+ s = global_qtest = qtest_start("-rtc clock=vm");
qtest_irq_intercept_in(s, "ioapic");
qtest_add_func("/rtc/check-time/bcd", bcd_check_time);
@@ -197,7 +197,7 @@ int main(int argc, char **argv)
{
int ret;
- qtest_start("-device rtl8139");
+ global_qtest = qtest_start("-device rtl8139");
g_test_init(&argc, &argv, NULL);
qtest_add_func("/rtl8139/nop", nop);
@@ -21,15 +21,16 @@ static void test_phb_device(void)
int main(int argc, char **argv)
{
int ret;
+ QTestState *qts;
g_test_init(&argc, &argv, NULL);
qtest_add_func("/spapr-phb/device", test_phb_device);
- qtest_start("-device " TYPE_SPAPR_PCI_HOST_BRIDGE ",index=30");
+ qts = qtest_start("-device " TYPE_SPAPR_PCI_HOST_BRIDGE ",index=30");
ret = g_test_run();
- qtest_quit(global_qtest);
+ qtest_quit(qts);
return ret;
}
@@ -1097,7 +1097,7 @@ tests_with_prescaler_arg:
goto tests_with_prescaler_arg;
}
- qtest_start("-machine vexpress-a9");
+ global_qtest = qtest_start("-machine vexpress-a9");
ret = g_test_run();
qtest_quit(global_qtest);
@@ -59,7 +59,7 @@ static void test_cpuid_prop(const void *data)
QNum *value;
int64_t val;
- qtest_start(args->cmdline);
+ global_qtest = qtest_start(args->cmdline);
path = get_cpu0_qom_path();
value = qobject_to_qnum(qom_get(path, args->property));
g_assert(qnum_get_try_int(value, &val));
@@ -131,7 +131,7 @@ static void test_feature_flag(const void *data)
QList *present, *filtered;
uint32_t value;
- qtest_start(args->cmdline);
+ global_qtest = qtest_start(args->cmdline);
path = get_cpu0_qom_path();
present = qobject_to_qlist(qom_get(path, "feature-words"));
filtered = qobject_to_qlist(qom_get(path, "filtered-features"));
@@ -181,7 +181,8 @@ static void test_plus_minus_subprocess(void)
* Note: rules 1 and 2 are planned to be removed soon, and
* should generate a warning.
*/
- qtest_start("-cpu pentium,-fpu,+fpu,-mce,mce=on,+cx8,cx8=off,+sse4_1,sse4_2=on");
+ global_qtest = qtest_start("-cpu pentium,-fpu,+fpu,-mce,mce=on,+cx8,"
+ "cx8=off,+sse4_1,sse4_2=on");
path = get_cpu0_qom_path();
g_assert_false(qom_get_bool(path, "fpu"));
@@ -154,6 +154,7 @@ int main(int argc, char **argv)
s = qtest_start("-machine n800 "
"-device tmp105,bus=i2c-bus.0,id=" TMP105_TEST_ID
",address=0x49");
+ global_qtest = s;
i2c = omap_i2c_create(s, OMAP2_I2C_1_BASE);
qtest_add_func("/tmp105/tx-rx", send_and_receive);
@@ -22,7 +22,7 @@ int main(int argc, char **argv)
g_test_init(&argc, &argv, NULL);
qtest_add_func("/tpci200/nop", nop);
- qtest_start("-device tpci200");
+ global_qtest = qtest_start("-device tpci200");
ret = g_test_run();
qtest_quit(global_qtest);
@@ -156,17 +156,18 @@ int main(int argc, char **argv)
qtest_add_func("/ehci/pci/ehci-port-2", pci_ehci_port_2);
qtest_add_func("/ehci/pci/ehci-port-3-hotplug", pci_ehci_port_hotplug);
- qtest_start("-machine q35 -device ich9-usb-ehci1,bus=pcie.0,addr=1d.7,"
- "multifunction=on,id=ich9-ehci-1 "
- "-device ich9-usb-uhci1,bus=pcie.0,addr=1d.0,"
- "multifunction=on,masterbus=ich9-ehci-1.0,firstport=0 "
- "-device ich9-usb-uhci2,bus=pcie.0,addr=1d.1,"
- "multifunction=on,masterbus=ich9-ehci-1.0,firstport=2 "
- "-device ich9-usb-uhci3,bus=pcie.0,addr=1d.2,"
- "multifunction=on,masterbus=ich9-ehci-1.0,firstport=4 "
- "-drive if=none,id=usbcdrom,media=cdrom "
- "-device usb-tablet,bus=ich9-ehci-1.0,port=1,usb_version=1 "
- "-device usb-storage,bus=ich9-ehci-1.0,port=2,drive=usbcdrom ");
+ global_qtest = qtest_start(
+ "-machine q35 -device ich9-usb-ehci1,bus=pcie.0,addr=1d.7,"
+ "multifunction=on,id=ich9-ehci-1 "
+ "-device ich9-usb-uhci1,bus=pcie.0,addr=1d.0,"
+ "multifunction=on,masterbus=ich9-ehci-1.0,firstport=0 "
+ "-device ich9-usb-uhci2,bus=pcie.0,addr=1d.1,"
+ "multifunction=on,masterbus=ich9-ehci-1.0,firstport=2 "
+ "-device ich9-usb-uhci3,bus=pcie.0,addr=1d.2,"
+ "multifunction=on,masterbus=ich9-ehci-1.0,firstport=4 "
+ "-drive if=none,id=usbcdrom,media=cdrom "
+ "-device usb-tablet,bus=ich9-ehci-1.0,port=1,usb_version=1 "
+ "-device usb-storage,bus=ich9-ehci-1.0,port=2,drive=usbcdrom ");
test_init();
ret = g_test_run();
@@ -31,7 +31,7 @@ int main(int argc, char **argv)
qtest_add_func("/ohci/pci/init", test_ohci_init);
qtest_add_func("/ohci/pci/hotplug", test_ohci_hotplug);
- qtest_start("-device pci-ohci,id=ohci");
+ global_qtest = qtest_start("-device pci-ohci,id=ohci");
ret = g_test_run();
qtest_quit(global_qtest);
@@ -80,8 +80,9 @@ int main(int argc, char **argv)
qtest_add_func("/xhci/pci/hotplug", test_xhci_hotplug);
qtest_add_func("/xhci/pci/hotplug/usb-uas", test_usb_uas_hotplug);
- qtest_start("-device nec-usb-xhci,id=xhci"
- " -drive id=drive0,if=none,file=null-co://,format=raw");
+ global_qtest = qtest_start(
+ "-device nec-usb-xhci,id=xhci"
+ " -drive id=drive0,if=none,file=null-co://,format=raw");
ret = g_test_run();
qtest_quit(global_qtest);
@@ -22,7 +22,7 @@ int main(int argc, char **argv)
g_test_init(&argc, &argv, NULL);
qtest_add_func("/virtio/balloon/pci/nop", pci_nop);
- qtest_start("-device virtio-balloon-pci");
+ global_qtest = qtest_start("-device virtio-balloon-pci");
ret = g_test_run();
qtest_quit(global_qtest);
@@ -13,16 +13,14 @@
/* Tests only initialization so far. TODO: Replace with functional tests */
static void console_pci_nop(void)
{
- qtest_start("-device virtio-serial-pci,id=vser0 "
- "-device virtconsole,bus=vser0.0");
- qtest_quit(global_qtest);
+ qtest_quit(qtest_start("-device virtio-serial-pci,id=vser0 "
+ "-device virtconsole,bus=vser0.0"));
}
static void serialport_pci_nop(void)
{
- qtest_start("-device virtio-serial-pci,id=vser0 "
- "-device virtserialport,bus=vser0.0");
- qtest_quit(global_qtest);
+ qtest_quit(qtest_start("-device virtio-serial-pci,id=vser0 "
+ "-device virtserialport,bus=vser0.0"));
}
int main(int argc, char **argv)
@@ -246,7 +246,7 @@ static void hotplug(void)
{
const char *arch = qtest_get_arch();
- qtest_start("-device virtio-net-pci");
+ global_qtest = qtest_start("-device virtio-net-pci");
qpci_plug_device_test(global_qtest, "virtio-net-pci", "net1",
PCI_SLOT_HP, NULL);
@@ -38,7 +38,7 @@ int main(int argc, char **argv)
qtest_add_func("/virtio/rng/pci/nop", pci_nop);
qtest_add_func("/virtio/rng/pci/hotplug", hotplug);
- qtest_start("-device virtio-rng-pci");
+ global_qtest = qtest_start("-device virtio-rng-pci");
ret = g_test_run();
qtest_quit(global_qtest);
@@ -49,7 +49,7 @@ int main(int argc, char **argv)
qtest_add_func("/virtio/serial/pci/nop", pci_nop);
qtest_add_func("/virtio/serial/pci/hotplug", hotplug);
- qtest_start("-device virtio-serial-pci");
+ global_qtest = qtest_start("-device virtio-serial-pci");
ret = g_test_run();
qtest_quit(global_qtest);
@@ -22,7 +22,7 @@ int main(int argc, char **argv)
g_test_init(&argc, &argv, NULL);
qtest_add_func("/vmxnet3/nop", nop);
- qtest_start("-device vmxnet3");
+ global_qtest = qtest_start("-device vmxnet3");
ret = g_test_run();
qtest_quit(global_qtest);
@@ -56,7 +56,7 @@ static QDict *ib700_program_and_wait(QTestState *s)
static void ib700_pause(void)
{
QDict *d;
- QTestState *s = qtest_init("-watchdog-action pause -device ib700");
+ QTestState *s = qtest_start("-watchdog-action pause -device ib700");
qtest_irq_intercept_in(s, "ioapic");
d = ib700_program_and_wait(s);
@@ -69,7 +69,7 @@ static void ib700_pause(void)
static void ib700_reset(void)
{
QDict *d;
- QTestState *s = qtest_init("-watchdog-action reset -device ib700");
+ QTestState *s = qtest_start("-watchdog-action reset -device ib700");
qtest_irq_intercept_in(s, "ioapic");
d = ib700_program_and_wait(s);
@@ -84,7 +84,7 @@ static void ib700_shutdown(void)
QDict *d;
QTestState *s;
- s = qtest_init("-watchdog-action reset -no-reboot -device ib700");
+ s = qtest_start("-watchdog-action reset -no-reboot -device ib700");
qtest_irq_intercept_in(s, "ioapic");
d = ib700_program_and_wait(s);
g_assert(!strcmp(qdict_get_str(d, "action"), "reset"));
@@ -96,7 +96,7 @@ static void ib700_shutdown(void)
static void ib700_none(void)
{
QDict *d;
- QTestState *s = qtest_init("-watchdog-action none -device ib700");
+ QTestState *s = qtest_start("-watchdog-action none -device ib700");
qtest_irq_intercept_in(s, "ioapic");
d = ib700_program_and_wait(s);
Remove the trivial wrapper qtest_init(), and change qtest_start() to no longer implicitly set global_qtest, to make it obvious in the rest of the testsuite where we are still relying on global_qtest. Everything now uses qtest_start() (and friends) and qtest_quit(), and explicitly tracks the QTestState between the two (although in many cases, this tracking is still done through global_qtest). Doing this makes it easier to see what remaining cleanups will be needed if we don't want an implicit dependency on global state. A few more places that were needlessly strdup'ing a temporary variable are cleaned up in the process. As mentioned in an earlier commit, the choice to get rid of qtest_init() also reduces confusion with the device initializer of the non-testsuite qtest.c device. Signed-off-by: Eric Blake <eblake@redhat.com> --- tests/libqtest.h | 33 ++++----------------------------- tests/libqtest.c | 4 ++-- tests/ac97-test.c | 2 +- tests/device-introspect-test.c | 12 ++++++------ tests/display-vga-test.c | 18 ++++++------------ tests/drive_del-test.c | 11 ++++++----- tests/es1370-test.c | 2 +- tests/fdc-test.c | 2 +- tests/fw_cfg-test.c | 2 +- tests/hd-geo-test.c | 8 ++++---- tests/i440fx-test.c | 2 +- tests/i82801b11-test.c | 3 ++- tests/intel-hda-test.c | 9 ++++----- tests/ioh3420-test.c | 5 +++-- tests/ipmi-kcs-test.c | 7 ++----- tests/ipoctal232-test.c | 3 ++- tests/ivshmem-test.c | 2 +- tests/m48t59-test.c | 2 +- tests/ne2000-test.c | 2 +- tests/nvme-test.c | 5 +++-- tests/pcnet-test.c | 2 +- tests/postcopy-test.c | 4 ++-- tests/pvpanic-test.c | 2 +- tests/q35-test.c | 4 ++-- tests/qmp-test.c | 4 ++-- tests/rtc-test.c | 2 +- tests/rtl8139-test.c | 2 +- tests/spapr-phb-test.c | 5 +++-- tests/test-arm-mptimer.c | 2 +- tests/test-x86-cpuid-compat.c | 7 ++++--- tests/tmp105-test.c | 1 + tests/tpci200-test.c | 2 +- tests/usb-hcd-ehci-test.c | 23 ++++++++++++----------- tests/usb-hcd-ohci-test.c | 2 +- tests/usb-hcd-xhci-test.c | 5 +++-- tests/virtio-balloon-test.c | 2 +- tests/virtio-console-test.c | 10 ++++------ tests/virtio-net-test.c | 2 +- tests/virtio-rng-test.c | 2 +- tests/virtio-serial-test.c | 2 +- tests/vmxnet3-test.c | 2 +- tests/wdt_ib700-test.c | 8 ++++---- 42 files changed, 101 insertions(+), 128 deletions(-)