qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH RFC 0/1] qtest: Generic PCI device test


From: John Snow
Subject: Re: [Qemu-devel] [PATCH RFC 0/1] qtest: Generic PCI device test
Date: Thu, 29 Jan 2015 14:46:46 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0



On 01/29/2015 09:58 AM, Markus Armbruster wrote:
The test uses QMP introspection to find PCI devices, then tries to
cold-plug each of them.  Could be extended to hot-plug and unplug.

The tests' QMP introspection part is patterned after Andreas's
qom-test, which uses QMP to find machine types.

The following devices pass the test:

     AC97                ich9-ahci           pcnet
     ES1370              ich9-intel-hda      piix3-ide
     VGA                 ich9-usb-ehci1      piix3-ide-xen
     am53c974            ich9-usb-ehci2      piix3-usb-uhci
     cirrus-vga          ich9-usb-uhci1      piix4-ide
     dc390               ich9-usb-uhci2      piix4-usb-uhci
     e1000               ich9-usb-uhci3      pvscsi
     e1000-82540em       ich9-usb-uhci4      qxl-vga
     e1000-82544gc       ich9-usb-uhci5      rtl8139
     e1000-82545em       ich9-usb-uhci6      sdhci-pci
     edu                 intel-hda           secondary-vga
     i6300esb            ioh3420             tpci200
     i82550              lsi53c810           usb-ehci
     i82551              lsi53c895a          virtio-balloon-pci
     i82557a             megasas             virtio-blk-pci
     i82557b             megasas-gen2        virtio-net-pci
     i82557c             ne2k_pci            virtio-rng-pci
     i82558a             nec-usb-xhci        virtio-scsi-pci
     i82558b             nvme                virtio-serial-pci
     i82559a             pci-bridge          vmware-svga
     i82559b             pci-ohci            vmxnet3
     i82559c             pci-serial          vt82c686b-usb-uhci
     i82559er            pci-serial-2x       x3130-upstream
     i82562              pci-serial-4x       xen-pvdevice
     i82801              pci-testdev         xio3130-downstream
     i82801b11-bridge

Many of them are not currently tested at all.

This test does everything a number of existing tests currently do:

     ac97-test.c e1000-test.c es1370-test.c eepro100-test.c
     ne2000-test.c nvme-test.c pcnet-test.c rtl8139-test.c
     tpci200-test.c virtio-balloon-test.c virtio-rng-test.c
     vmxnet3-test.c

They are all marked "TODO: Replace with functional tests".  Options

* Delete them now, undelete when we add functional tests

* Keep them, blacklist the devices in pci-devs-test.c

* Live with the duplicated testing


I'd be happy with stubbing out some of those tests, so we at least have some record and starting place for beginning tests again in the future.

So... Delete the test interface, keep the tests?

Or: Remove these devices from the generic test, but factor the generic test code such that these device tests can just invoke the generic routines from their own tests.

That way there's no duplication, everybody gets to use the shared code, and we keep the record that we'd like to enhance testing of these devices.

Andreas, I guess you got an opinion here.

There's overlap with a few others:

     i82801b11-test.c usb-hcd-ehci-test.c usb-hcd-ohci-test.c
     usb-hcd-xhci-test.c virtio-blk-test.c virtio-net-test.c
     virtio-scsi-test.c virtio-serial-test.c

Options:

* Blacklist the devices in pci-devs-test.c

* Live with the duplicated testing


If you factor out the core generic PCI testing as above, you can just cull the common parts out of these tests and let them do their own functional tests on top, then blacklist them from the generic dispatcher.

Andreas?

I manually blacklisted devices unavailable with -device, because QMP
introspection can't tell (pity).

I further blacklisted devices that require a suitable host device to
pass through:

     kvm-pci-assign     vhost-scsi-pci       xen-pci-passthrough
     vfio-pci

I blacklisted virtio-9p-pci and ivshmem for now, because they require
funky backends.

I blacklisted qxl and xen-platform, because they fail the test.

The test runs only for the x86 targets, just like all of
$(check-qtest-pci-y).  It could run on other targets, as long as we
can find a machine type with a PCI bus.

Markus Armbruster (1):
   qtest: Add generic PCI device test

  tests/Makefile        |   2 +
  tests/pci-devs-test.c | 299 ++++++++++++++++++++++++++++++++++++++++++++++++++
  2 files changed, 301 insertions(+)
  create mode 100644 tests/pci-devs-test.c




reply via email to

[Prev in Thread] Current Thread [Next in Thread]