aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormattip <matti.picus@gmail.com>2014-08-29 11:40:01 +0300
committermattip <matti.picus@gmail.com>2014-08-29 11:40:01 +0300
commit46da6095fe8400d8a9c65ea4509d30a2ec270aeb (patch)
tree8a1e4bb755d52e7c899b2c549f329df52ee6ab91 /pytest.py
parentmerge heads (diff)
downloadpypy-46da6095fe8400d8a9c65ea4509d30a2ec270aeb.tar.gz
pypy-46da6095fe8400d8a9c65ea4509d30a2ec270aeb.tar.bz2
pypy-46da6095fe8400d8a9c65ea4509d30a2ec270aeb.zip
avoid windows-app crashes opening a dialog box for single tests
Diffstat (limited to 'pytest.py')
-rwxr-xr-xpytest.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/pytest.py b/pytest.py
index 487ee48f5a..a836a3428f 100755
--- a/pytest.py
+++ b/pytest.py
@@ -8,6 +8,21 @@ __all__ = ['main']
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