On Tue, Jan 10, 2023 at 3:38 AM Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru> wrote: > > Add similar method for consistency. > > Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru> > --- > tests/qemu-iotests/iotests.py | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py > index c69b10ac82..dd08cd8a2b 100644 > --- a/tests/qemu-iotests/iotests.py > +++ b/tests/qemu-iotests/iotests.py > @@ -462,6 +462,10 @@ def qmp(self, cmd: str, args: Optional[Dict[str, > object]] = None) \ > assert self._qmp is not None > return self._qmp.cmd_raw(cmd, args) > > + def cmd(self, cmd: str, args: Optional[Dict[str, object]] = None) \ > + -> QMPMessage: > + return self._qmp.cmd(cmd, **args) > +
The typing of this is off -- try "make check-dev" in qemu.git/python to see: iotests.py:467: error: Item "None" of "Optional[QEMUMonitorProtocol]" has no attribute "cmd" [union-attr] iotests.py:467: error: Argument after ** must be a mapping, not "Optional[Dict[str, object]]" [arg-type] iotests.py:467: error: Incompatible return value type (got "Union[object, Any]", expected "Dict[str, Any]") [return-value] Found 3 errors in 1 file (checked 32 source files) You need to assert that self._qmp is not None for the first; the second seems to do with a potentially "None" argument for args, and the third has to do with the difference between returning the entire raw response and just the return value. I started making a fixup branch, but I stopped around here. https://gitlab.com/jsnow/qemu/-/commits/vlad-iotest-patches > def stop(self, kill_signal=15): > self._p.send_signal(kill_signal) > self._p.wait() > -- > 2.34.1 >