iotests.py: QemuIoInteractive: print output on failure

Make it simpler to debug when qemu-io fails due to wrong arguments or
environment.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20200701105331.121670-3-vsementsov@virtuozzo.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Vladimir Sementsov-Ogievskiy 2020-07-01 13:53:28 +03:00 committed by Eric Blake
parent a1a7f56cdd
commit 1f4b774a64
1 changed files with 7 additions and 1 deletions

View File

@ -217,7 +217,13 @@ class QemuIoInteractive:
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
universal_newlines=True)
assert self._p.stdout.read(9) == 'qemu-io> '
out = self._p.stdout.read(9)
if out != 'qemu-io> ':
# Most probably qemu-io just failed to start.
# Let's collect the whole output and exit.
out += self._p.stdout.read()
self._p.wait(timeout=1)
raise ValueError(out)
def close(self):
self._p.communicate('q\n')