On 4/23/20 3:15 PM, Bjoern Walk wrote:
Add separate tests for individual options and devices for
virtio-options
to have the ability to do more fine-granular testing of various
combinations.
Also, add negative tests for unavailable capabilities.
Reviewed-by: Boris Fiuczynski <fiuczy(a)linux.ibm.com>
Signed-off-by: Bjoern Walk <bwalk(a)linux.ibm.com>
---
.../virtio-options-controller-ats.args | 32 ++++++
.../virtio-options-controller-ats.xml | 38 +++++++
.../virtio-options-controller-iommu.args | 34 +++++++
.../virtio-options-controller-iommu.xml | 38 +++++++
.../virtio-options-controller-packed.args | 32 ++++++
.../virtio-options-controller-packed.xml | 38 +++++++
.../virtio-options-disk-ats.args | 36 +++++++
.../virtio-options-disk-ats.xml | 34 +++++++
.../virtio-options-disk-iommu.args | 36 +++++++
.../virtio-options-disk-iommu.xml | 34 +++++++
.../virtio-options-disk-packed.args | 36 +++++++
.../virtio-options-disk-packed.xml | 34 +++++++
.../virtio-options-fs-ats.args | 34 +++++++
.../virtio-options-fs-ats.xml | 34 +++++++
.../virtio-options-fs-iommu.args | 34 +++++++
.../virtio-options-fs-iommu.xml | 34 +++++++
.../virtio-options-fs-packed.args | 34 +++++++
.../virtio-options-fs-packed.xml | 34 +++++++
.../virtio-options-input-ats.args | 30 ++++++
.../virtio-options-input-ats.xml | 30 ++++++
.../virtio-options-input-iommu.args | 30 ++++++
.../virtio-options-input-iommu.xml | 30 ++++++
.../virtio-options-input-packed.args | 30 ++++++
.../virtio-options-input-packed.xml | 30 ++++++
.../virtio-options-memballoon-ats.args | 28 ++++++
.../virtio-options-memballoon-ats.xml | 23 +++++
.../virtio-options-memballoon-iommu.args | 28 ++++++
.../virtio-options-memballoon-iommu.xml | 23 +++++
.../virtio-options-memballoon-packed.args | 28 ++++++
.../virtio-options-memballoon-packed.xml | 23 +++++
.../virtio-options-net-ats.args | 34 +++++++
.../virtio-options-net-ats.xml | 34 +++++++
.../virtio-options-net-iommu.args | 34 +++++++
.../virtio-options-net-iommu.xml | 34 +++++++
.../virtio-options-net-packed.args | 34 +++++++
.../virtio-options-net-packed.xml | 34 +++++++
.../virtio-options-rng-ats.args | 32 ++++++
.../virtio-options-rng-ats.xml | 32 ++++++
.../virtio-options-rng-iommu.args | 34 +++++++
.../virtio-options-rng-iommu.xml | 32 ++++++
.../virtio-options-rng-packed.args | 32 ++++++
.../virtio-options-rng-packed.xml | 32 ++++++
.../virtio-options-video-ats.args | 34 +++++++
.../virtio-options-video-ats.xml | 36 +++++++
.../virtio-options-video-iommu.args | 34 +++++++
.../virtio-options-video-iommu.xml | 36 +++++++
.../virtio-options-video-packed.args | 34 +++++++
.../virtio-options-video-packed.xml | 36 +++++++
tests/qemuxml2argvtest.c | 99 +++++++++++++++++++
49 files changed, 1666 insertions(+)
create mode 100644 tests/qemuxml2argvdata/virtio-options-controller-ats.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-controller-ats.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-controller-iommu.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-controller-iommu.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-controller-packed.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-controller-packed.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-disk-ats.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-disk-ats.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-disk-iommu.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-disk-iommu.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-disk-packed.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-disk-packed.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-fs-ats.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-fs-ats.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-fs-iommu.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-fs-iommu.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-fs-packed.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-fs-packed.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-input-ats.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-input-ats.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-input-iommu.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-input-iommu.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-input-packed.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-input-packed.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-memballoon-ats.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-memballoon-ats.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-memballoon-iommu.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-memballoon-iommu.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-memballoon-packed.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-memballoon-packed.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-net-ats.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-net-ats.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-net-iommu.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-net-iommu.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-net-packed.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-net-packed.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-rng-ats.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-rng-ats.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-rng-iommu.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-rng-iommu.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-rng-packed.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-rng-packed.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-video-ats.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-video-ats.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-video-iommu.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-video-iommu.xml
create mode 100644 tests/qemuxml2argvdata/virtio-options-video-packed.args
create mode 100644 tests/qemuxml2argvdata/virtio-options-video-packed.xml
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index dffca323..7ceb3aee 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -2982,6 +2982,105 @@ mymain(void)
QEMU_CAPS_QUERY_HOTPLUGGABLE_CPUS);
DO_TEST_CAPS_LATEST("virtio-options");
+ DO_TEST("virtio-options-controller-iommu", QEMU_CAPS_VIRTIO_SCSI,
+ QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM);
+ DO_TEST("virtio-options-disk-iommu",
QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM);
+ DO_TEST("virtio-options-fs-iommu", QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM);
+ DO_TEST("virtio-options-input-iommu", QEMU_CAPS_VIRTIO_MOUSE,
+ QEMU_CAPS_VIRTIO_KEYBOARD,
+ QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM);
+ DO_TEST("virtio-options-memballoon-iommu",
+ QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM);
+ DO_TEST("virtio-options-net-iommu", QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM);
+ DO_TEST("virtio-options-rng-iommu", QEMU_CAPS_DEVICE_VIRTIO_RNG,
+ QEMU_CAPS_OBJECT_RNG_RANDOM,
+ QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM);
+ DO_TEST("virtio-options-video-iommu", QEMU_CAPS_DEVICE_VIRTIO_GPU,
+ QEMU_CAPS_DEVICE_VIRTIO_GPU,
+ QEMU_CAPS_VIRTIO_GPU_VIRGL,
+ QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
+ QEMU_CAPS_DEVICE_VHOST_USER_GPU,
+ QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM);
+ DO_TEST("virtio-options-controller-ats", QEMU_CAPS_VIRTIO_SCSI,
+ QEMU_CAPS_VIRTIO_PCI_ATS);
+ DO_TEST("virtio-options-disk-ats", QEMU_CAPS_VIRTIO_PCI_ATS);
+ DO_TEST("virtio-options-fs-ats", QEMU_CAPS_VIRTIO_PCI_ATS);
+ DO_TEST("virtio-options-input-ats", QEMU_CAPS_VIRTIO_MOUSE,
+ QEMU_CAPS_VIRTIO_KEYBOARD,
+ QEMU_CAPS_VIRTIO_PCI_ATS);
+ DO_TEST("virtio-options-memballoon-ats",
+ QEMU_CAPS_VIRTIO_PCI_ATS);
+ DO_TEST("virtio-options-net-ats", QEMU_CAPS_VIRTIO_PCI_ATS);
+ DO_TEST("virtio-options-rng-ats", QEMU_CAPS_DEVICE_VIRTIO_RNG,
+ QEMU_CAPS_OBJECT_RNG_RANDOM,
+ QEMU_CAPS_VIRTIO_PCI_ATS);
+ DO_TEST("virtio-options-video-ats", QEMU_CAPS_DEVICE_VIRTIO_GPU,
+ QEMU_CAPS_DEVICE_VIRTIO_GPU,
+ QEMU_CAPS_VIRTIO_GPU_VIRGL,
+ QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
+ QEMU_CAPS_DEVICE_VHOST_USER_GPU,
+ QEMU_CAPS_VIRTIO_PCI_ATS);
+ DO_TEST("virtio-options-controller-packed", QEMU_CAPS_VIRTIO_SCSI,
+ QEMU_CAPS_VIRTIO_PACKED_QUEUES);
+ DO_TEST("virtio-options-disk-packed", QEMU_CAPS_VIRTIO_PACKED_QUEUES);
+ DO_TEST("virtio-options-fs-packed", QEMU_CAPS_VIRTIO_PACKED_QUEUES);
+ DO_TEST("virtio-options-input-packed", QEMU_CAPS_VIRTIO_MOUSE,
+ QEMU_CAPS_VIRTIO_KEYBOARD,
+ QEMU_CAPS_VIRTIO_PACKED_QUEUES);
+ DO_TEST("virtio-options-memballoon-packed",
+ QEMU_CAPS_VIRTIO_PACKED_QUEUES);
+ DO_TEST("virtio-options-net-packed", QEMU_CAPS_VIRTIO_PACKED_QUEUES);
+ DO_TEST("virtio-options-rng-packed", QEMU_CAPS_DEVICE_VIRTIO_RNG,
+ QEMU_CAPS_OBJECT_RNG_RANDOM,
+ QEMU_CAPS_VIRTIO_PACKED_QUEUES);
+ DO_TEST("virtio-options-video-packed", QEMU_CAPS_DEVICE_VIRTIO_GPU,
+ QEMU_CAPS_DEVICE_VIRTIO_GPU,
+ QEMU_CAPS_VIRTIO_GPU_VIRGL,
+ QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
+ QEMU_CAPS_DEVICE_VHOST_USER_GPU,
+ QEMU_CAPS_VIRTIO_PACKED_QUEUES);
+ DO_TEST_FAILURE("virtio-options-controller-iommu",
QEMU_CAPS_VIRTIO_SCSI);
+ DO_TEST_FAILURE("virtio-options-disk-iommu", NONE);
+ DO_TEST_FAILURE("virtio-options-fs-iommu", NONE);
+ DO_TEST_FAILURE("virtio-options-input-iommu", QEMU_CAPS_VIRTIO_MOUSE,
+ QEMU_CAPS_VIRTIO_KEYBOARD);
+ DO_TEST_FAILURE("virtio-options-memballoon-iommu", NONE);
+ DO_TEST_FAILURE("virtio-options-net-iommu", NONE);
+ DO_TEST_FAILURE("virtio-options-rng-iommu", QEMU_CAPS_DEVICE_VIRTIO_RNG,
+ QEMU_CAPS_OBJECT_RNG_RANDOM);
+ DO_TEST_FAILURE("virtio-options-video-iommu",
QEMU_CAPS_DEVICE_VIRTIO_GPU,
+ QEMU_CAPS_DEVICE_VIRTIO_GPU,
+ QEMU_CAPS_VIRTIO_GPU_VIRGL,
+ QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
+ QEMU_CAPS_DEVICE_VHOST_USER_GPU);
+ DO_TEST_FAILURE("virtio-options-controller-ats", QEMU_CAPS_VIRTIO_SCSI);
+ DO_TEST_FAILURE("virtio-options-disk-ats", NONE);
+ DO_TEST_FAILURE("virtio-options-fs-ats", NONE);
+ DO_TEST_FAILURE("virtio-options-input-ats", QEMU_CAPS_VIRTIO_MOUSE,
+ QEMU_CAPS_VIRTIO_KEYBOARD);
+ DO_TEST_FAILURE("virtio-options-memballoon-ats", NONE);
+ DO_TEST_FAILURE("virtio-options-net-ats", NONE);
+ DO_TEST_FAILURE("virtio-options-rng-ats", QEMU_CAPS_DEVICE_VIRTIO_RNG,
+ QEMU_CAPS_OBJECT_RNG_RANDOM);
+ DO_TEST_FAILURE("virtio-options-video-ats", QEMU_CAPS_DEVICE_VIRTIO_GPU,
+ QEMU_CAPS_DEVICE_VIRTIO_GPU,
+ QEMU_CAPS_VIRTIO_GPU_VIRGL,
+ QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
+ QEMU_CAPS_DEVICE_VHOST_USER_GPU);
+ DO_TEST_FAILURE("virtio-options-controller-packed",
QEMU_CAPS_VIRTIO_SCSI);
+ DO_TEST_FAILURE("virtio-options-disk-packed", NONE);
+ DO_TEST_FAILURE("virtio-options-fs-packed", NONE);
+ DO_TEST_FAILURE("virtio-options-input-packed", QEMU_CAPS_VIRTIO_MOUSE,
+ QEMU_CAPS_VIRTIO_KEYBOARD);
+ DO_TEST_FAILURE("virtio-options-memballoon-packed", NONE);
+ DO_TEST_FAILURE("virtio-options-net-packed", NONE);
+ DO_TEST_FAILURE("virtio-options-rng-packed", QEMU_CAPS_DEVICE_VIRTIO_RNG,
+ QEMU_CAPS_OBJECT_RNG_RANDOM);
+ DO_TEST_FAILURE("virtio-options-video-packed",
QEMU_CAPS_DEVICE_VIRTIO_GPU,
+ QEMU_CAPS_DEVICE_VIRTIO_GPU,
+ QEMU_CAPS_VIRTIO_GPU_VIRGL,
+ QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
+ QEMU_CAPS_DEVICE_VHOST_USER_GPU);
Impressive. But should we turn these into DO_TEST_CAPS_LATEST() and
DO_TEST_CAPS_LATEST_FAILURE() respectively? That would need to be
followed by .args rename but I'm okay doing both locally if you agree.
Michal