All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Cc: qemu-devel@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com>,
	"Alexander Graf" <agraf@suse.de>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	qemu-block@nongnu.org, "Fam Zheng" <famz@redhat.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"David Gibson" <david@gibson.dropbear.id.au>,
	"Laurent Vivier" <lvivier@redhat.com>,
	qemu-ppc@nongnu.org, "John Snow" <jsnow@redhat.com>,
	"Amit Shah" <amit@kernel.org>,
	"Stefan Hajnoczi" <stefanha@redhat.com>,
	"Gerd Hoffmann" <kraxel@redhat.com>, "Greg Kurz" <groug@kaod.org>
Subject: Re: [Qemu-devel] [PATCH 00/33] Qtest driver framework
Date: Mon, 13 Aug 2018 15:02:51 +0300	[thread overview]
Message-ID: <20180813145125-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20180813101453.10200-1-e.emanuelegiuseppe@gmail.com>

On Mon, Aug 13, 2018 at 12:14:20PM +0200, Emanuele Giuseppe Esposito wrote:
> Qgraph API for the qtest driver framework
> 
> This series of patches introduce a different qtest driver
> organization, viewing machines, drivers and tests as node in a
> graph, each having one or multiple edges relations.
> 
> The idea is to have a framework where each test asks for a specific
> driver, and the framework takes care of allocating the proper devices
> required and passing the correct command line arguments to QEMU.
> 
> A node can be of four types:
> - MACHINE:   for example "arm/raspi2"
> - DRIVER:    for example "generic-sdhci"
> - INTERFACE: for example "sdhci" (interface for all "-sdhci" drivers)
> - TEST:      for example "sdhci-test", consumes an interface and tests
>              the functions provided
> 
> An edge relation between two nodes (drivers or machines) X and Y can be:
> - X CONSUMES Y: Y can be plugged into X
> - X PRODUCES Y: X provides the interface Y
> - X CONTAINS Y: Y is part of X component
> 
> Basic framework steps are the following:
> - All nodes and edges are created in their respective machine/driver/test files
> - The framework starts QEMU and asks for a list of available devices
>   and machines
> - The framework walks the graph starting from the available machines and
>   performs a Depth First Search for tests
> - Once a test is found, the path is walked again and all drivers are
>   allocated accordingly and the final interface is passed to the test
> - The test is executed
> - Unused objects are cleaned and the path discovery is continued
> 
> Depending on the QEMU binary used, only some drivers/machines will be available
> and only test that are reached by them will be executed.
> 
> This work is being done as Google Summer of Code 2018 project for QEMU,
> my mentors are Paolo Bonzini and Laurent Vivier.
> Additional infos on the project can be found at:
> https://wiki.qemu.org/Features/qtest_driver_framework

Seems pretty clean to me. Except that patch 33
needs to be fixed and fix squashed:

Acked-by: Michael S. Tsirkin <mst@redhat.com>


