As with gdbserver, valgrind delays the test execution, so the default QMP socket timeout expires too soon.
Signed-off-by: Emanuele Giuseppe Esposito <eespo...@redhat.com> --- python/qemu/machine.py | 4 +++- tests/qemu-iotests/iotests.py | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/python/qemu/machine.py b/python/qemu/machine.py index 284b73385f..4b6eb39856 100644 --- a/python/qemu/machine.py +++ b/python/qemu/machine.py @@ -409,7 +409,9 @@ def _launch(self) -> None: shell=False, close_fds=False) - timer = None if 'gdbserver' in self._wrapper else 15.0 + delay_timer = 'gdbserver' in self._wrapper + delay_timer |= 'valgrind' in self._wrapper + timer = None if delay_timer else 15.0 self._post_launch(timer) def _early_cleanup(self) -> None: diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index 7c28f0cb74..56733954b2 100644 --- a/tests/qemu-iotests/iotests.py +++ b/tests/qemu-iotests/iotests.py @@ -699,7 +699,7 @@ def qmp_to_opts(self, obj): def get_qmp_events_filtered(self, wait=60.0): result = [] qmp_wait = wait - if qemu_gdb: + if qemu_gdb or qemu_valgrind: qmp_wait = 0.0 for ev in self.get_qmp_events(wait=qmp_wait): result.append(filter_qmp_event(ev)) @@ -1003,7 +1003,7 @@ def cancel_and_wait(self, drive='drive0', force=False, self.assert_qmp(result, 'return', {}) qmp_wait = wait - if qemu_gdb: + if qemu_gdb or qemu_valgrind: qmp_wait = 0.0 if resume: @@ -1029,7 +1029,7 @@ def wait_until_completed(self, drive='drive0', check_offset=True, wait=60.0, error=None): '''Wait for a block job to finish, returning the event''' qmp_wait = wait - if qemu_gdb: + if qemu_gdb or qemu_valgrind: qmp_wait = 0.0 while True: for event in self.vm.get_qmp_events(wait=qmp_wait): @@ -1077,7 +1077,7 @@ def complete_and_wait(self, drive='drive0', wait_ready=True, def pause_wait(self, job_id='job0'): def_timeout = 3 - if qemu_gdb: + if qemu_gdb or qemu_valgrind: def_timeout = 3000 with Timeout(def_timeout, "Timeout waiting for job to pause"): while True: -- 2.30.2