[pypy-commit] pypy default: avoid windows-app crashes opening a dialog box for single tests

mattip noreply at buildbot.pypy.org
Fri Aug 29 10:40:17 CEST 2014


Author: mattip <matti.picus at gmail.com>
Branch: 
Changeset: r73161:807c7a1359e4
Date: 2014-08-29 11:40 +0300
http://bitbucket.org/pypy/pypy/changeset/807c7a1359e4/

Log:	avoid windows-app crashes opening a dialog box for single tests

diff --git a/pytest.py b/pytest.py
--- a/pytest.py
+++ b/pytest.py
@@ -8,6 +8,21 @@
 if __name__ == '__main__': # if run as a script or by 'python -m pytest'
     # we trigger the below "else" condition by the following import
     import pytest
+    import sys
+    if sys.platform == 'win32':
+        #Try to avoid opeing a dialog box if one of the tests causes a system error
+        import ctypes
+        winapi = ctypes.windll.kernel32
+        SetErrorMode = winapi.SetErrorMode
+        SetErrorMode.argtypes=[ctypes.c_int]
+
+        SEM_FAILCRITICALERRORS = 1
+        SEM_NOGPFAULTERRORBOX  = 2
+        SEM_NOOPENFILEERRORBOX = 0x8000
+        flags = SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX
+        #Since there is no GetErrorMode, do a double Set
+        old_mode = SetErrorMode(flags)
+        SetErrorMode(old_mode | flags)
     raise SystemExit(pytest.main())
 
 # else we are imported


More information about the pypy-commit mailing list