[Piglit] [Patch v3 8/8] igt.py: Use subprocess.check_output instead of subprocess.Popen
Dylan Baker
baker.dylan.c at gmail.com
Wed Jan 28 11:35:08 PST 2015
This is somewhat simpler way to handle this, since check_output monitors
only stdout, and hides stderr, and it gives us a lovely exception if the
returncode isn't 0, which allows us to completely bypass the error
checking code if there is no error.
Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
---
tests/igt.py | 33 +++++++++++++++------------------
1 file changed, 15 insertions(+), 18 deletions(-)
diff --git a/tests/igt.py b/tests/igt.py
index 53525eb..8b13645 100644
--- a/tests/igt.py
+++ b/tests/igt.py
@@ -135,27 +135,24 @@ def list_tests(listname):
def add_subtest_cases(test):
"""Get subtest instances."""
- proc = subprocess.Popen(
- [os.path.join(IGT_TEST_ROOT, test), '--list-subtests'],
- stdout=subprocess.PIPE,
- env=os.environ.copy(),
- universal_newlines=True)
- out, _ = proc.communicate()
-
- # a return code of 79 indicates there are no subtests
- if proc.returncode == 79:
- profile.test_list[grouptools.join('igt', test)] = IGTTest(test)
- return
+ try:
+ out = subprocess.check_output(
+ [os.path.join(IGT_TEST_ROOT, test), '--list-subtests'],
+ env=os.environ.copy(),
+ universal_newlines=True)
+ except subprocess.CalledProcessError as e:
+ # a return code of 79 indicates there are no subtests
+ if e.returncode == 79:
+ profile.test_list[grouptools.join('igt', test)] = IGTTest(test)
+ elif e.returncode != 0:
+ print("Error: Could not list subtests for " + test)
+ else:
+ raise
- if proc.returncode != 0:
- print("Error: Could not list subtests for " + test)
+ # If we reach here there are no subtests.
return
- subtests = out.split("\n")
-
- for subtest in subtests:
- if subtest == "":
- continue
+ for subtest in (s for s in out.splitlines() if s):
profile.test_list[grouptools.join('igt', test, subtest)] = \
IGTTest(test, ['--run-subtest', subtest])
--
2.2.2
More information about the Piglit
mailing list