[Piglit] [PATCH] run.py: Split windows exception handling into helper

Dylan Baker baker.dylan.c at gmail.com
Thu Oct 23 01:09:40 PDT 2014


This allows the function to be shared by run and resume. It was not
present in resume before, thus windows exceptions would still raise an
exception and open a popup window.

Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
---
 framework/programs/run.py | 26 +++++++++++++++-----------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/framework/programs/run.py b/framework/programs/run.py
index 15f6ec6..b2fe097 100644
--- a/framework/programs/run.py
+++ b/framework/programs/run.py
@@ -27,6 +27,7 @@ import os
 import os.path as path
 import time
 import ConfigParser
+import ctypes
 
 import framework.core as core
 import framework.results
@@ -190,22 +191,13 @@ def _run_parser(input_):
     return parser.parse_args(unparsed)
 
 
-def run(input_):
-    """ Function for piglit run command
-
-    This is a function because it allows it to be shared between piglit-run.py
-    and piglit run
-
-    """
-    args = _run_parser(input_)
-
-    # Disable Windows error message boxes for this and all child processes.
+def _handle_windows_exceptions():
+    """Disable Windows error message boxes for this and all child processes."""
     if sys.platform == 'win32':
         # This disables messages boxes for uncaught exceptions, but it will not
         # disable the message boxes for assertion failures or abort().  Those
         # are created not by the system but by the CRT itself, and must be
         # disabled by the child processes themselves.
-        import ctypes
         SEM_FAILCRITICALERRORS     = 0x0001
         SEM_NOALIGNMENTFAULTEXCEPT = 0x0004
         SEM_NOGPFAULTERRORBOX      = 0x0002
@@ -217,6 +209,17 @@ def run(input_):
               |  SEM_NOOPENFILEERRORBOX
         ctypes.windll.kernel32.SetErrorMode(uMode)
 
+
+def run(input_):
+    """ Function for piglit run command
+
+    This is a function because it allows it to be shared between piglit-run.py
+    and piglit run
+
+    """
+    args = _run_parser(input_)
+    _handle_windows_exceptions()
+
     # If dmesg is requested we must have serial run, this is becasue dmesg
     # isn't reliable with threaded run
     if args.dmesg:
@@ -292,6 +295,7 @@ def resume(input_):
                         help="Optionally specify a piglit config file to use. "
                              "Default is piglit.conf")
     args = parser.parse_args(input_)
+    _handle_windows_exceptions()
 
     results = framework.results.TestrunResult.resume(args.results_path)
     opts = core.Options(concurrent=results.options['concurrent'],
-- 
2.1.2



More information about the Piglit mailing list