From: Hanna Reitz <hreitz@redhat.com>
To: John Snow <jsnow@redhat.com>, qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, qemu-block@nongnu.org
Subject: Re: [PATCH 06/15] iotests: rebase qemu_io() on top of qemu_tool()
Date: Tue, 22 Mar 2022 16:04:03 +0100 [thread overview]
Message-ID: <d89a365d-161b-e7bb-e5a0-80418e60d063@redhat.com> (raw)
In-Reply-To: <20220318203655.676907-7-jsnow@redhat.com>
On 18.03.22 21:36, John Snow wrote:
> Rework qemu_io() to be analogous to qemu_img(); a function that requires
> a return code of zero by default unless disabled explicitly.
>
> Tests that use qemu_io():
> 030 040 041 044 055 056 093 124 129 132 136 148 149 151 152 163 165 205
> 209 219 236 245 248 254 255 257 260 264 280 298 300 302 304
> image-fleecing migrate-bitmaps-postcopy-test migrate-bitmaps-test
> migrate-during-backup migration-permissions
>
> Test that use qemu_io_log():
> 242 245 255 274 303 307 nbd-reconnect-on-open
>
> Signed-off-by: John Snow <jsnow@redhat.com>
>
> ---
>
> Note: This breaks several tests at this point. I'll be fixing each
> broken test one by one in the subsequent commits. We can squash them all
> on merge to avoid test regressions.
Well, absolutely.
> (Seems like a way to have your cake and eat it too with regards to
> maintaining bisectability while also having nice mailing list patches.)
I personally find reviewability to not be affected whether this is one
patch or multiple, given that the changes are in different files anyway.
I am afraid someone might forgot to squash when merging this series,
though...
Also, I don’t know how to squash R-b tags, and I don’t feel like I can
give an R-b for a patch that decidedly breaks tests.
>
> Copy-pastables:
>
> ./check -qcow2 030 040 041 044 055 056 124 129 132 151 152 163 165 209 \
> 219 236 242 245 248 254 255 257 260 264 274 \
> 280 298 300 302 303 304 307 image-fleecing \
> migrate-bitmaps-postcopy-test migrate-bitmaps-test \
> migrate-during-backup nbd-reconnect-on-open
>
> ./check -raw 093 136 148 migration-permissions
>
> ./check -nbd 205
>
> # ./configure configure --disable-gnutls --enable-gcrypt
> # this ALSO requires passwordless sudo.
> ./check -luks 149
>
>
> # Just the ones that fail:
> ./check -qcow2 030 040 242 245
> ./check -raw migration-permissions
> ./check -nbd 205
> ./check -luks 149
>
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
> tests/qemu-iotests/iotests.py | 19 +++++++++++++------
> 1 file changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
> index 974a2b0c8d..58ea766568 100644
> --- a/tests/qemu-iotests/iotests.py
> +++ b/tests/qemu-iotests/iotests.py
> @@ -354,16 +354,23 @@ def qemu_io_wrap_args(args: Sequence[str]) -> List[str]:
> def qemu_io_popen(*args):
> return qemu_tool_popen(qemu_io_wrap_args(args))
>
> -def qemu_io(*args):
> - '''Run qemu-io and return the stdout data'''
> - return qemu_tool_pipe_and_status('qemu-io', qemu_io_wrap_args(args))[0]
> +def qemu_io(*args: str, check: bool = True, combine_stdio: bool = True
> + ) -> subprocess.CompletedProcess[str]:
I guess this return type probably has to be quoted.
> + """
> + Run QEMU_IO_PROG and return the status code and console output.
> +
> + This function always prepends either QEMU_IO_OPTIONS or
> + QEMU_IO_OPTIONS_NO_FMT.
> + """
> + return qemu_tool(*qemu_io_wrap_args(args),
> + check=check, combine_stdio=combine_stdio)
>
> def qemu_io_pipe_and_status(*args):
> return qemu_tool_pipe_and_status('qemu-io', qemu_io_wrap_args(args))
>
> -def qemu_io_log(*args):
> - result = qemu_io(*args)
> - log(result, filters=[filter_testfiles, filter_qemu_io])
> +def qemu_io_log(*args: str) -> subprocess.CompletedProcess[str]:
...and this one.
Hanna
> + result = qemu_io(*args, check=False)
> + log(result.stdout, filters=[filter_testfiles, filter_qemu_io])
> return result
>
> def qemu_io_silent(*args):
next prev parent reply other threads:[~2022-03-22 15:06 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-18 20:36 [PATCH 00/15] iotests: add enhanced debugging info to qemu-io failures John Snow
2022-03-18 20:36 ` [PATCH 01/15] iotests: replace calls to log(qemu_io(...)) with qemu_io_log() John Snow
2022-03-21 13:35 ` Eric Blake
2022-03-22 13:51 ` Hanna Reitz
2022-03-18 20:36 ` [PATCH 02/15] iotests/163: Fix broken qemu-io invocation John Snow
2022-03-21 13:44 ` Eric Blake
2022-03-22 14:07 ` Hanna Reitz
2022-03-18 20:36 ` [PATCH 03/15] iotests: Don't check qemu_io() output for specific error strings John Snow
2022-03-21 13:48 ` Eric Blake
2022-03-22 14:16 ` Hanna Reitz
2022-03-18 20:36 ` [PATCH 04/15] iotests/040: Don't check image pattern on zero-length image John Snow
2022-03-21 14:58 ` Eric Blake
2022-03-22 14:22 ` Hanna Reitz
2022-03-22 16:19 ` John Snow
2022-03-22 17:12 ` Hanna Reitz
2022-03-18 20:36 ` [PATCH 05/15] iotests: create generic qemu_tool() function John Snow
2022-03-21 15:13 ` Eric Blake
2022-03-21 16:20 ` John Snow
2022-03-22 14:49 ` Hanna Reitz
2022-03-22 16:25 ` John Snow
2022-03-18 20:36 ` [PATCH 06/15] iotests: rebase qemu_io() on top of qemu_tool() John Snow
2022-03-21 15:29 ` Eric Blake
2022-03-21 16:57 ` John Snow
2022-03-22 15:04 ` Hanna Reitz [this message]
2022-03-22 16:30 ` John Snow
2022-03-18 20:36 ` [PATCH 07/15] iotests/030: fixup John Snow
2022-03-18 20:36 ` [PATCH 08/15] iotests/149: fixup John Snow
2022-03-22 16:29 ` Hanna Reitz
2022-03-18 20:36 ` [PATCH 09/15] iotests/205: fixup John Snow
2022-03-18 20:36 ` [PATCH 10/15] iotests/245: fixup John Snow
2022-03-21 17:42 ` Eric Blake
2022-03-22 16:30 ` Hanna Reitz
2022-03-22 16:36 ` John Snow
2022-03-22 16:38 ` Hanna Reitz
2022-03-22 17:00 ` John Snow
2022-03-18 20:36 ` [PATCH 11/15] iotests/migration-permissions: fixup John Snow
2022-03-18 20:36 ` [PATCH 12/15] iotests/migration-permissions: use assertRaises() for qemu_io() negative test John Snow
2022-03-21 18:07 ` Eric Blake
2022-03-22 16:37 ` Hanna Reitz
2022-03-22 17:12 ` John Snow
2022-03-18 20:36 ` [PATCH 13/15] iotests: remove qemu_io_pipe_and_status() John Snow
2022-03-21 18:09 ` Eric Blake
2022-03-22 16:39 ` Hanna Reitz
2022-03-22 19:28 ` John Snow
2022-03-18 20:36 ` [PATCH 14/15] iotests: remove qemu_io_silent() and qemu_io_silent_check() John Snow
2022-03-21 18:16 ` Eric Blake
2022-03-21 20:07 ` John Snow
2022-03-22 16:59 ` Hanna Reitz
2022-03-22 17:16 ` John Snow
2022-03-18 20:36 ` [PATCH 15/15] iotests: make qemu_io_log() check return codes by default John Snow
2022-03-21 18:22 ` Eric Blake
2022-03-21 20:09 ` John Snow
2022-03-22 17:03 ` Hanna Reitz
2022-03-22 17:18 ` [PATCH 00/15] iotests: add enhanced debugging info to qemu-io failures Hanna Reitz
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=d89a365d-161b-e7bb-e5a0-80418e60d063@redhat.com \
--to=hreitz@redhat.com \
--cc=jsnow@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).