blob: 143f1821bd0e6ef5cc62201b3cc8fa3f6e41759b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#! /usr/bin/env python
"""
PyPy Test runner interface
--------------------------
Running pytest.py starts py.test, the testing tool
we use in PyPy. It is distributed along with PyPy,
but you may get more information about it at
http://pytest.org/.
Note that it makes no sense to run all tests at once.
You need to pick a particular subdirectory and run
cd pypy/.../test
../../../pytest.py [options]
For more information, use test_all.py -h.
"""
import sys, os
import shutil
if __name__ == '__main__':
if len(sys.argv) == 1 and os.path.dirname(sys.argv[0]) in '.':
print >> sys.stderr, __doc__
sys.exit(2)
toplevel = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
# Add toplevel repository dir to sys.path
sys.path.insert(0, toplevel)
import pytest
if sys.platform == 'win32':
#Try to avoid opening a dialog box if one of the tests causes a system error
# We do this in runner.py, but buildbots run twisted which ruins inheritance
# in windows subprocesses.
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)
sys.exit(pytest.main())
|