All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/12] iotests: add enhanced debugging info to qemu-io failures
@ 2022-04-18 21:14 John Snow
  2022-04-18 21:14 ` [PATCH v3 01/12] iotests: replace calls to log(qemu_io(...)) with qemu_io_log() John Snow
                   ` (12 more replies)
  0 siblings, 13 replies; 16+ messages in thread
From: John Snow @ 2022-04-18 21:14 UTC (permalink / raw)
  To: qemu-devel; +Cc: Kevin Wolf, Hanna Reitz, John Snow, qemu-block

GitLab: https://gitlab.com/jsnow/qemu/-/commits/iotests_qemu_io_diagnostics

Howdy,

This series does for qemu_io() what we've done for qemu_img() and makes
it a function that checks the return code by default and raises an
Exception when things do not go according to plan.

This series removes qemu_io_pipe_and_status(), qemu_io_silent(), and
qemu_io_silent_check() in favor of just qemu_io().

V3:

- Rebased
- Squashed the patches that I said I would

Note: check-tox job will fail right now, it's unrelated to this series;
see https://lists.gnu.org/archive/html/qemu-devel/2022-03/msg07149.html

V2:

- Fixed 040
- Fixed 245 on tmpfs
- Fixed tests/image-fleecing

- I expect to respin a v3 to:
  (A) Fix the commit message on the 040 fix
  (B) Squash patches 7-12.

Notes:

- There are a few remaining uses of qemu-io that don't go through qemu_io;
QemuIoInteractive is a user that is used in 205, 298, 299, and 307. It
... did not appear worth it to morph qemu_tool_popen into something that
could be used by both QemuIoInteractive *and* qemu_io(), so I left it
alone. It's probably fine for now. (But it does bother me, a little.)

- qemu_io_popen itself is used by the nbd-reconnect-on-open test, and it
seems like a legitimate use -- it wants concurrency. Like the above
problem, I couldn't find a way to bring it into the fold, so I
didn't. (Meh.) I eventually plan to add asyncio subprocess management to
machine.py, and I could tackle stuff like this then. It's not worth it
now.

(Maybe I'll bring these in under the fold the next time I get bored, but
I think it's not worth the trouble right now, there are very few
users. I did try, but the benefit to VerboseProcessError is that it
includes stdout/stderr. When using Popen with pipes you lose access to
that information in the management context. Popen does not natively
buffer stdout/stderr, so we'd have to fall back to just using a regular
CalledProcessError. I think I'd have to extend Popen and add
buffering. I think that's something for later.)

(I tried doing the above and it's definitely more hassle than it's worth
right now.)

John Snow (12):
  iotests: replace calls to log(qemu_io(...)) with qemu_io_log()
  iotests/163: Fix broken qemu-io invocation
  iotests: Don't check qemu_io() output for specific error strings
  iotests/040: Don't check image pattern on zero-length image
  iotests/040: Fix TestCommitWithFilters test
  iotests: create generic qemu_tool() function
  iotests: rebase qemu_io() on top of qemu_tool()
  iotests/migration-permissions: use assertRaises() for qemu_io()
    negative test
  iotests/image-fleecing: switch to qemu_io()
  iotests: remove qemu_io_pipe_and_status()
  iotests: remove qemu_io_silent() and qemu_io_silent_check().
  iotests: make qemu_io_log() check return codes by default

 tests/qemu-iotests/030                        | 85 +++++++++++--------
 tests/qemu-iotests/040                        | 53 +++++++-----
 tests/qemu-iotests/056                        |  2 +-
 tests/qemu-iotests/149                        |  6 +-
 tests/qemu-iotests/163                        |  5 +-
 tests/qemu-iotests/205                        |  4 +-
 tests/qemu-iotests/216                        | 12 +--
 tests/qemu-iotests/218                        |  5 +-
 tests/qemu-iotests/224                        |  4 +-
 tests/qemu-iotests/242                        |  6 +-
 tests/qemu-iotests/245                        | 17 ++--
 tests/qemu-iotests/255                        |  4 +-
 tests/qemu-iotests/258                        | 11 ++-
 tests/qemu-iotests/298                        | 15 ++--
 tests/qemu-iotests/303                        |  4 +-
 tests/qemu-iotests/310                        | 22 ++---
 tests/qemu-iotests/iotests.py                 | 69 ++++++++-------
 tests/qemu-iotests/tests/image-fleecing       | 30 ++++---
 .../qemu-iotests/tests/migration-permissions  | 28 +++---
 .../tests/mirror-ready-cancel-error           |  2 +-
 .../qemu-iotests/tests/nbd-reconnect-on-open  |  2 +-
 .../qemu-iotests/tests/stream-error-on-reset  |  4 +-
 22 files changed, 210 insertions(+), 180 deletions(-)

-- 
2.34.1




^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2022-04-26 17:22 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-18 21:14 [PATCH v3 00/12] iotests: add enhanced debugging info to qemu-io failures John Snow
2022-04-18 21:14 ` [PATCH v3 01/12] iotests: replace calls to log(qemu_io(...)) with qemu_io_log() John Snow
2022-04-18 21:14 ` [PATCH v3 02/12] iotests/163: Fix broken qemu-io invocation John Snow
2022-04-18 21:14 ` [PATCH v3 03/12] iotests: Don't check qemu_io() output for specific error strings John Snow
2022-04-18 21:14 ` [PATCH v3 04/12] iotests/040: Don't check image pattern on zero-length image John Snow
2022-04-18 21:14 ` [PATCH v3 05/12] iotests/040: Fix TestCommitWithFilters test John Snow
2022-04-18 21:14 ` [PATCH v3 06/12] iotests: create generic qemu_tool() function John Snow
2022-04-18 21:14 ` [PATCH v3 07/12] iotests: rebase qemu_io() on top of qemu_tool() John Snow
2022-04-19 19:19   ` Eric Blake
2022-04-18 21:15 ` [PATCH v3 08/12] iotests/migration-permissions: use assertRaises() for qemu_io() negative test John Snow
2022-04-18 21:15 ` [PATCH v3 09/12] iotests/image-fleecing: switch to qemu_io() John Snow
2022-04-18 21:15 ` [PATCH v3 10/12] iotests: remove qemu_io_pipe_and_status() John Snow
2022-04-18 21:15 ` [PATCH v3 11/12] iotests: remove qemu_io_silent() and qemu_io_silent_check() John Snow
2022-04-18 21:15 ` [PATCH v3 12/12] iotests: make qemu_io_log() check return codes by default John Snow
2022-04-25 12:31 ` [PATCH v3 00/12] iotests: add enhanced debugging info to qemu-io failures Hanna Reitz
2022-04-26 16:40   ` John Snow

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.