3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-11-25 09:39:25 +01:00

test-runner: store process stdout

If a blocking process is started store the output in case
the caller needs it. Output will be stored in Process.out.
This commit is contained in:
James Prestwood 2020-11-16 14:25:09 -08:00 committed by Denis Kenzior
parent eb92c0a6e5
commit 6bf514c4c3

View File

@ -209,14 +209,24 @@ class Process:
self.stdout = sys.__stdout__
self.stderr = sys.__stderr__
if not wait and not check:
self.pid = subprocess.Popen(self.args, stdout=self.stdout, \
stderr=self.stderr, env=env, \
cwd=os.getcwd())
print("Starting process {}".format(self.pid.args))
else:
self.ret = subprocess.call(self.args, stdout=self.stdout, \
stderr=self.stderr)
if not wait and not check:
return
self.pid.wait()
self.out, _ = self.pid.communicate()
self.ret = self.pid.returncode
if self.out:
self.out = self.out.decode('utf-8')
print("%s returned %d" % (args[0], self.ret))
if check and self.ret != 0:
raise subprocess.CalledProcessError(returncode=self.ret, cmd=self.args)