[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v10 10/14] iotests: add hmp helper with logging
From: |
Max Reitz |
Subject: |
Re: [PATCH v10 10/14] iotests: add hmp helper with logging |
Date: |
Tue, 31 Mar 2020 12:21:34 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 |
On 31.03.20 02:00, John Snow wrote:
> Minor cleanup for HMP functions; helps with line length and consolidates
> HMP helpers through one implementation function.
>
> Although we are adding a universal toggle to turn QMP logging on or off,
> many existing callers to hmp functions don't expect that output to be
> logged, which causes quite a few changes in the test output.
>
> For now, offer a use_log parameter.
>
>
> Typing notes:
>
> QMPResponse is just an alias for Dict[str, Any]. It holds no special
> meanings and it is not a formal subtype of Dict[str, Any]. It is best
> thought of as a lexical synonym.
>
> We may well wish to add stricter subtypes in the future for certain
> shapes of data that are not formalized as Python objects, at which point
> we can simply retire the alias and allow mypy to more strictly check
> usages of the name.
>
> Signed-off-by: John Snow <address@hidden>
> ---
> tests/qemu-iotests/iotests.py | 35 ++++++++++++++++++++++-------------
> 1 file changed, 22 insertions(+), 13 deletions(-)
Reviewed-by: Max Reitz <address@hidden>
> diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
> index b08bcb87e1..dfc753c319 100644
> --- a/tests/qemu-iotests/iotests.py
> +++ b/tests/qemu-iotests/iotests.py
> @@ -37,6 +37,10 @@
>
> assert sys.version_info >= (3, 6)
>
> +# Type Aliases
> +QMPResponse = Dict[str, Any]
> +
> +
> faulthandler.enable()
>
> # This will not work if arguments contain spaces but is necessary if we
> @@ -540,25 +544,30 @@ def add_incoming(self, addr):
> self._args.append(addr)
> return self
>
> - def pause_drive(self, drive, event=None):
> - '''Pause drive r/w operations'''
> + def hmp(self, command_line: str, use_log: bool = False) -> QMPResponse:
> + cmd = 'human-monitor-command'
> + kwargs = {'command-line': command_line}
> + if use_log:
> + return self.qmp_log(cmd, **kwargs)
> + else:
> + return self.qmp(cmd, **kwargs)
Hm. I suppose I should take this chance to understand something about
mypy. QEMUMachine.qmp() isn’t typed, so mypy can’t check that this
really returns QMPResponse. Is there some flag to make it? Like
--actually-check-types?
(--strict seems, well, overly strict? Like not allowing generics, I
don’t see why. Or I suppose for the time being we want to allow untyped
definitions, as long as they don’t break type assertions such as it kind
of does here...?)
Max
signature.asc
Description: OpenPGP digital signature
- [PATCH v10 00/14] iotests: use python logging, John Snow, 2020/03/30
- [PATCH v10 02/14] iotests: don't use 'format' for drive_add, John Snow, 2020/03/30
- [PATCH v10 01/14] iotests: do a light delinting, John Snow, 2020/03/30
- [PATCH v10 03/14] iotests: ignore import warnings from pylint, John Snow, 2020/03/30
- [PATCH v10 04/14] iotests: replace mutable list default args, John Snow, 2020/03/30
- [PATCH v10 07/14] iotests: drop pre-Python 3.4 compatibility code, John Snow, 2020/03/30
- [PATCH v10 05/14] iotests: add pylintrc file, John Snow, 2020/03/30
- [PATCH v10 08/14] iotests: touch up log function signature, John Snow, 2020/03/30
- [PATCH v10 10/14] iotests: add hmp helper with logging, John Snow, 2020/03/30
- Re: [PATCH v10 10/14] iotests: add hmp helper with logging,
Max Reitz <=
- [PATCH v10 06/14] iotests: alphabetize standard imports, John Snow, 2020/03/30
- [PATCH v10 09/14] iotests: limit line length to 79 chars, John Snow, 2020/03/30
- [PATCH v10 12/14] iotest 258: use script_main, John Snow, 2020/03/30
- [PATCH v10 13/14] iotests: Mark verify functions as private, John Snow, 2020/03/30
- [PATCH v10 11/14] iotests: add script_initialize, John Snow, 2020/03/30