mbox series

[v2,0/6] Make the core libqtest library independe from global_qtest

Message ID 20190904130047.25808-1-thuth@redhat.com (mailing list archive)
Headers show
Series Make the core libqtest library independe from global_qtest | expand

Message

Thomas Huth Sept. 4, 2019, 1 p.m. UTC
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

Comments

Stefan Hajnoczi Sept. 4, 2019, 6:52 p.m. UTC | #1
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