Skip to content

Commit

Permalink
iotests.py: add qemu_tool_popen()
Browse files Browse the repository at this point in the history
Split qemu_tool_popen() from qemu_tool_pipe_and_status() to be used
separately.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Nikita Lapshin <nikita.lapshin@virtuozzo.com>
  • Loading branch information
Vladimir Sementsov-Ogievskiy committed Dec 21, 2021
1 parent 9e14491 commit ea285c7
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions tests/qemu-iotests/iotests.py
Expand Up @@ -138,14 +138,21 @@ def unarchive_sample_image(sample, fname):
shutil.copyfileobj(f_in, f_out)


def qemu_tool_popen(args: Sequence[str],
connect_stderr: bool = True) -> subprocess.Popen:
stderr = subprocess.STDOUT if connect_stderr else None
return subprocess.Popen(args,
stdout=subprocess.PIPE,
stderr=stderr,
universal_newlines=True)


def qemu_tool_pipe_and_status(tool: str, args: Sequence[str],
connect_stderr: bool = True) -> Tuple[str, int]:
"""
Run a tool and return both its output and its exit code
"""
stderr = subprocess.STDOUT if connect_stderr else None
with subprocess.Popen(args, stdout=subprocess.PIPE,
stderr=stderr, universal_newlines=True) as subp:
with qemu_tool_popen(args, connect_stderr) as subp:
output = subp.communicate()[0]
if subp.returncode < 0:
cmd = ' '.join(args)
Expand Down

0 comments on commit ea285c7

Please sign in to comment.