@@ -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:
@@ -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:
As with gdbserver, valgrind delays the test execution, so the default QMP socket timeout expires too soon. Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> --- python/qemu/machine.py | 4 +++- tests/qemu-iotests/iotests.py | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-)