[Qemu-devel] [PATCH v2 0/6] Make the core libqtest library independe from global_qtest

Thomas Huth posted 6 patches 4 years, 7 months ago
Test docker-clang@ubuntu failed
Test FreeBSD passed
Test checkpatch passed
Test docker-mingw@fedora passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190904130047.25808-1-thuth@redhat.com
Maintainers: Peter Maydell <peter.maydell@linaro.org>, Amit Shah <amit@kernel.org>, John Snow <jsnow@redhat.com>, Gerd Hoffmann <kraxel@redhat.com>, Corey Minyard <minyard@acm.org>, Thomas Huth <thuth@redhat.com>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, Juan Quintela <quintela@redhat.com>, Laurent Vivier <lvivier@redhat.com>, Alistair Francis <alistair@alistair23.me>, Stefan Berger <stefanb@linux.ibm.com>, Fam Zheng <fam@euphon.net>, Paolo Bonzini <pbonzini@redhat.com>, Jason Wang <jasowang@redhat.com>, Igor Mammedov <imammedo@redhat.com>, David Gibson <david@gibson.dropbear.id.au>, Stefan Hajnoczi <stefanha@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
MAINTAINERS                   |   2 +-
tests/ahci-test.c             |   1 -
tests/bios-tables-test.c      |   1 -
tests/cpu-plug-test.c         |   2 +-
tests/display-vga-test.c      |   2 +-
tests/e1000e-test.c           |   2 +-
tests/fdc-test.c              |   2 +-
tests/i440fx-test.c           |   2 +-
tests/i82801b11-test.c        |   2 +-
tests/intel-hda-test.c        |   2 +-
tests/ioh3420-test.c          |   2 +-
tests/ipmi-kcs-test.c         |   3 +-
tests/ivshmem-test.c          |   3 -
tests/libqos/e1000e.c         |  16 +-
tests/libqos/virtio-mmio.c    |  14 +-
tests/libqos/virtio-pci.c     |  14 +-
tests/libqos/virtio.c         |  20 +--
tests/libqos/virtio.h         |   6 +-
tests/libqtest-single.h       | 315 ++++++++++++++++++++++++++++++++++
tests/libqtest.c              |  13 --
tests/libqtest.h              | 289 -------------------------------
tests/m25p80-test.c           |   2 +-
tests/migration-test.c        |   6 +-
tests/qos-test.c              |   2 +-
tests/rtas-test.c             |   1 -
tests/rtc-test.c              |   2 +-
tests/rtl8139-test.c          |   2 +-
tests/test-arm-mptimer.c      |   2 +-
tests/test-netfilter.c        |   2 +-
tests/test-x86-cpuid-compat.c |   2 +-
tests/tmp105-test.c           |   2 +-
tests/tpm-crb-test.c          |   2 +-
tests/tpm-tests.c             |   2 +-
tests/tpm-tis-test.c          |   2 +-
tests/usb-hcd-ohci-test.c     |   2 +-
tests/usb-hcd-uhci-test.c     |   2 +-
tests/usb-hcd-xhci-test.c     |   2 +-
tests/vhost-user-test.c       |   2 +-
tests/virtio-blk-test.c       |   5 +-
tests/virtio-ccw-test.c       |   2 +-
tests/virtio-net-test.c       |   2 +-
tests/virtio-scsi-test.c      |   2 +-
tests/virtio-serial-test.c    |   2 +-
43 files changed, 396 insertions(+), 367 deletions(-)
create mode 100644 tests/libqtest-single.h
[Qemu-devel] [PATCH v2 0/6] Make the core libqtest library independe from global_qtest
Posted by Thomas Huth 4 years, 7 months ago
global_qtest and the related wrapper functions often caused trouble in
the past - if they are used somewhere in the libqtest or libqos library
code, it's hard to write tests that properly track multiple test states
(like migration tests).

This patch series finally gets rid of the remaining global_qtest
dependencies in the core libqtest code. The first patches are used to
clean up some files that should not use global_qtest anymore, then the
wrapper functions and the global_qtest definition get moved to a separate
header file called libqtest-single.h - which then should only be used in
tests that track only a single test state.

