16.06.2021 10:09, Emanuele Giuseppe Esposito wrote:


On 15/06/2021 09:57, Vladimir Sementsov-Ogievskiy wrote:
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 <eespo...@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsement...@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



I think I am going to drop this change.
This series already has patch 2 to ignore another pylint warning, plus another 
separate patch was sent to silence a warning that pops out with newer versions 
of pylint.

pylint complains should not be a reason for bad pattern. Shadowing the whole 
class is not good too, but it's at least a separate small hack, instead of 
silencing the whole logic of existing well-defined class internally with help 
of global variable.

--
Best regards,
Vladimir

Reply via email to