diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c index 186958cd57..9c8407c5ef 100644 --- a/tests/qemuhotplugtest.c +++ b/tests/qemuhotplugtest.c @@ -53,12 +53,22 @@ struct qemuHotplugTestData { bool keep; virDomainObj *vm; bool deviceDeletedEvent; + const char *arch; + GHashTable *capsLatestFiles; + GHashTable *capsCache; + GHashTable *schemaCache; }; static int qemuHotplugCreateObjects(virDomainXMLOption *xmlopt, virDomainObj **vm, - const char *domxml) + const char *domxml, + const char *arch, + GHashTable *capsLatestFiles, + GHashTable *capsCache, + GHashTable *schemaCache, + GHashTable **schema) + { qemuDomainObjPrivate *priv = NULL; const unsigned int parseFlags = 0; @@ -68,28 +78,10 @@ qemuHotplugCreateObjects(virDomainXMLOption *xmlopt, priv = (*vm)->privateData; - priv->qemuCaps = virQEMUCapsNew(); - - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_SCSI_LSI); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_VIRTIO_SCSI); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_USB_STORAGE); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_IVSHMEM_PLAIN); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_IVSHMEM_DOORBELL); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_SCSI_DISK_WWN); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_VFIO_PCI); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_QXL); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_VGA); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_CIRRUS_VGA); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_PIIX_DISABLE_S3); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_PIIX_DISABLE_S4); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_VNC); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_SPICE); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_PR_MANAGER_HELPER); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_SCSI_BLOCK); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_USB_KBD); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_NETDEV_VHOST_VDPA); - virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_SET_ACTION); + if (!(priv->qemuCaps = testQemuGetRealCaps(arch, "latest", "", + capsLatestFiles, capsCache, + schemaCache, schema))) + return -1; if (qemuTestCapsCacheInsert(driver.qemuCapsCache, priv->qemuCaps) < 0) return -1; @@ -347,7 +339,10 @@ testQemuHotplug(const void *data) goto cleanup; } } else { - if (qemuHotplugCreateObjects(driver.xmlopt, &vm, domain_xml) < 0) + if (qemuHotplugCreateObjects(driver.xmlopt, &vm, domain_xml, + test->arch, test->capsLatestFiles, + test->capsCache, test->schemaCache, + NULL) < 0) goto cleanup; } @@ -478,7 +473,10 @@ struct testQemuHotplugCpuParams { bool state; bool modern; bool fail; - GHashTable *schema; + const char *arch; + GHashTable *capsLatestFiles; + GHashTable *capsCache; + GHashTable *schemaCache; }; @@ -488,6 +486,7 @@ testQemuHotplugCpuPrepare(const struct testQemuHotplugCpuParams *params) qemuDomainObjPrivate *priv = NULL; g_autofree char *prefix = NULL; struct testQemuHotplugCpuData *data = NULL; + GHashTable *schema = NULL; prefix = g_strdup_printf("%s/qemuhotplugtestcpus/%s", abs_srcdir, params->test); @@ -503,7 +502,9 @@ testQemuHotplugCpuPrepare(const struct testQemuHotplugCpuParams *params) if (virTestLoadFile(data->file_xml_dom, &data->xml_dom) < 0) goto error; - if (qemuHotplugCreateObjects(driver.xmlopt, &data->vm, data->xml_dom) < 0) + if (qemuHotplugCreateObjects(driver.xmlopt, &data->vm, data->xml_dom, + params->arch, params->capsLatestFiles, + params->capsCache, params->schemaCache, &schema) < 0) goto error; /* create vm->newDef */ @@ -517,7 +518,7 @@ testQemuHotplugCpuPrepare(const struct testQemuHotplugCpuParams *params) virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_QUERY_HOTPLUGGABLE_CPUS); if (!(data->mon = qemuMonitorTestNewFromFileFull(data->file_json_monitor, - &driver, data->vm, params->schema))) + &driver, data->vm, schema))) goto error; if (params->fail) @@ -645,11 +646,17 @@ testQemuHotplugCpuIndividual(const void *opaque) static int mymain(void) { - g_autoptr(GHashTable) qmpschema = NULL; int ret = 0; - struct qemuHotplugTestData data = {0}; - struct testQemuHotplugCpuParams cpudata; g_autoptr(virQEMUDriverConfig) cfg = NULL; + g_autoptr(GHashTable) capsLatestFiles = testQemuGetLatestCaps(); + g_autoptr(GHashTable) capsCache = virHashNew(virObjectUnref); + g_autoptr(GHashTable) schemaCache = virHashNew((GDestroyNotify) g_hash_table_unref); + struct qemuHotplugTestData data = { .capsLatestFiles = capsLatestFiles, + .capsCache = capsCache, + .schemaCache = schemaCache }; + struct testQemuHotplugCpuParams cpudata = { .capsLatestFiles = capsLatestFiles, + .capsCache = capsCache, + .schemaCache = schemaCache }; if (qemuTestDriverInit(&driver) < 0) return EXIT_FAILURE; @@ -661,13 +668,6 @@ mymain(void) if (!(driver.domainEventState = virObjectEventStateNew())) return EXIT_FAILURE; - if (!(qmpschema = testQEMUSchemaLoadLatest("x86_64"))) { - VIR_TEST_VERBOSE("failed to load qapi schema\n"); - return EXIT_FAILURE; - } - - cpudata.schema = qmpschema; - driver.lockManager = virLockManagerPluginNew("nop", "qemu", driver.config->configBaseDir, 0); @@ -682,10 +682,11 @@ mymain(void) } -#define DO_TEST(file, ACTION, dev, fail_, keep_, ...) \ +#define DO_TEST(archname, file, ACTION, dev, fail_, keep_, ...) \ do { \ const char *my_mon[] = { __VA_ARGS__, NULL}; \ const char *name = file " " #ACTION " " dev; \ + data.arch = archname; \ data.action = ACTION; \ data.domain_filename = file; \ data.device_filename = dev; \ @@ -696,14 +697,14 @@ mymain(void) ret = -1; \ } while (0) -#define DO_TEST_ATTACH(file, dev, fail, keep, ...) \ - DO_TEST(file, ATTACH, dev, fail, keep, __VA_ARGS__) +#define DO_TEST_ATTACH(arch, file, dev, fail, keep, ...) \ + DO_TEST(arch, file, ATTACH, dev, fail, keep, __VA_ARGS__) -#define DO_TEST_DETACH(file, dev, fail, keep, ...) \ - DO_TEST(file, DETACH, dev, fail, keep, __VA_ARGS__) +#define DO_TEST_DETACH(arch, file, dev, fail, keep, ...) \ + DO_TEST(arch, file, DETACH, dev, fail, keep, __VA_ARGS__) -#define DO_TEST_UPDATE(file, dev, fail, keep, ...) \ - DO_TEST(file, UPDATE, dev, fail, keep, __VA_ARGS__) +#define DO_TEST_UPDATE(arch, file, dev, fail, keep, ...) \ + DO_TEST(arch, file, UPDATE, dev, fail, keep, __VA_ARGS__) #define QMP_OK "{\"return\": {}}" @@ -722,60 +723,60 @@ mymain(void) "}\r\n" cfg->spiceTLS = true; - DO_TEST_UPDATE("graphics-spice", "graphics-spice-nochange", false, false, NULL); - DO_TEST_UPDATE("graphics-spice-timeout", "graphics-spice-timeout-nochange", false, false, + DO_TEST_UPDATE("x86_64", "graphics-spice", "graphics-spice-nochange", false, false, NULL); + DO_TEST_UPDATE("x86_64", "graphics-spice-timeout", "graphics-spice-timeout-nochange", false, false, "set_password", QMP_OK, "expire_password", QMP_OK); - DO_TEST_UPDATE("graphics-spice-timeout", "graphics-spice-timeout-password", false, false, + DO_TEST_UPDATE("x86_64", "graphics-spice-timeout", "graphics-spice-timeout-password", false, false, "set_password", QMP_OK, "expire_password", QMP_OK); - DO_TEST_UPDATE("graphics-spice", "graphics-spice-listen", true, false, NULL); - DO_TEST_UPDATE("graphics-spice-listen-network", "graphics-spice-listen-network-password", false, false, + DO_TEST_UPDATE("x86_64", "graphics-spice", "graphics-spice-listen", true, false, NULL); + DO_TEST_UPDATE("x86_64", "graphics-spice-listen-network", "graphics-spice-listen-network-password", false, false, "set_password", QMP_OK, "expire_password", QMP_OK); cfg->spiceTLS = false; /* Strange huh? Currently, only graphics can be updated :-P */ - DO_TEST_UPDATE("disk-cdrom", "disk-cdrom-nochange", true, false, NULL); + DO_TEST_UPDATE("x86_64", "disk-cdrom", "disk-cdrom-nochange", true, false, NULL); - DO_TEST_ATTACH("console-compat-2-live", "console-virtio", false, true, + DO_TEST_ATTACH("x86_64", "console-compat-2-live", "console-virtio", false, true, "chardev-add", "{\"return\": {\"pty\": \"/dev/pts/26\"}}", "device_add", QMP_OK); - DO_TEST_DETACH("console-compat-2-live", "console-virtio", false, false, + DO_TEST_DETACH("x86_64", "console-compat-2-live", "console-virtio", false, false, "device_del", QMP_DEVICE_DELETED("console1") QMP_OK, "chardev-remove", QMP_OK, "query-fdsets", "{\"return\": []}"); - DO_TEST_ATTACH("base-live", "disk-virtio", false, true, + DO_TEST_ATTACH("x86_64", "base-live", "disk-virtio", false, true, "blockdev-add", QMP_OK, "blockdev-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "disk-virtio", true, true, + DO_TEST_DETACH("x86_64", "base-live", "disk-virtio", true, true, "device_del", QMP_OK); - DO_TEST_DETACH("base-live", "disk-virtio", false, false, + DO_TEST_DETACH("x86_64", "base-live", "disk-virtio", false, false, "device_del", QMP_DEVICE_DELETED("virtio-disk4") QMP_OK, "blockdev-del", QMP_OK, "blockdev-del", QMP_OK); - DO_TEST_ATTACH("base-live", "disk-usb", false, true, + DO_TEST_ATTACH("x86_64", "base-live", "disk-usb", false, true, "blockdev-add", QMP_OK, "blockdev-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "disk-usb", true, true, + DO_TEST_DETACH("x86_64", "base-live", "disk-usb", true, true, "device_del", QMP_OK); - DO_TEST_DETACH("base-live", "disk-usb", false, false, + DO_TEST_DETACH("x86_64", "base-live", "disk-usb", false, false, "device_del", QMP_DEVICE_DELETED("usb-disk16") QMP_OK, "blockdev-del", QMP_OK, "blockdev-del", QMP_OK); - DO_TEST_ATTACH("base-live", "disk-scsi", false, true, + DO_TEST_ATTACH("x86_64", "base-live", "disk-scsi", false, true, "blockdev-add", QMP_OK, "blockdev-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "disk-scsi", true, true, + DO_TEST_DETACH("x86_64", "base-live", "disk-scsi", true, true, "device_del", QMP_OK); - DO_TEST_DETACH("base-live", "disk-scsi", false, false, + DO_TEST_DETACH("x86_64", "base-live", "disk-scsi", false, false, "device_del", QMP_DEVICE_DELETED("scsi0-0-0-5") QMP_OK, "blockdev-del", QMP_OK, "blockdev-del", QMP_OK); - DO_TEST_ATTACH("base-without-scsi-controller-live", "disk-scsi-2", false, true, + DO_TEST_ATTACH("x86_64", "base-without-scsi-controller-live", "disk-scsi-2", false, true, /* Four controllers added */ "device_add", QMP_OK, "device_add", QMP_OK, @@ -784,109 +785,109 @@ mymain(void) "blockdev-add", QMP_OK, "blockdev-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-with-scsi-controller-live", "disk-scsi-2", true, true, + DO_TEST_DETACH("x86_64", "base-with-scsi-controller-live", "disk-scsi-2", true, true, "device_del", QMP_OK); - DO_TEST_DETACH("base-with-scsi-controller-live", "disk-scsi-2", false, false, + DO_TEST_DETACH("x86_64", "base-with-scsi-controller-live", "disk-scsi-2", false, false, "device_del", QMP_DEVICE_DELETED("scsi3-0-6") QMP_OK, "blockdev-del", QMP_OK, "blockdev-del", QMP_OK); - DO_TEST_ATTACH("base-live", "disk-scsi-multipath", false, true, + DO_TEST_ATTACH("x86_64", "base-live", "disk-scsi-multipath", false, true, "object-add", QMP_OK, "blockdev-add", QMP_OK, "blockdev-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "disk-scsi-multipath", true, true, + DO_TEST_DETACH("x86_64", "base-live", "disk-scsi-multipath", true, true, "device_del", QMP_OK); - DO_TEST_DETACH("base-live", "disk-scsi-multipath", false, false, + DO_TEST_DETACH("x86_64", "base-live", "disk-scsi-multipath", false, false, "device_del", QMP_DEVICE_DELETED("scsi0-0-0-0") QMP_OK, "blockdev-del", QMP_OK, "blockdev-del", QMP_OK, "object-del", QMP_OK); - DO_TEST_ATTACH("base-live", "qemu-agent", false, true, + DO_TEST_ATTACH("x86_64", "base-live", "qemu-agent", false, true, "getfd", QMP_OK, "chardev-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "qemu-agent-detach", false, false, + DO_TEST_DETACH("x86_64", "base-live", "qemu-agent-detach", false, false, "device_del", QMP_DEVICE_DELETED("channel0") QMP_OK, "chardev-remove", QMP_OK, "query-fdsets", "{\"return\": []}"); - DO_TEST_ATTACH("base-ccw-live", "ccw-virtio", false, true, + DO_TEST_ATTACH("s390x", "base-ccw-live", "ccw-virtio", false, true, "blockdev-add", QMP_OK, "blockdev-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-ccw-live", "ccw-virtio", false, false, + DO_TEST_DETACH("s390x", "base-ccw-live", "ccw-virtio", false, false, "device_del", QMP_DEVICE_DELETED("virtio-disk4") QMP_OK, "blockdev-del", QMP_OK, "blockdev-del", QMP_OK); - DO_TEST_ATTACH("base-ccw-live-with-ccw-virtio", "ccw-virtio-2", false, true, + DO_TEST_ATTACH("s390x", "base-ccw-live-with-ccw-virtio", "ccw-virtio-2", false, true, "blockdev-add", QMP_OK, "blockdev-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-ccw-live-with-ccw-virtio", "ccw-virtio-2", false, false, + DO_TEST_DETACH("s390x", "base-ccw-live-with-ccw-virtio", "ccw-virtio-2", false, false, "device_del", QMP_DEVICE_DELETED("virtio-disk0") QMP_OK, "blockdev-del", QMP_OK, "blockdev-del", QMP_OK); - DO_TEST_ATTACH("base-ccw-live-with-ccw-virtio", "ccw-virtio-2-explicit", false, true, + DO_TEST_ATTACH("s390x", "base-ccw-live-with-ccw-virtio", "ccw-virtio-2-explicit", false, true, "blockdev-add", QMP_OK, "blockdev-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-ccw-live-with-ccw-virtio", "ccw-virtio-2-explicit", false, false, + DO_TEST_DETACH("s390x", "base-ccw-live-with-ccw-virtio", "ccw-virtio-2-explicit", false, false, "device_del", QMP_DEVICE_DELETED("virtio-disk0") QMP_OK, "blockdev-del", QMP_OK, "blockdev-del", QMP_OK); /* Attach a second device, then detach the first one. Then attach the first one again. */ - DO_TEST_ATTACH("base-ccw-live-with-ccw-virtio", "ccw-virtio-2-explicit", false, true, + DO_TEST_ATTACH("s390x", "base-ccw-live-with-ccw-virtio", "ccw-virtio-2-explicit", false, true, "blockdev-add", QMP_OK, "blockdev-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-ccw-live-with-2-ccw-virtio", "ccw-virtio-1-explicit", false, true, + DO_TEST_DETACH("s390x", "base-ccw-live-with-2-ccw-virtio", "ccw-virtio-1-explicit", false, true, "device_del", QMP_DEVICE_DELETED("virtio-disk4") QMP_OK); - DO_TEST_ATTACH("base-ccw-live-with-2-ccw-virtio", "ccw-virtio-1-reverse", false, false, + DO_TEST_ATTACH("s390x", "base-ccw-live-with-2-ccw-virtio", "ccw-virtio-1-reverse", false, false, "blockdev-add", QMP_OK, "blockdev-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_ATTACH("base-live", "ivshmem-plain", false, true, + DO_TEST_ATTACH("x86_64", "base-live", "ivshmem-plain", false, true, "object-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_ATTACH("base-live", "ivshmem-doorbell", false, true, + DO_TEST_ATTACH("x86_64", "base-live", "ivshmem-doorbell", false, true, "chardev-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-live+ivshmem-plain", "ivshmem-doorbell-detach", false, true, + DO_TEST_DETACH("x86_64", "base-live+ivshmem-plain", "ivshmem-doorbell-detach", false, true, "device_del", QMP_DEVICE_DELETED("shmem1") QMP_OK, "chardev-remove", QMP_OK); - DO_TEST_DETACH("base-live", "ivshmem-plain-detach", false, false, + DO_TEST_DETACH("x86_64", "base-live", "ivshmem-plain-detach", false, false, "device_del", QMP_DEVICE_DELETED("shmem0") QMP_OK, "object-del", QMP_OK); - DO_TEST_ATTACH("base-live+disk-scsi-wwn", + DO_TEST_ATTACH("x86_64", "base-live+disk-scsi-wwn", "disk-scsi-duplicate-wwn", false, false, "blockdev-add", QMP_OK, "blockdev-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_ATTACH("base-live", "hostdev-pci", false, true, + DO_TEST_ATTACH("x86_64", "base-live", "hostdev-pci", false, true, "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "hostdev-pci", false, false, + DO_TEST_DETACH("x86_64", "base-live", "hostdev-pci", false, false, "device_del", QMP_DEVICE_DELETED("hostdev0") QMP_OK); - DO_TEST_ATTACH("pseries-base-live", "hostdev-pci", false, true, + DO_TEST_ATTACH("ppc64", "pseries-base-live", "hostdev-pci", false, true, "device_add", QMP_OK); - DO_TEST_DETACH("pseries-base-live", "hostdev-pci", false, false, + DO_TEST_DETACH("ppc64", "pseries-base-live", "hostdev-pci", false, false, "device_del", QMP_DEVICE_DELETED("hostdev0") QMP_OK); - DO_TEST_ATTACH("base-live", "interface-vdpa", false, true, + DO_TEST_ATTACH("x86_64", "base-live", "interface-vdpa", false, true, "query-fdsets", "{\"return\":[{\"fdset-id\":99999}]}", "add-fd", "{ \"return\": { \"fdset-id\": 1, \"fd\": 95 }}", "netdev_add", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "interface-vdpa", false, false, + DO_TEST_DETACH("x86_64", "base-live", "interface-vdpa", false, false, "device_del", QMP_DEVICE_DELETED("net0") QMP_OK, "netdev_del", QMP_OK, "query-fdsets", @@ -894,50 +895,51 @@ mymain(void) "remove-fd", QMP_OK ); - DO_TEST_ATTACH("base-live", "watchdog", false, true, + DO_TEST_ATTACH("x86_64", "base-live", "watchdog", false, true, "set-action", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "watchdog-full", false, false, + DO_TEST_DETACH("x86_64", "base-live", "watchdog-full", false, false, "device_del", QMP_DEVICE_DELETED("watchdog0") QMP_OK); - DO_TEST_ATTACH("base-live", "watchdog-user-alias", false, true, + DO_TEST_ATTACH("x86_64", "base-live", "watchdog-user-alias", false, true, "set-action", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "watchdog-user-alias-full", false, false, + DO_TEST_DETACH("x86_64", "base-live", "watchdog-user-alias-full", false, false, "device_del", QMP_DEVICE_DELETED("ua-UserWatchdog") QMP_OK); - DO_TEST_ATTACH("base-live", "guestfwd", false, true, + DO_TEST_ATTACH("x86_64", "base-live", "guestfwd", false, true, "getfd", QMP_OK, "chardev-add", QMP_OK, "netdev_add", QMP_OK); - DO_TEST_DETACH("base-live", "guestfwd", false, false, + DO_TEST_DETACH("x86_64", "base-live", "guestfwd", false, false, "netdev_del", QMP_OK); - DO_TEST_ATTACH("base-live", "cdrom-usb", false, true, + DO_TEST_ATTACH("x86_64", "base-live", "cdrom-usb", false, true, "blockdev-add", QMP_OK, "blockdev-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "cdrom-usb", true, true, + DO_TEST_DETACH("x86_64", "base-live", "cdrom-usb", true, true, "device_del", QMP_OK); - DO_TEST_DETACH("base-live", "cdrom-usb", false, false, + DO_TEST_DETACH("x86_64", "base-live", "cdrom-usb", false, false, "device_del", QMP_DEVICE_DELETED("usb-disk4") QMP_OK, "blockdev-del", QMP_OK, "blockdev-del", QMP_OK); - DO_TEST_ATTACH("base-live", "cdrom-scsi", false, true, + DO_TEST_ATTACH("x86_64", "base-live", "cdrom-scsi", false, true, "blockdev-add", QMP_OK, "blockdev-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "cdrom-scsi", true, true, + DO_TEST_DETACH("x86_64", "base-live", "cdrom-scsi", true, true, "device_del", QMP_OK); - DO_TEST_DETACH("base-live", "cdrom-scsi", false, false, + DO_TEST_DETACH("x86_64", "base-live", "cdrom-scsi", false, false, "device_del", QMP_DEVICE_DELETED("scsi0-0-0-4") QMP_OK, "blockdev-del", QMP_OK, "blockdev-del", QMP_OK); -#define DO_TEST_CPU_GROUP(prefix, vcpus, modernhp, expectfail) \ +#define DO_TEST_CPU_GROUP(archname, prefix, vcpus, modernhp, expectfail) \ do { \ cpudata.test = prefix; \ + cpudata.arch = archname; \ cpudata.newcpus = vcpus; \ cpudata.modern = modernhp; \ cpudata.fail = expectfail; \ @@ -946,15 +948,16 @@ mymain(void) ret = -1; \ } while (0) - DO_TEST_CPU_GROUP("x86-modern-bulk", 7, true, false); - DO_TEST_CPU_GROUP("ppc64-modern-bulk", 24, true, false); - DO_TEST_CPU_GROUP("ppc64-modern-bulk", 15, true, true); - DO_TEST_CPU_GROUP("ppc64-modern-bulk", 23, true, true); - DO_TEST_CPU_GROUP("ppc64-modern-bulk", 25, true, true); + DO_TEST_CPU_GROUP("x86_64", "x86-modern-bulk", 7, true, false); + DO_TEST_CPU_GROUP("ppc64", "ppc64-modern-bulk", 24, true, false); + DO_TEST_CPU_GROUP("ppc64", "ppc64-modern-bulk", 15, true, true); + DO_TEST_CPU_GROUP("ppc64", "ppc64-modern-bulk", 23, true, true); + DO_TEST_CPU_GROUP("ppc64", "ppc64-modern-bulk", 25, true, true); -#define DO_TEST_CPU_INDIVIDUAL(prefix, mapstr, statefl, modernhp, expectfail) \ +#define DO_TEST_CPU_INDIVIDUAL(archname, prefix, mapstr, statefl, modernhp, expectfail) \ do { \ cpudata.test = prefix; \ + cpudata.arch = archname; \ cpudata.cpumap = mapstr; \ cpudata.state = statefl; \ cpudata.modern = modernhp; \ @@ -964,13 +967,13 @@ mymain(void) ret = -1; \ } while (0) - DO_TEST_CPU_INDIVIDUAL("x86-modern-individual-add", "7", true, true, false); - DO_TEST_CPU_INDIVIDUAL("x86-modern-individual-add", "6,7", true, true, true); - DO_TEST_CPU_INDIVIDUAL("x86-modern-individual-add", "7", false, true, true); + DO_TEST_CPU_INDIVIDUAL("x86_64", "x86-modern-individual-add", "7", true, true, false); + DO_TEST_CPU_INDIVIDUAL("x86_64", "x86-modern-individual-add", "6,7", true, true, true); + DO_TEST_CPU_INDIVIDUAL("x86_64", "x86-modern-individual-add", "7", false, true, true); - DO_TEST_CPU_INDIVIDUAL("ppc64-modern-individual", "16-23", true, true, false); - DO_TEST_CPU_INDIVIDUAL("ppc64-modern-individual", "16-22", true, true, true); - DO_TEST_CPU_INDIVIDUAL("ppc64-modern-individual", "17", true, true, true); + DO_TEST_CPU_INDIVIDUAL("ppc64", "ppc64-modern-individual", "16-23", true, true, false); + DO_TEST_CPU_INDIVIDUAL("ppc64", "ppc64-modern-individual", "16-22", true, true, true); + DO_TEST_CPU_INDIVIDUAL("ppc64", "ppc64-modern-individual", "17", true, true, true); qemuTestDriverFree(&driver); virObjectUnref(data.vm); diff --git a/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-conf.xml b/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-conf.xml index a7ada18bf3..afb2c85bc2 100644 --- a/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-conf.xml +++ b/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-conf.xml @@ -42,7 +42,8 @@ hvm - + + qemu64 @@ -51,7 +52,7 @@ destroy /usr/bin/qemu-system-x86_64 - +
diff --git a/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-live.xml b/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-live.xml index 3932fd9b55..d86247d70c 100644 --- a/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-live.xml +++ b/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-live.xml @@ -42,7 +42,8 @@ hvm - + + qemu64 @@ -51,7 +52,7 @@ destroy /usr/bin/qemu-system-x86_64 - +
diff --git a/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-conf.xml b/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-conf.xml index f3a1efeede..e8d30f7ddd 100644 --- a/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-conf.xml +++ b/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-conf.xml @@ -42,7 +42,8 @@ hvm - + + qemu64 @@ -51,7 +52,7 @@ destroy /usr/bin/qemu-system-x86_64 - +
diff --git a/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-live.xml b/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-live.xml index 6d64ead3d0..afc500657c 100644 --- a/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-live.xml +++ b/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-live.xml @@ -42,7 +42,8 @@ hvm - + + qemu64 @@ -51,7 +52,7 @@ destroy /usr/bin/qemu-system-x86_64 - +
diff --git a/tests/qemuhotplugtestcpus/x86-modern-bulk-result-conf.xml b/tests/qemuhotplugtestcpus/x86-modern-bulk-result-conf.xml index 87eb19ebd8..8d52ffedb4 100644 --- a/tests/qemuhotplugtestcpus/x86-modern-bulk-result-conf.xml +++ b/tests/qemuhotplugtestcpus/x86-modern-bulk-result-conf.xml @@ -18,7 +18,8 @@ hvm - + + qemu64 @@ -27,7 +28,7 @@ destroy /usr/bin/qemu-system-x86_64 - +
diff --git a/tests/qemuhotplugtestcpus/x86-modern-bulk-result-live.xml b/tests/qemuhotplugtestcpus/x86-modern-bulk-result-live.xml index 251634e266..f416397e33 100644 --- a/tests/qemuhotplugtestcpus/x86-modern-bulk-result-live.xml +++ b/tests/qemuhotplugtestcpus/x86-modern-bulk-result-live.xml @@ -18,7 +18,8 @@ hvm - + + qemu64 @@ -27,7 +28,7 @@ destroy /usr/bin/qemu-system-x86_64 - +
diff --git a/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-conf.xml b/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-conf.xml index 140892aaf8..0bd2af8e43 100644 --- a/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-conf.xml +++ b/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-conf.xml @@ -18,7 +18,8 @@ hvm - + + qemu64 @@ -27,7 +28,7 @@ destroy /usr/bin/qemu-system-x86_64 - +
diff --git a/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-live.xml b/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-live.xml index 45196ba1d1..b31e6ebe55 100644 --- a/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-live.xml +++ b/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-live.xml @@ -18,7 +18,8 @@ hvm - + + qemu64 @@ -27,7 +28,7 @@ destroy /usr/bin/qemu-system-x86_64 - +
diff --git a/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live+ccw-virtio.xml b/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live+ccw-virtio.xml index 4036adde89..798a7ab732 100644 --- a/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live+ccw-virtio.xml +++ b/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live+ccw-virtio.xml @@ -13,6 +13,7 @@ + destroy restart @@ -31,18 +32,24 @@ -
+
+ +
-
+
+ +
-
+
+ +