From 36bd0565b7a84c61fe6ae0eb3d2e3cc542f5bd10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Mon, 30 Sep 2019 19:51:30 +0200 Subject: [PATCH] test-client.py: Close pipes and print logs on timeout failures If we failed on process wait, we didn't close the pipes and no clear output of what happened was exposed. So use a finally stanza to close the pipes and print stdout and stderr on failure. --- clients/tests/test-client.py | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/clients/tests/test-client.py b/clients/tests/test-client.py index 61c96dcbf..bafbc17bd 100755 --- a/clients/tests/test-client.py +++ b/clients/tests/test-client.py @@ -425,15 +425,29 @@ class AsyncProcess(): self.start() - Util.popen_wait(self._p, 2000) + error = False + try: + Util.popen_wait(self._p, 2000) + except Exception as e: + error = True + raise e + finally: + (returncode, stdout, stderr) = (self._p.returncode, + self._p.stdout.read(), + self._p.stderr.read()) - (returncode, stdout, stderr) = (self._p.returncode, self._p.stdout.read(), self._p.stderr.read()) + self._p.stdout.close() + self._p.stderr.close() + self._p = None - self._p.stdout.close() - self._p.stderr.close() - self._p = None + if error: + print(stdout) + print(stderr) - self._complete_cb(self, returncode, stdout, stderr) + try: + self._complete_cb(self, returncode, stdout, stderr) + except Exception as e: + raise e ###############################################################################