All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Schoenebeck <qemu_oss@crudebyte.com>
To: qemu-devel@nongnu.org
Cc: Thomas Huth <thuth@redhat.com>,
	Laurent Vivier <lvivier@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>,
	Greg Kurz <groug@kaod.org>
Subject: [PATCH 00/12] 9pfs: add tests using local fs driver
Date: Sun, 27 Sep 2020 12:43:56 +0200	[thread overview]
Message-ID: <cover.1601203436.git.qemu_oss@crudebyte.com> (raw)

The currently existing 9pfs test cases are all solely using the 9pfs 'synth'
fileystem driver, which is a very simple and purely simulated (in RAM only)
filesystem. There are issues though where the 'synth' fs driver is not
sufficient. For example the following two bugs need test cases running the
9pfs 'local' fs driver:

https://bugs.launchpad.net/qemu/+bug/1336794
https://bugs.launchpad.net/qemu/+bug/1877384

This patch set for that reason introduces 9pfs test cases using the 9pfs
'local' filesystem driver along to the already existing tests on 'synth'.
It consists of 3 parts:

1. Mandatory qos patches 1 and 2 lay the ground by removing a limitation of
   the qtest/qos subsystem: support for more than one device using the same
   (official) QEMU device name.

2. Optional qos patches 3 to 6 were used for debugging the qtest framework.
   I found them very useful to get insight how the qos graph is built, how
   the generated QEMU commands looks like, and what environemnt variables are
   already available in qtests. I thought they might helpful for other people
   as well, either in suggested or some modified form. Especially as it's not
   obvious sometimes why certain tests are simply ignored by the qtest
   framework (e.g. because of a missing link in qos path from test node to
   qos root node, or certain devices been auto marked as 'unavailable' after
   QMP negotiation with QEMU). I introduced several new QTEST_* environment
   variables for the individual debugging aspects; maybe they could simply
   use one and the same variable like QTEST_DEBUG instead.
   Note: patch 3 uses coloured output to mark the individual graph nodes as
   either available or unavailable. It does not check for tty color support
   right now. I'm not sure if there is already some QEMU util function that
   could be used for that check.

3. Patches 7 to 12 actually introduce 9pfs 'local' test cases using the qtest
   framework. They only work in conjunction with qos patches 1 and 2. These
   'local' tests are adding a test directory 'qtest-9p-local' inside the
   current working directory (using get_current_dir()), which is typically the
   build directory, before running the tests. That test directory is
   automatically recreated next time the test suite is run again, to ensure
   the 9pfs 'local' tests always run consistently on a clean test directory.
   The test directory is used by the 'local' driver as root of its export
   path. So it will add/read/write/delete real files and directories inside
   that test directory.
   Note: I was adding a bunch of basic util functions like split(),
   concat_path() and strpr(). I am not sure if there are already public QEMU
   util functions that I could instead of them.

Christian Schoenebeck (12):
  tests/qtest/qgraph: add qemu_name to QOSGraphNode
  tests/qtest/qgraph: add qos_node_create_driver_named()
  tests/qtest/qos: add qos_dump_graph()
  tests/qtest/qos-test: new QTEST_DUMP_GRAPH environment variable
  tests/qtest/qos-test: add QTEST_DUMP_ENV environment variable
  tests/qtest/qos-test: add environment variable QTEST_DEBUG
  test/9pfs: change export tag name to qtest-synth
  tests/9pfs: refactor test names and test devices
  tests/9pfs: introduce local tests
  tests/9pfs: wipe local 9pfs test directory
  tests/9pfs: add virtio_9p_test_path()
  tests/9pfs: add local Tmkdir test

 tests/qtest/libqos/qgraph.c          | 108 ++++++++++++++-
 tests/qtest/libqos/qgraph.h          |  36 +++++
 tests/qtest/libqos/qgraph_internal.h |   1 +
 tests/qtest/libqos/virtio-9p.c       | 147 ++++++++++++++++++---
 tests/qtest/libqos/virtio-9p.h       |   8 +-
 tests/qtest/qos-test.c               |  15 ++-
 tests/qtest/virtio-9p-test.c         | 188 ++++++++++++++++++++++++---
 7 files changed, 463 insertions(+), 40 deletions(-)

-- 
2.20.1



             reply	other threads:[~2020-09-27 12:21 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-27 10:43 Christian Schoenebeck [this message]
2020-09-27 10:38 ` [PATCH 01/12] tests/qtest/qgraph: add qemu_name to QOSGraphNode Christian Schoenebeck
2020-09-27 10:39 ` [PATCH 02/12] tests/qtest/qgraph: add qos_node_create_driver_named() Christian Schoenebeck
2020-09-27 10:39 ` [PATCH 03/12] tests/qtest/qos: add qos_dump_graph() Christian Schoenebeck
2020-09-27 10:39 ` [PATCH 04/12] tests/qtest/qos-test: new QTEST_DUMP_GRAPH environment variable Christian Schoenebeck
2020-09-27 10:39 ` [PATCH 05/12] tests/qtest/qos-test: add QTEST_DUMP_ENV " Christian Schoenebeck
2020-09-27 10:40 ` [PATCH 06/12] tests/qtest/qos-test: add environment variable QTEST_DEBUG Christian Schoenebeck
2020-09-28  8:31   ` Paolo Bonzini
2020-09-28 12:11     ` Christian Schoenebeck
2020-09-27 10:40 ` [PATCH 07/12] test/9pfs: change export tag name to qtest-synth Christian Schoenebeck
2020-09-27 10:40 ` [PATCH 08/12] tests/9pfs: refactor test names and test devices Christian Schoenebeck
2020-09-28  8:36   ` Paolo Bonzini
2020-09-28  8:37   ` Paolo Bonzini
2020-09-28 11:56     ` Christian Schoenebeck
2020-09-28 12:42       ` Paolo Bonzini
2020-09-28 13:35         ` Christian Schoenebeck
2020-09-28 16:38           ` Paolo Bonzini
2020-10-01 11:34             ` Christian Schoenebeck
2020-10-01 11:56               ` Paolo Bonzini
2020-10-01 12:15                 ` Christian Schoenebeck
2020-10-01 14:04                   ` Paolo Bonzini
2020-10-01 15:26                     ` Christian Schoenebeck
2020-09-27 10:40 ` [PATCH 09/12] tests/9pfs: introduce local tests Christian Schoenebeck
2020-09-27 10:41 ` [PATCH 10/12] tests/9pfs: wipe local 9pfs test directory Christian Schoenebeck
2020-09-27 10:41 ` [PATCH 11/12] tests/9pfs: add virtio_9p_test_path() Christian Schoenebeck
2020-09-27 10:41 ` [PATCH 12/12] tests/9pfs: add local Tmkdir test Christian Schoenebeck

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=cover.1601203436.git.qemu_oss@crudebyte.com \
    --to=qemu_oss@crudebyte.com \
    --cc=e.emanuelegiuseppe@gmail.com \
    --cc=groug@kaod.org \
    --cc=lvivier@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@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.