[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 4/4] iotests: make qemu_img raise on non-zero rc by default
From: |
Eric Blake |
Subject: |
Re: [PATCH 4/4] iotests: make qemu_img raise on non-zero rc by default |
Date: |
Tue, 15 Feb 2022 17:09:09 -0600 |
User-agent: |
NeoMutt/20211029-322-5436a9 |
On Tue, Feb 15, 2022 at 05:08:53PM -0500, John Snow wrote:
> re-configure qemu_img() into a function that will by default raise a
> VerboseProcessException (extended from CalledProcessException) on
> non-zero return codes. This will produce a stack trace that will show
> the command line arguments and return code from the failed process run.
>
> Users that want something more flexible (There appears to be only one)
s/There/there/
> can use check=False and manage the return themselves.
>
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
> tests/qemu-iotests/257 | 8 ++++--
> tests/qemu-iotests/iotests.py | 53 +++++++++++++++++++++++++++++++----
> 2 files changed, 53 insertions(+), 8 deletions(-)
>
> +def qemu_img(*args: str, check: bool = True, combine_stdio: bool = True
> + ) -> subprocess.CompletedProcess[str]:
> + """
> + Run qemu_img, returning a CompletedProcess instance.
> +
> + The CompletedProcess object has args, returncode, and output properties.
> + If streams are not combined, It will also have stdout/stderr properties.
s/It/it/
> +
> + :param args: command-line arguments to qemu_img.
> + :param check: set to False to suppress VerboseProcessError.
> + :param combine_stdio: set to False to keep stdout/stderr separated.
> +
> + :raise VerboseProcessError:
> + On non-zero exit code, when 'check=True' was provided. This
> + exception has 'stderr', 'stdout' and 'returncode' properties
> + that may be inspected to show greater detail. If this exception
> + is not handled, The command-line, return code, and all console
s/The/the/
> + output will be included at the bottom of the stack trace.
> + """
> @@ -469,8 +511,9 @@ def qemu_nbd_popen(*args):
>
> def compare_images(img1, img2, fmt1=imgfmt, fmt2=imgfmt):
> '''Return True if two image files are identical'''
> - return qemu_img('compare', '-f', fmt1,
> - '-F', fmt2, img1, img2) == 0
> + res = qemu_img('compare', '-f', fmt1,
> + '-F', fmt2, img1, img2, check=False)
> + return res.returncode == 0
Not sure why there was so much Mid-sentence capitalization ;)
Seems useful, although it is at the limits of my python review skills,
so this is a weak:
Reviewed-by: Eric Blake <eblake@redhat.com>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
- [PATCH 3/4] iotests: Remove explicit checks for qemu_img() == 0, (continued)
[PATCH 4/4] iotests: make qemu_img raise on non-zero rc by default, John Snow, 2022/02/15
- Re: [PATCH 4/4] iotests: make qemu_img raise on non-zero rc by default,
Eric Blake <=
[PATCH 2/4] iotests: add VerboseProcessError, John Snow, 2022/02/15