20.05.2021 10:52, Emanuele Giuseppe Esposito wrote:
As with gdbserver, valgrind delays the test execution, so the default QMP socket timeout timeout too soon.
First, "Timeout" class is a generic class for timeouts, not relying to sockets. So, commit message lacks information about that we modify generic context-provider class and why we do it.
Signed-off-by: Emanuele Giuseppe Esposito <[email protected]> --- tests/qemu-iotests/iotests.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index 41462a80fc..5d75094ba6 100644 --- a/tests/qemu-iotests/iotests.py +++ b/tests/qemu-iotests/iotests.py @@ -489,12 +489,12 @@ def __init__(self, seconds, errmsg="Timeout"): self.seconds = seconds self.errmsg = errmsg def __enter__(self): - if not qemu_gdb: + if not (qemu_gdb or qemu_valgrind): signal.signal(signal.SIGALRM, self.timeout) signal.setitimer(signal.ITIMER_REAL, self.seconds) return self def __exit__(self, exc_type, value, traceback): - if not qemu_gdb: + if not (qemu_gdb or qemu_valgrind):
If you follow my suggestion on 05, you'll have to modify only one line instead of two.
signal.setitimer(signal.ITIMER_REAL, 0) return False def timeout(self, signum, frame): @@ -589,7 +589,7 @@ class VM(qtest.QEMUQtestMachine):def __init__(self, path_suffix=''):name = "qemu%s-%d" % (path_suffix, os.getpid()) - timer = 15.0 if not qemu_gdb else None + timer = 15.0 if not (qemu_gdb or qemu_valgrind) else None super().__init__(qemu_prog, qemu_opts, wrapper=qemu_gdb, name=name, test_dir=test_dir,
still it should work as intended: Reviewed-by: Vladimir Sementsov-Ogievskiy <[email protected]> -- Best regards, Vladimir
