Signed-off-by: Jordan Justen <[email protected]>
---
 framework/exectest.py |   49 ++++++++++++++++++++++++++-----------------------
 1 file changed, 26 insertions(+), 23 deletions(-)

diff --git a/framework/exectest.py b/framework/exectest.py
index 86bc416..68333d4 100644
--- a/framework/exectest.py
+++ b/framework/exectest.py
@@ -51,35 +51,13 @@ class ExecTest(Test):
 
                if self.command is not None:
                        command = self.command
-                       returncode = None
 
                        if valgrind:
                                command[:0] = ['valgrind', '--quiet', 
'--error-exitcode=1', '--tool=memcheck']
 
                        i = 0
                        while True:
-                               try:
-                                       proc = subprocess.Popen(
-                                               command,
-                                               stdout=subprocess.PIPE,
-                                               stderr=subprocess.PIPE,
-                                               env=fullenv,
-                                               universal_newlines=True
-                                               )
-                                       out, err = proc.communicate()
-                                       returncode = proc.returncode
-                               except OSError as e:
-                                       # Different sets of tests get built 
under
-                                       # different build configurations.  If
-                                       # a developer chooses to not build a 
test,
-                                       # Piglit should not report that test as 
having
-                                       # failed.
-                                       if e.strerror == "No such file or 
directory":
-                                               out = "PIGLIT: {'result': 
'skip'}\n" \
-                                                   + "Test executable not 
found.\n"
-                                               err = ""
-                                        else:
-                                            raise e
+                               (out, err, returncode) = 
self.get_command_result(command, fullenv)
 
                                # 
https://bugzilla.gnome.org/show_bug.cgi?id=680214 is
                                # affecting many developers.  If we catch it
@@ -164,6 +142,31 @@ class ExecTest(Test):
                return results
 
 
+       def get_command_result(self, command, fullenv):
+               try:
+                       proc = subprocess.Popen(
+                               command,
+                               stdout=subprocess.PIPE,
+                               stderr=subprocess.PIPE,
+                               env=fullenv,
+                               universal_newlines=True
+                               )
+                       out, err = proc.communicate()
+                       returncode = proc.returncode
+               except OSError as e:
+                       # Different sets of tests get built under
+                       # different build configurations.  If
+                       # a developer chooses to not build a test,
+                       # Piglit should not report that test as having
+                       # failed.
+                       if e.strerror == "No such file or directory":
+                               out = "PIGLIT: {'result': 'skip'}\n" \
+                                   + "Test executable not found.\n"
+                               err = ""
+                               returncode = None
+                       else:
+                               raise e
+               return out, err, returncode
 
 #############################################################################
 ##### PlainExecTest: Run a "native" piglit test executable
-- 
1.7.9.5

_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to