> v3:
> - Minor fixes regarding memory leaks and naming
> 
> Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
> 
> Emanuele Giuseppe Esposito (32):
>   tests: qgraph API for the qtest driver framework
>   tests/qgraph: rename qpci_init_pc and qpci_init_spapr functions
>   tests/qgraph: pci-pc driver and interface nodes
>   tests/qgraph: x86_64/pc machine node
>   tests/qgraph: sdhci driver and interface nodes
>   tests/qgraph: sdhci test node
>   tests/qgraph: arm/raspi2 machine node
>   tests/qgraph: pci-spapr driver and interface nodes
>   tests/qgraph: ppc64/pseries machine node
>   tests/qgraph: has_buggy_msi flag
>   tests/qgraph: e1000e driver and interface nodes
>   tests/qgraph: e1000e-test node
>   tests/qgraph: virtio_start_device function
>   tests/qgraph: virtio-pci driver and interface nodes
>   tests/qgraph: virtio-mmio driver and interface nodes
>   tests/qgraph: arm/virt machine node
>   tests/qgraph: virtio-serial driver and interface nodes
>   tests/qgraph: virtio-console test node
>   tests/qgraph: virtio-serial test node
>   tests/qgraph: virtio-9p driver and interface nodes
>   tests/qgraph: virtio-9p test node
>   tests/qgraph: virtio-balloon driver and interface nodes
>   tests/qgraph: virtio-balloon test node
>   tests/qgraph: virtio-rng driver and interface nodes
>   tests/qgraph: virtio-rng test node
>   tests/qgraph: virtio-blk driver and interface nodes
>   tests/qgraph: virtio-blk test node
>   tests/qgraph: virtio-net driver and interface nodes
>   tests/qgraph: virtio-net test node
>   tests/qgraph: virtio-scsi driver and interface nodes
>   tests/qgraph: virtio-scsi test node
>   tests/qgraph: temporarly commented vhost-user-test
> 
> Paolo Bonzini (1):
>   tests: virtio: separate ccw tests from libqos
> 
>  configure                            |   2 +-
>  include/qemu/module.h                |   2 +
>  tests/Makefile.include               |  79 +--
>  tests/e1000e-test.c                  | 354 +++----------
>  tests/i440fx-test.c                  |   2 +-
>  tests/ide-test.c                     |   2 +-
>  tests/libqos/ahci.c                  |   2 +-
>  tests/libqos/e1000e.c                | 262 ++++++++++
>  tests/libqos/e1000e.h                |  53 ++
>  tests/libqos/libqos-pc.c             |   2 +-
>  tests/libqos/libqos-spapr.c          |   2 +-
>  tests/libqos/libqos.c                |   2 +-
>  tests/libqos/libqos.h                |   2 +-
>  tests/libqos/pci-pc.c                |  86 ++--
>  tests/libqos/pci-pc.h                |  22 +-
>  tests/libqos/pci-spapr.c             | 119 +++--
>  tests/libqos/pci-spapr.h             |  26 +-
>  tests/libqos/pci.c                   |  37 +-
>  tests/libqos/pci.h                   |  15 +
>  tests/libqos/ppc64_pseries-machine.c | 111 +++++
>  tests/libqos/qgraph.c                | 721 +++++++++++++++++++++++++++
>  tests/libqos/qgraph.h                | 515 +++++++++++++++++++
>  tests/libqos/qgraph_extra.h          | 263 ++++++++++
>  tests/libqos/raspi2-machine.c        |  82 +++
>  tests/libqos/sdhci.c                 | 163 ++++++
>  tests/libqos/sdhci.h                 |  69 +++
>  tests/libqos/virt-machine.c          |  90 ++++
>  tests/libqos/virtio-9p.c             | 165 ++++++
>  tests/libqos/virtio-9p.h             |  42 ++
>  tests/libqos/virtio-balloon.c        | 111 +++++
>  tests/libqos/virtio-balloon.h        |  39 ++
>  tests/libqos/virtio-blk.c            | 126 +++++
>  tests/libqos/virtio-blk.h            |  40 ++
>  tests/libqos/virtio-mmio.c           |  66 ++-
>  tests/libqos/virtio-mmio.h           |   5 +-
>  tests/libqos/virtio-net.c            | 179 +++++++
>  tests/libqos/virtio-net.h            |  41 ++
>  tests/libqos/virtio-pci.c            |  80 ++-
>  tests/libqos/virtio-pci.h            |  12 +
>  tests/libqos/virtio-rng.c            | 108 ++++
>  tests/libqos/virtio-rng.h            |  39 ++
>  tests/libqos/virtio-scsi.c           | 117 +++++
>  tests/libqos/virtio-scsi.h           |  39 ++
>  tests/libqos/virtio-serial.c         | 109 ++++
>  tests/libqos/virtio-serial.h         |  39 ++
>  tests/libqos/virtio.c                |   8 +
>  tests/libqos/virtio.h                |   1 +
>  tests/libqos/x86_64_pc-machine.c     | 110 ++++
>  tests/libqtest.h                     |   3 +
>  tests/q35-test.c                     |   4 +-
>  tests/qos-test.c                     | 481 ++++++++++++++++++
>  tests/rtl8139-test.c                 |   2 +-
>  tests/sdhci-test.c                   | 222 +++------
>  tests/tco-test.c                     |   2 +-
>  tests/test-qgraph.c                  | 446 +++++++++++++++++
>  tests/usb-hcd-ehci-test.c            |   2 +-
>  tests/vhost-user-test.c              |   6 +-
>  tests/virtio-9p-test.c               | 221 +++-----
>  tests/virtio-balloon-test.c          |  22 +-
>  tests/virtio-blk-test.c              | 473 +++++++-----------
>  tests/virtio-ccw-test.c              | 121 +++++
>  tests/virtio-console-test.c          |  30 +-
>  tests/virtio-net-test.c              | 163 ++----
>  tests/virtio-rng-test.c              |  25 +-
>  tests/virtio-scsi-test.c             | 155 +++---
>  tests/virtio-serial-test.c           |  27 +-
>  66 files changed, 5674 insertions(+), 1292 deletions(-)
>  create mode 100644 tests/libqos/e1000e.c
>  create mode 100644 tests/libqos/e1000e.h
>  create mode 100644 tests/libqos/ppc64_pseries-machine.c
>  create mode 100644 tests/libqos/qgraph.c
>  create mode 100644 tests/libqos/qgraph.h
>  create mode 100644 tests/libqos/qgraph_extra.h
>  create mode 100644 tests/libqos/raspi2-machine.c
>  create mode 100644 tests/libqos/sdhci.c
>  create mode 100644 tests/libqos/sdhci.h
>  create mode 100644 tests/libqos/virt-machine.c
>  create mode 100644 tests/libqos/virtio-9p.c
>  create mode 100644 tests/libqos/virtio-9p.h
>  create mode 100644 tests/libqos/virtio-balloon.c
>  create mode 100644 tests/libqos/virtio-balloon.h
>  create mode 100644 tests/libqos/virtio-blk.c
>  create mode 100644 tests/libqos/virtio-blk.h
>  create mode 100644 tests/libqos/virtio-net.c
>  create mode 100644 tests/libqos/virtio-net.h
>  create mode 100644 tests/libqos/virtio-rng.c
>  create mode 100644 tests/libqos/virtio-rng.h
>  create mode 100644 tests/libqos/virtio-scsi.c
>  create mode 100644 tests/libqos/virtio-scsi.h
>  create mode 100644 tests/libqos/virtio-serial.c
>  create mode 100644 tests/libqos/virtio-serial.h
>  create mode 100644 tests/libqos/x86_64_pc-machine.c
>  create mode 100644 tests/qos-test.c
>  create mode 100644 tests/test-qgraph.c
>  create mode 100644 tests/virtio-ccw-test.c
> 
> -- 
> 2.17.1

  parent reply	other threads:[~2018-08-13 12:03 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-13 10:14 [Qemu-devel] [PATCH 00/33] Qtest driver framework Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 01/33] tests: qgraph API for the qtest " Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 02/33] tests/qgraph: rename qpci_init_pc and qpci_init_spapr functions Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 03/33] tests/qgraph: pci-pc driver and interface nodes Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 04/33] tests/qgraph: x86_64/pc machine node Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 05/33] tests/qgraph: sdhci driver and interface nodes Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 06/33] tests/qgraph: sdhci test node Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 07/33] tests/qgraph: arm/raspi2 machine node Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 08/33] tests/qgraph: pci-spapr driver and interface nodes Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 09/33] tests/qgraph: ppc64/pseries machine node Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 10/33] tests/qgraph: has_buggy_msi flag Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 11/33] tests/qgraph: e1000e driver and interface nodes Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 12/33] tests/qgraph: e1000e-test node Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 13/33] tests/qgraph: virtio_start_device function Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 14/33] tests/qgraph: virtio-pci driver and interface nodes Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 15/33] tests/qgraph: virtio-mmio " Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 16/33] tests/qgraph: arm/virt machine node Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 17/33] tests: virtio: separate ccw tests from libqos Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 18/33] tests/qgraph: virtio-serial driver and interface nodes Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 19/33] tests/qgraph: virtio-console test node Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 20/33] tests/qgraph: virtio-serial " Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 21/33] tests/qgraph: virtio-9p driver and interface nodes Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 22/33] tests/qgraph: virtio-9p test node Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 23/33] tests/qgraph: virtio-balloon driver and interface nodes Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 24/33] tests/qgraph: virtio-balloon test node Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 25/33] tests/qgraph: virtio-rng driver and interface nodes Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 26/33] tests/qgraph: virtio-rng test node Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 27/33] tests/qgraph: virtio-blk driver and interface nodes Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 28/33] tests/qgraph: virtio-blk test node Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 29/33] tests/qgraph: virtio-net driver and interface nodes Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 30/33] tests/qgraph: virtio-net test node Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 31/33] tests/qgraph: virtio-scsi driver and interface nodes Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 32/33] tests/qgraph: virtio-scsi test node Emanuele Giuseppe Esposito
2018-08-13 10:14 ` [Qemu-devel] [PATCH 33/33] tests/qgraph: temporarly commented vhost-user-test Emanuele Giuseppe Esposito
2018-08-13 11:15   ` Michael S. Tsirkin
2018-08-13 11:22     ` Paolo Bonzini
2018-08-13 12:02 ` Michael S. Tsirkin [this message]
2018-08-15 12:38 ` [Qemu-devel] [PATCH 00/33] Qtest driver framework Markus Armbruster
2018-08-16 18:16   ` Emanuele

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180813145125-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=agraf@suse.de \
    --cc=amit@kernel.org \
    --cc=david@gibson.dropbear.id.au \
    --cc=e.emanuelegiuseppe@gmail.com \
    --cc=f4bug@amsat.org \
    --cc=famz@redhat.com \
    --cc=groug@kaod.org \
    --cc=jasowang@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=lvivier@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.