mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-21 20:15:17 +00:00
tests: Prepare to have different usable GIC versions
Now that we choose the GIC version based on hardware features when no <gic/> element has been provided, we need a way to fake the GIC capabilities of the host. Update the qemuxml2argv and qemuxml2xml tests to allow this.
This commit is contained in:
parent
8b74919d69
commit
63bc91eea0
@ -451,6 +451,28 @@ testAddCPUModels(virQEMUCapsPtr caps, bool skipLegacy)
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
testPrepareExtraFlags(struct testInfo *info,
|
||||
bool skipLegacyCPUs,
|
||||
int gic)
|
||||
{
|
||||
int ret = -1;
|
||||
|
||||
if (!(info->extraFlags = virQEMUCapsNew()))
|
||||
goto out;
|
||||
|
||||
if (testAddCPUModels(info->extraFlags, skipLegacyCPUs) < 0)
|
||||
goto out;
|
||||
|
||||
if (testQemuCapsSetGIC(info->extraFlags, gic) < 0)
|
||||
goto out;
|
||||
|
||||
ret = 0;
|
||||
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
mymain(void)
|
||||
{
|
||||
@ -501,14 +523,12 @@ mymain(void)
|
||||
return EXIT_FAILURE;
|
||||
|
||||
# define DO_TEST_FULL(name, migrateFrom, migrateFd, flags, \
|
||||
parseFlags, ...) \
|
||||
parseFlags, gic, ...) \
|
||||
do { \
|
||||
static struct testInfo info = { \
|
||||
name, NULL, migrateFrom, migrateFd, (flags), parseFlags \
|
||||
}; \
|
||||
if (!(info.extraFlags = virQEMUCapsNew())) \
|
||||
return EXIT_FAILURE; \
|
||||
if (testAddCPUModels(info.extraFlags, skipLegacyCPUs) < 0) \
|
||||
if (testPrepareExtraFlags(&info, skipLegacyCPUs, gic) < 0) \
|
||||
return EXIT_FAILURE; \
|
||||
virQEMUCapsSetList(info.extraFlags, __VA_ARGS__, QEMU_CAPS_LAST);\
|
||||
if (virtTestRun("QEMU XML-2-ARGV " name, \
|
||||
@ -518,23 +538,24 @@ mymain(void)
|
||||
} while (0)
|
||||
|
||||
# define DO_TEST(name, ...) \
|
||||
DO_TEST_FULL(name, NULL, -1, 0, 0, __VA_ARGS__)
|
||||
DO_TEST_FULL(name, NULL, -1, 0, 0, GIC_NONE, __VA_ARGS__)
|
||||
|
||||
# define DO_TEST_FAILURE(name, ...) \
|
||||
DO_TEST_FULL(name, NULL, -1, FLAG_EXPECT_FAILURE, 0, __VA_ARGS__)
|
||||
DO_TEST_FULL(name, NULL, -1, FLAG_EXPECT_FAILURE, \
|
||||
0, GIC_NONE, __VA_ARGS__)
|
||||
|
||||
# define DO_TEST_PARSE_ERROR(name, ...) \
|
||||
DO_TEST_FULL(name, NULL, -1, \
|
||||
FLAG_EXPECT_PARSE_ERROR | FLAG_EXPECT_FAILURE, \
|
||||
0, __VA_ARGS__)
|
||||
0, GIC_NONE, __VA_ARGS__)
|
||||
|
||||
# define DO_TEST_PARSE_FLAGS_ERROR(name, parseFlags, ...) \
|
||||
DO_TEST_FULL(name, NULL, -1, \
|
||||
FLAG_EXPECT_PARSE_ERROR | FLAG_EXPECT_FAILURE, \
|
||||
parseFlags, __VA_ARGS__)
|
||||
parseFlags, GIC_NONE, __VA_ARGS__)
|
||||
|
||||
# define DO_TEST_LINUX(name, ...) \
|
||||
DO_TEST_LINUX_FULL(name, NULL, -1, 0, 0, __VA_ARGS__)
|
||||
DO_TEST_LINUX_FULL(name, NULL, -1, 0, 0, GIC_NONE, __VA_ARGS__)
|
||||
|
||||
# ifdef __linux__
|
||||
/* This is a macro that invokes test only on Linux. It's
|
||||
@ -1234,12 +1255,12 @@ mymain(void)
|
||||
DO_TEST("pci-rom",
|
||||
QEMU_CAPS_PCIDEVICE, QEMU_CAPS_NODEFCONFIG);
|
||||
|
||||
DO_TEST_FULL("restore-v2", "exec:cat", 7, 0, 0, NONE);
|
||||
DO_TEST_FULL("restore-v2-fd", "stdio", 7, 0, 0, NONE);
|
||||
DO_TEST_FULL("restore-v2-fd", "fd:7", 7, 0, 0, NONE);
|
||||
DO_TEST_FULL("migrate", "tcp:10.0.0.1:5000", -1, 0, 0, NONE);
|
||||
DO_TEST_FULL("restore-v2", "exec:cat", 7, 0, 0, GIC_NONE, NONE);
|
||||
DO_TEST_FULL("restore-v2-fd", "stdio", 7, 0, 0, GIC_NONE, NONE);
|
||||
DO_TEST_FULL("restore-v2-fd", "fd:7", 7, 0, 0, GIC_NONE, NONE);
|
||||
DO_TEST_FULL("migrate", "tcp:10.0.0.1:5000", -1, 0, 0, GIC_NONE, NONE);
|
||||
|
||||
DO_TEST_LINUX_FULL("migrate-numa-unaligned", "stdio", 7, 0, 0,
|
||||
DO_TEST_LINUX_FULL("migrate-numa-unaligned", "stdio", 7, 0, 0, GIC_NONE,
|
||||
QEMU_CAPS_NUMA,
|
||||
QEMU_CAPS_OBJECT_MEMORY_RAM);
|
||||
|
||||
|
@ -201,7 +201,8 @@ testInfoFree(struct testInfo *info)
|
||||
static int
|
||||
testInfoSet(struct testInfo *info,
|
||||
const char *name,
|
||||
int when)
|
||||
int when,
|
||||
int gic)
|
||||
{
|
||||
if (!(info->qemuCaps = virQEMUCapsNew()))
|
||||
goto error;
|
||||
@ -210,6 +211,9 @@ testInfoSet(struct testInfo *info,
|
||||
QEMU_CAPS_DEVICE,
|
||||
QEMU_CAPS_LAST);
|
||||
|
||||
if (testQemuCapsSetGIC(info->qemuCaps, gic) < 0)
|
||||
goto error;
|
||||
|
||||
if (qemuTestCapsCacheInsert(driver.qemuCapsCache, name,
|
||||
info->qemuCaps) < 0)
|
||||
goto error;
|
||||
@ -271,9 +275,9 @@ mymain(void)
|
||||
/* TODO: test with format probing disabled too */
|
||||
driver.config->allowDiskFormatProbing = true;
|
||||
|
||||
# define DO_TEST_FULL(name, when, ...) \
|
||||
# define DO_TEST_FULL(name, when, gic, ...) \
|
||||
do { \
|
||||
if (testInfoSet(&info, name, when) < 0) { \
|
||||
if (testInfoSet(&info, name, when, gic) < 0) { \
|
||||
VIR_TEST_DEBUG("Failed to generate test data for '%s'", name); \
|
||||
return -1; \
|
||||
} \
|
||||
@ -300,7 +304,7 @@ mymain(void)
|
||||
# define NONE QEMU_CAPS_LAST
|
||||
|
||||
# define DO_TEST(name) \
|
||||
DO_TEST_FULL(name, WHEN_BOTH, NONE)
|
||||
DO_TEST_FULL(name, WHEN_BOTH, GIC_NONE, NONE)
|
||||
|
||||
|
||||
|
||||
@ -398,36 +402,36 @@ mymain(void)
|
||||
DO_TEST("disk-drive-network-rbd-ipv6");
|
||||
DO_TEST("disk-drive-network-rbd-ceph-env");
|
||||
DO_TEST("disk-drive-network-sheepdog");
|
||||
DO_TEST_FULL("disk-scsi-device", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("disk-scsi-device", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_NODEFCONFIG,
|
||||
QEMU_CAPS_SCSI_LSI);
|
||||
DO_TEST("disk-scsi-vscsi");
|
||||
DO_TEST_FULL("disk-scsi-virtio-scsi", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("disk-scsi-virtio-scsi", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_NODEFCONFIG,
|
||||
QEMU_CAPS_VIRTIO_SCSI);
|
||||
DO_TEST_FULL("disk-virtio-scsi-num_queues", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("disk-virtio-scsi-num_queues", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_NODEFCONFIG,
|
||||
QEMU_CAPS_VIRTIO_SCSI);
|
||||
DO_TEST_FULL("disk-virtio-scsi-cmd_per_lun", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("disk-virtio-scsi-cmd_per_lun", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_NODEFCONFIG,
|
||||
QEMU_CAPS_VIRTIO_SCSI);
|
||||
DO_TEST_FULL("disk-virtio-scsi-max_sectors", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("disk-virtio-scsi-max_sectors", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_NODEFCONFIG,
|
||||
QEMU_CAPS_VIRTIO_SCSI);
|
||||
DO_TEST_FULL("disk-virtio-scsi-ioeventfd", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("disk-virtio-scsi-ioeventfd", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_NODEFCONFIG,
|
||||
QEMU_CAPS_VIRTIO_SCSI);
|
||||
DO_TEST_FULL("disk-scsi-megasas", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("disk-scsi-megasas", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_NODEFCONFIG,
|
||||
QEMU_CAPS_SCSI_MEGASAS);
|
||||
DO_TEST_FULL("disk-scsi-mptsas1068", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("disk-scsi-mptsas1068", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_NODEFCONFIG,
|
||||
QEMU_CAPS_SCSI_MPTSAS1068,
|
||||
QEMU_CAPS_SCSI_DISK_WWN);
|
||||
DO_TEST("disk-mirror-old");
|
||||
DO_TEST_FULL("disk-mirror", WHEN_ACTIVE, NONE);
|
||||
DO_TEST_FULL("disk-mirror", WHEN_INACTIVE, NONE);
|
||||
DO_TEST_FULL("disk-active-commit", WHEN_ACTIVE, NONE);
|
||||
DO_TEST_FULL("disk-mirror", WHEN_ACTIVE, GIC_NONE, NONE);
|
||||
DO_TEST_FULL("disk-mirror", WHEN_INACTIVE, GIC_NONE, NONE);
|
||||
DO_TEST_FULL("disk-active-commit", WHEN_ACTIVE, GIC_NONE, NONE);
|
||||
DO_TEST("graphics-listen-network");
|
||||
DO_TEST("graphics-vnc");
|
||||
DO_TEST("graphics-vnc-websocket");
|
||||
@ -501,7 +505,7 @@ mymain(void)
|
||||
DO_TEST("cputune-iothreadsched");
|
||||
DO_TEST("cputune-iothreadsched-zeropriority");
|
||||
DO_TEST("cputune-numatune");
|
||||
DO_TEST_FULL("vcpu-placement-static", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("vcpu-placement-static", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_DEVICE_PCI_BRIDGE);
|
||||
|
||||
DO_TEST("smp");
|
||||
@ -510,12 +514,12 @@ mymain(void)
|
||||
DO_TEST("iothreads-ids-partial");
|
||||
DO_TEST("cputune-iothreads");
|
||||
DO_TEST("iothreads-disk");
|
||||
DO_TEST_FULL("iothreads-disk-virtio-ccw", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("iothreads-disk-virtio-ccw", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_VIRTIO_CCW, QEMU_CAPS_VIRTIO_S390);
|
||||
DO_TEST_FULL("iothreads-virtio-scsi-pci", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("iothreads-virtio-scsi-pci", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_NODEFCONFIG,
|
||||
QEMU_CAPS_VIRTIO_SCSI);
|
||||
DO_TEST_FULL("iothreads-virtio-scsi-ccw", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("iothreads-virtio-scsi-ccw", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_VIRTIO_SCSI,
|
||||
QEMU_CAPS_VIRTIO_CCW,
|
||||
QEMU_CAPS_VIRTIO_S390);
|
||||
@ -532,24 +536,24 @@ mymain(void)
|
||||
DO_TEST("blkdeviotune");
|
||||
DO_TEST("controller-usb-order");
|
||||
|
||||
DO_TEST_FULL("seclabel-dynamic-baselabel", WHEN_INACTIVE, NONE);
|
||||
DO_TEST_FULL("seclabel-dynamic-override", WHEN_INACTIVE, NONE);
|
||||
DO_TEST_FULL("seclabel-dynamic-labelskip", WHEN_INACTIVE, NONE);
|
||||
DO_TEST_FULL("seclabel-dynamic-relabel", WHEN_INACTIVE, NONE);
|
||||
DO_TEST_FULL("seclabel-dynamic-baselabel", WHEN_INACTIVE, GIC_NONE, NONE);
|
||||
DO_TEST_FULL("seclabel-dynamic-override", WHEN_INACTIVE, GIC_NONE, NONE);
|
||||
DO_TEST_FULL("seclabel-dynamic-labelskip", WHEN_INACTIVE, GIC_NONE, NONE);
|
||||
DO_TEST_FULL("seclabel-dynamic-relabel", WHEN_INACTIVE, GIC_NONE, NONE);
|
||||
DO_TEST("seclabel-static");
|
||||
DO_TEST_FULL("seclabel-static-labelskip", WHEN_ACTIVE, NONE);
|
||||
DO_TEST_FULL("seclabel-static-labelskip", WHEN_ACTIVE, GIC_NONE, NONE);
|
||||
DO_TEST("seclabel-none");
|
||||
DO_TEST("seclabel-dac-none");
|
||||
DO_TEST("seclabel-dynamic-none");
|
||||
DO_TEST("seclabel-device-multiple");
|
||||
DO_TEST_FULL("seclabel-dynamic-none-relabel", WHEN_INACTIVE, NONE);
|
||||
DO_TEST_FULL("seclabel-dynamic-none-relabel", WHEN_INACTIVE, GIC_NONE, NONE);
|
||||
DO_TEST("numad-static-vcpu-no-numatune");
|
||||
|
||||
DO_TEST_FULL("disk-scsi-lun-passthrough-sgio", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("disk-scsi-lun-passthrough-sgio", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_NODEFCONFIG,
|
||||
QEMU_CAPS_SCSI_CD, QEMU_CAPS_SCSI_LSI, QEMU_CAPS_VIRTIO_SCSI,
|
||||
QEMU_CAPS_SCSI_DISK_WWN);
|
||||
DO_TEST_FULL("disk-scsi-disk-vpd", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("disk-scsi-disk-vpd", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_NODEFCONFIG,
|
||||
QEMU_CAPS_SCSI_CD, QEMU_CAPS_SCSI_LSI, QEMU_CAPS_VIRTIO_SCSI,
|
||||
QEMU_CAPS_SCSI_DISK_WWN);
|
||||
@ -569,7 +573,7 @@ mymain(void)
|
||||
DO_TEST("balloon-device-period");
|
||||
DO_TEST("channel-virtio-auto");
|
||||
DO_TEST("console-compat-auto");
|
||||
DO_TEST_FULL("disk-scsi-device-auto", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("disk-scsi-device-auto", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_NODEFCONFIG,
|
||||
QEMU_CAPS_SCSI_LSI);
|
||||
DO_TEST("console-virtio");
|
||||
@ -586,37 +590,37 @@ mymain(void)
|
||||
DO_TEST("metadata");
|
||||
DO_TEST("metadata-duplicate");
|
||||
|
||||
DO_TEST_FULL("pci-bridge", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("pci-bridge", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_DEVICE_PCI_BRIDGE);
|
||||
DO_TEST_FULL("pci-bridge-many-disks", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("pci-bridge-many-disks", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_DEVICE_PCI_BRIDGE);
|
||||
DO_TEST_FULL("pci-autoadd-addr", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("pci-autoadd-addr", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_DEVICE_PCI_BRIDGE);
|
||||
DO_TEST_FULL("pci-autoadd-idx", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("pci-autoadd-idx", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_DEVICE_PCI_BRIDGE);
|
||||
|
||||
DO_TEST_FULL("q35", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("q35", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_DEVICE_PCI_BRIDGE,
|
||||
QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
|
||||
QEMU_CAPS_ICH9_AHCI,
|
||||
QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_ICH9_USB_EHCI1,
|
||||
QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
|
||||
QEMU_CAPS_VGA_QXL, QEMU_CAPS_DEVICE_QXL);
|
||||
DO_TEST_FULL("q35-usb2", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("q35-usb2", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_DEVICE_PCI_BRIDGE,
|
||||
QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
|
||||
QEMU_CAPS_ICH9_AHCI,
|
||||
QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_ICH9_USB_EHCI1,
|
||||
QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
|
||||
QEMU_CAPS_VGA_QXL, QEMU_CAPS_DEVICE_QXL);
|
||||
DO_TEST_FULL("q35-usb2-multi", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("q35-usb2-multi", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_DEVICE_PCI_BRIDGE,
|
||||
QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
|
||||
QEMU_CAPS_ICH9_AHCI,
|
||||
QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_ICH9_USB_EHCI1,
|
||||
QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
|
||||
QEMU_CAPS_VGA_QXL, QEMU_CAPS_DEVICE_QXL);
|
||||
DO_TEST_FULL("q35-usb2-reorder", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("q35-usb2-reorder", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_DEVICE_PCI_BRIDGE,
|
||||
QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
|
||||
QEMU_CAPS_ICH9_AHCI,
|
||||
@ -624,38 +628,38 @@ mymain(void)
|
||||
QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
|
||||
QEMU_CAPS_VGA_QXL, QEMU_CAPS_DEVICE_QXL);
|
||||
|
||||
DO_TEST_FULL("pcie-root", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("pcie-root", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_DEVICE_PCI_BRIDGE,
|
||||
QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
|
||||
QEMU_CAPS_DEVICE_IOH3420,
|
||||
QEMU_CAPS_ICH9_AHCI,
|
||||
QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
|
||||
QEMU_CAPS_VGA_QXL, QEMU_CAPS_DEVICE_QXL);
|
||||
DO_TEST_FULL("pcie-root-port", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("pcie-root-port", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_DEVICE_PCI_BRIDGE,
|
||||
QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
|
||||
QEMU_CAPS_DEVICE_IOH3420,
|
||||
QEMU_CAPS_ICH9_AHCI,
|
||||
QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
|
||||
QEMU_CAPS_VGA_QXL, QEMU_CAPS_DEVICE_QXL);
|
||||
DO_TEST_FULL("pcie-switch-upstream-port", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("pcie-switch-upstream-port", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_DEVICE_PCI_BRIDGE,
|
||||
QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
|
||||
QEMU_CAPS_DEVICE_IOH3420,
|
||||
QEMU_CAPS_ICH9_AHCI,
|
||||
QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
|
||||
QEMU_CAPS_VGA_QXL, QEMU_CAPS_DEVICE_QXL);
|
||||
DO_TEST_FULL("pcie-switch-downstream-port", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("pcie-switch-downstream-port", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_DEVICE_PCI_BRIDGE,
|
||||
QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
|
||||
QEMU_CAPS_DEVICE_IOH3420,
|
||||
QEMU_CAPS_ICH9_AHCI,
|
||||
QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
|
||||
QEMU_CAPS_VGA_QXL, QEMU_CAPS_DEVICE_QXL);
|
||||
DO_TEST_FULL("pci-expander-bus", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("pci-expander-bus", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_DEVICE_PCI_BRIDGE,
|
||||
QEMU_CAPS_DEVICE_PXB);
|
||||
DO_TEST_FULL("pcie-expander-bus", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("pcie-expander-bus", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_DEVICE_PCI_BRIDGE,
|
||||
QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
|
||||
QEMU_CAPS_DEVICE_IOH3420,
|
||||
@ -664,59 +668,59 @@ mymain(void)
|
||||
QEMU_CAPS_DEVICE_PXB_PCIE);
|
||||
|
||||
|
||||
DO_TEST_FULL("hostdev-scsi-lsi", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("hostdev-scsi-lsi", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_SCSI_LSI,
|
||||
QEMU_CAPS_DEVICE_SCSI_GENERIC);
|
||||
DO_TEST_FULL("hostdev-scsi-virtio-scsi", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("hostdev-scsi-virtio-scsi", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_SCSI_LSI,
|
||||
QEMU_CAPS_DEVICE_SCSI_GENERIC);
|
||||
DO_TEST_FULL("hostdev-scsi-readonly", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("hostdev-scsi-readonly", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_SCSI_LSI,
|
||||
QEMU_CAPS_DEVICE_SCSI_GENERIC);
|
||||
|
||||
DO_TEST_FULL("hostdev-scsi-shareable", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("hostdev-scsi-shareable", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_SCSI_LSI,
|
||||
QEMU_CAPS_DEVICE_SCSI_GENERIC);
|
||||
DO_TEST_FULL("hostdev-scsi-sgio", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("hostdev-scsi-sgio", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_SCSI_LSI,
|
||||
QEMU_CAPS_DEVICE_SCSI_GENERIC);
|
||||
DO_TEST_FULL("hostdev-scsi-rawio", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("hostdev-scsi-rawio", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_SCSI_LSI,
|
||||
QEMU_CAPS_DEVICE_SCSI_GENERIC);
|
||||
|
||||
DO_TEST_FULL("hostdev-scsi-autogen-address", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("hostdev-scsi-autogen-address", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_SCSI_LSI,
|
||||
QEMU_CAPS_DEVICE_SCSI_GENERIC);
|
||||
DO_TEST_FULL("hostdev-scsi-large-unit", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("hostdev-scsi-large-unit", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_SCSI_LSI,
|
||||
QEMU_CAPS_DEVICE_SCSI_GENERIC);
|
||||
|
||||
DO_TEST_FULL("hostdev-scsi-lsi-iscsi", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("hostdev-scsi-lsi-iscsi", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_SCSI_LSI,
|
||||
QEMU_CAPS_DEVICE_SCSI_GENERIC);
|
||||
DO_TEST_FULL("hostdev-scsi-lsi-iscsi-auth", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("hostdev-scsi-lsi-iscsi-auth", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_SCSI_LSI,
|
||||
QEMU_CAPS_DEVICE_SCSI_GENERIC);
|
||||
DO_TEST_FULL("hostdev-scsi-virtio-iscsi", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("hostdev-scsi-virtio-iscsi", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_SCSI_LSI,
|
||||
QEMU_CAPS_DEVICE_SCSI_GENERIC);
|
||||
DO_TEST_FULL("hostdev-scsi-virtio-iscsi-auth", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("hostdev-scsi-virtio-iscsi-auth", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_SCSI_LSI,
|
||||
QEMU_CAPS_DEVICE_SCSI_GENERIC);
|
||||
|
||||
DO_TEST_FULL("s390-defaultconsole", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("s390-defaultconsole", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_VIRTIO_CCW, QEMU_CAPS_VIRTIO_S390);
|
||||
DO_TEST_FULL("s390-panic", WHEN_BOTH,
|
||||
DO_TEST_FULL("s390-panic", WHEN_BOTH, GIC_NONE,
|
||||
QEMU_CAPS_VIRTIO_CCW, QEMU_CAPS_VIRTIO_S390);
|
||||
DO_TEST_FULL("s390-panic-missing", WHEN_BOTH,
|
||||
DO_TEST_FULL("s390-panic-missing", WHEN_BOTH, GIC_NONE,
|
||||
QEMU_CAPS_VIRTIO_CCW, QEMU_CAPS_VIRTIO_S390);
|
||||
DO_TEST_FULL("s390-panic-no-address", WHEN_BOTH,
|
||||
DO_TEST_FULL("s390-panic-no-address", WHEN_BOTH, GIC_NONE,
|
||||
QEMU_CAPS_VIRTIO_CCW, QEMU_CAPS_VIRTIO_S390);
|
||||
|
||||
DO_TEST("pcihole64");
|
||||
DO_TEST("pcihole64-gib");
|
||||
DO_TEST("pcihole64-none");
|
||||
DO_TEST_FULL("pcihole64-q35", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("pcihole64-q35", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_DEVICE_PCI_BRIDGE,
|
||||
QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
|
||||
QEMU_CAPS_ICH9_AHCI,
|
||||
@ -754,17 +758,17 @@ mymain(void)
|
||||
DO_TEST("smbios");
|
||||
DO_TEST("smbios-multiple-type2");
|
||||
|
||||
DO_TEST_FULL("aarch64-aavmf-virtio-mmio", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("aarch64-aavmf-virtio-mmio", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DTB,
|
||||
QEMU_CAPS_DEVICE_VIRTIO_MMIO,
|
||||
QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM);
|
||||
DO_TEST_FULL("aarch64-virtio-pci-default", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("aarch64-virtio-pci-default", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DTB,
|
||||
QEMU_CAPS_DEVICE_VIRTIO_MMIO,
|
||||
QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM,
|
||||
QEMU_CAPS_OBJECT_GPEX, QEMU_CAPS_DEVICE_PCI_BRIDGE,
|
||||
QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_VIRTIO_SCSI);
|
||||
DO_TEST_FULL("aarch64-virtio-pci-manual-addresses", WHEN_ACTIVE,
|
||||
DO_TEST_FULL("aarch64-virtio-pci-manual-addresses", WHEN_ACTIVE, GIC_NONE,
|
||||
QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DTB,
|
||||
QEMU_CAPS_DEVICE_VIRTIO_MMIO,
|
||||
QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM,
|
||||
@ -790,7 +794,7 @@ mymain(void)
|
||||
|
||||
cfg = virQEMUDriverGetConfig(&driver);
|
||||
cfg->vncAutoUnixSocket = true;
|
||||
DO_TEST_FULL("graphics-vnc-autosocket", WHEN_INACTIVE, NONE);
|
||||
DO_TEST_FULL("graphics-vnc-autosocket", WHEN_INACTIVE, GIC_NONE, NONE);
|
||||
cfg->vncAutoUnixSocket = false;
|
||||
|
||||
virObjectUnref(cfg);
|
||||
|
@ -556,4 +556,40 @@ int qemuTestDriverInit(virQEMUDriver *driver)
|
||||
return -1;
|
||||
}
|
||||
|
||||
int
|
||||
testQemuCapsSetGIC(virQEMUCapsPtr qemuCaps,
|
||||
int gic)
|
||||
{
|
||||
virGICCapability *gicCapabilities = NULL;
|
||||
size_t ngicCapabilities = 0;
|
||||
int ret = -1;
|
||||
|
||||
if (VIR_ALLOC_N(gicCapabilities, 2) < 0)
|
||||
goto out;
|
||||
|
||||
# define IMPL_BOTH \
|
||||
VIR_GIC_IMPLEMENTATION_KERNEL|VIR_GIC_IMPLEMENTATION_EMULATED
|
||||
|
||||
if (gic & GIC_V2) {
|
||||
gicCapabilities[ngicCapabilities].version = VIR_GIC_VERSION_2;
|
||||
gicCapabilities[ngicCapabilities].implementation = IMPL_BOTH;
|
||||
ngicCapabilities++;
|
||||
}
|
||||
if (gic & GIC_V3) {
|
||||
gicCapabilities[ngicCapabilities].version = VIR_GIC_VERSION_3;
|
||||
gicCapabilities[ngicCapabilities].implementation = IMPL_BOTH;
|
||||
ngicCapabilities++;
|
||||
}
|
||||
|
||||
# undef IMPL_BOTH
|
||||
|
||||
virQEMUCapsSetGICCapabilities(qemuCaps,
|
||||
gicCapabilities, ngicCapabilities);
|
||||
|
||||
ret = 0;
|
||||
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -5,6 +5,13 @@
|
||||
# include "qemu/qemu_capabilities.h"
|
||||
# include "qemu/qemu_conf.h"
|
||||
|
||||
enum {
|
||||
GIC_NONE = 0,
|
||||
GIC_V2,
|
||||
GIC_V3,
|
||||
GIC_BOTH,
|
||||
};
|
||||
|
||||
virCapsPtr testQemuCapsInit(void);
|
||||
virDomainXMLOptionPtr testQemuXMLConfInit(void);
|
||||
|
||||
@ -20,6 +27,9 @@ void qemuTestDriverFree(virQEMUDriver *driver);
|
||||
int qemuTestCapsCacheInsert(virQEMUCapsCachePtr cache, const char *binary,
|
||||
virQEMUCapsPtr caps);
|
||||
|
||||
int testQemuCapsSetGIC(virQEMUCapsPtr qemuCaps,
|
||||
int gic);
|
||||
|
||||
/* This variable is actually defined in src/qemu/qemu_capabilities.c */
|
||||
extern const char *qemuTestCapsName;
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user