qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v5 06/16] qemu-iotests: delay QMP socket timers


From: Vladimir Sementsov-Ogievskiy
Subject: Re: [PATCH v5 06/16] qemu-iotests: delay QMP socket timers
Date: Tue, 15 Jun 2021 10:57:46 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

14.06.2021 13:36, Emanuele Giuseppe Esposito wrote:


On 04/06/2021 11:17, Emanuele Giuseppe Esposito wrote:
Attaching gdbserver implies that the qmp socket
should wait indefinitely for an answer from QEMU.

For Timeout class, create a @contextmanager that
switches Timeout with NoTimeout (empty context manager)
so that if --gdb is set, no timeout will be triggered.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
---
  tests/qemu-iotests/iotests.py | 9 ++++++++-
  1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index c86f239d81..d4bfd8f1d6 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -486,6 +486,13 @@ def __exit__(self, exc_type, value, traceback):
      def timeout(self, signum, frame):
          raise Exception(self.errmsg)
+@contextmanager
+def NoTimeout():
+    yield
+
+if qemu_gdb:
+    Timeout = NoTimeout
+

@Vladimir or anyone expert enough in python:
This fix above works, but I just noticed that makes pylint (test 297) fail. My 
bad, I should have tried it before.

I think, just make mypy ignore it, like:

   Timeout = NoTimeout # type: ignore



The reason for that is
+    Timeout = NoTimeout

They obviously have different types.

+iotests.py:507: error: Cannot assign to a type
+iotests.py:507: error: Incompatible types in assignment (expression has type "Callable[[], 
_GeneratorContextManager[Any]]", variable has type "Type[Timeout]")
+Found 2 errors in 1 file (checked 1 source file)

Any ideas on how to fix this? Otherwise I will get rid of it.

Thank you,
Emanuele

  def file_pattern(name):
      return "{0}-{1}".format(os.getpid(), name)
@@ -575,7 +582,7 @@ class VM(qtest.QEMUQtestMachine):
      def __init__(self, path_suffix=''):
          name = "qemu%s-%d" % (path_suffix, os.getpid())
-        timer = 15.0
+        timer = 15.0 if not qemu_gdb else None
          super().__init__(qemu_prog, qemu_opts, name=name,
                           base_temp_dir=test_dir,
                           socket_scm_helper=socket_scm_helper,




--
Best regards,
Vladimir



reply via email to

[Prev in Thread] Current Thread [Next in Thread]