v2:
 - Do not add parameter to qvirtio_wait_config_isr(), but push the logic
   into virtio-mmio.c and virtio-pci.c instead since we have access to
   the test state here (as suggested by Laurent).

Thomas Huth (6):
  tests/migration: Do not use functions anymore that rely on
    global_qtest
  tests/libqos/e1000e: Make e1000e libqos functions independent from
    global_qtest
  tests/libqos: Replace clock_step with qtest_clock_step in virtio code
  tests: Remove unnecessary global_qtest references
  tests/libqtest: Move global_test wrapper function into a separate
    header
  tests/libqtest: Use libqtest-single.h in tests that require
    global_qtest

 MAINTAINERS                   |   2 +-
 tests/ahci-test.c             |   1 -
 tests/bios-tables-test.c      |   1 -
 tests/cpu-plug-test.c         |   2 +-
 tests/display-vga-test.c      |   2 +-
 tests/e1000e-test.c           |   2 +-
 tests/fdc-test.c              |   2 +-
 tests/i440fx-test.c           |   2 +-
 tests/i82801b11-test.c        |   2 +-
 tests/intel-hda-test.c        |   2 +-
 tests/ioh3420-test.c          |   2 +-
 tests/ipmi-kcs-test.c         |   3 +-
 tests/ivshmem-test.c          |   3 -
 tests/libqos/e1000e.c         |  16 +-
 tests/libqos/virtio-mmio.c    |  14 +-
 tests/libqos/virtio-pci.c     |  14 +-
 tests/libqos/virtio.c         |  20 +--
 tests/libqos/virtio.h         |   6 +-
 tests/libqtest-single.h       | 315 ++++++++++++++++++++++++++++++++++
 tests/libqtest.c              |  13 --
 tests/libqtest.h              | 289 -------------------------------
 tests/m25p80-test.c           |   2 +-
 tests/migration-test.c        |   6 +-
 tests/qos-test.c              |   2 +-
 tests/rtas-test.c             |   1 -
 tests/rtc-test.c              |   2 +-
 tests/rtl8139-test.c          |   2 +-
 tests/test-arm-mptimer.c      |   2 +-
 tests/test-netfilter.c        |   2 +-
 tests/test-x86-cpuid-compat.c |   2 +-
 tests/tmp105-test.c           |   2 +-
 tests/tpm-crb-test.c          |   2 +-
 tests/tpm-tests.c             |   2 +-
 tests/tpm-tis-test.c          |   2 +-
 tests/usb-hcd-ohci-test.c     |   2 +-
 tests/usb-hcd-uhci-test.c     |   2 +-
 tests/usb-hcd-xhci-test.c     |   2 +-
 tests/vhost-user-test.c       |   2 +-
 tests/virtio-blk-test.c       |   5 +-
 tests/virtio-ccw-test.c       |   2 +-
 tests/virtio-net-test.c       |   2 +-
 tests/virtio-scsi-test.c      |   2 +-
 tests/virtio-serial-test.c    |   2 +-
 43 files changed, 396 insertions(+), 367 deletions(-)
 create mode 100644 tests/libqtest-single.h

-- 
2.18.1


Re: [Qemu-devel] [PATCH v2 0/6] Make the core libqtest library independe from global_qtest
Posted by Stefan Hajnoczi 4 years, 7 months ago
On Wed, Sep 04, 2019 at 03:00:41PM +0200, Thomas Huth wrote:
> global_qtest and the related wrapper functions often caused trouble in
> the past - if they are used somewhere in the libqtest or libqos library
> code, it's hard to write tests that properly track multiple test states
> (like migration tests).
> 
> This patch series finally gets rid of the remaining global_qtest
> dependencies in the core libqtest code. The first patches are used to
> clean up some files that should not use global_qtest anymore, then the
> wrapper functions and the global_qtest definition get moved to a separate
> header file called libqtest-single.h - which then should only be used in
> tests that track only a single test state.
> 
> v2:
>  - Do not add parameter to qvirtio_wait_config_isr(), but push the logic
>    into virtio-mmio.c and virtio-pci.c instead since we have access to
>    the test state here (as suggested by Laurent).

Looks good overall.  I posted one comment on a patch.

Stefan