Mercurial > cpython-lru_cache-weakref
annotate Tools/scripts/run_tests.py @ 83447:678564fc0962 3.3
#17789: test_random now works with unittest test discovery. Patch by Zachary Ware.
| author | Ezio Melotti <ezio.melotti@gmail.com> |
|---|---|
| date | Fri, 19 Apr 2013 05:45:27 +0300 |
| parents | 2034b3de1144 |
| children |
| rev | line source |
|---|---|
|
71682
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
1 """Run Python's test suite in a fast, rigorous way. |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
2 |
|
71687
0b52b6f1bfab
Clean up description of Tools/scripts/run_tests.py.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
71682
diff
changeset
|
3 The defaults are meant to be reasonably thorough, while skipping certain |
|
0b52b6f1bfab
Clean up description of Tools/scripts/run_tests.py.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
71682
diff
changeset
|
4 tests that can be time-consuming or resource-intensive (e.g. largefile), |
|
0b52b6f1bfab
Clean up description of Tools/scripts/run_tests.py.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
71682
diff
changeset
|
5 or distracting (e.g. audio and gui). These defaults can be overridden by |
|
0b52b6f1bfab
Clean up description of Tools/scripts/run_tests.py.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
71682
diff
changeset
|
6 simply passing a -u option to this script. |
|
71682
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
7 |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
8 """ |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
9 |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
10 import os |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
11 import sys |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
12 import test.support |
|
77036
2034b3de1144
Move private function _args_from_interpreter_flags() to subprocess.py, so
Antoine Pitrou <solipsis@pitrou.net>
parents:
75152
diff
changeset
|
13 try: |
|
2034b3de1144
Move private function _args_from_interpreter_flags() to subprocess.py, so
Antoine Pitrou <solipsis@pitrou.net>
parents:
75152
diff
changeset
|
14 import threading |
|
2034b3de1144
Move private function _args_from_interpreter_flags() to subprocess.py, so
Antoine Pitrou <solipsis@pitrou.net>
parents:
75152
diff
changeset
|
15 except ImportError: |
|
2034b3de1144
Move private function _args_from_interpreter_flags() to subprocess.py, so
Antoine Pitrou <solipsis@pitrou.net>
parents:
75152
diff
changeset
|
16 threading = None |
|
71682
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
17 |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
18 |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
19 def is_multiprocess_flag(arg): |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
20 return arg.startswith('-j') or arg.startswith('--multiprocess') |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
21 |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
22 |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
23 def is_resource_use_flag(arg): |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
24 return arg.startswith('-u') or arg.startswith('--use') |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
25 |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
26 |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
27 def main(regrtest_args): |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
28 args = [sys.executable, |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
29 '-W', 'default', # Warnings set to 'default' |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
30 '-bb', # Warnings about bytes/bytearray |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
31 '-E', # Ignore environment variables |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
32 ] |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
33 # Allow user-specified interpreter options to override our defaults. |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
34 args.extend(test.support.args_from_interpreter_flags()) |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
35 args.extend(['-m', 'test', # Run the test suite |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
36 '-r', # Randomize test order |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
37 '-w', # Re-run failed tests in verbose mode |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
38 ]) |
|
71881
03d439f4ec5c
Use -n for tests under Windows
Antoine Pitrou <solipsis@pitrou.net>
parents:
71687
diff
changeset
|
39 if sys.platform == 'win32': |
|
03d439f4ec5c
Use -n for tests under Windows
Antoine Pitrou <solipsis@pitrou.net>
parents:
71687
diff
changeset
|
40 args.append('-n') # Silence alerts under Windows |
|
77036
2034b3de1144
Move private function _args_from_interpreter_flags() to subprocess.py, so
Antoine Pitrou <solipsis@pitrou.net>
parents:
75152
diff
changeset
|
41 if threading and not any(is_multiprocess_flag(arg) for arg in regrtest_args): |
|
71682
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
42 args.extend(['-j', '0']) # Use all CPU cores |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
43 if not any(is_resource_use_flag(arg) for arg in regrtest_args): |
|
72564
7fabd75a6ae4
Backout of changeset 228fd2bd83a5 by Nadeem Vawda in branch 'default':
Antoine Pitrou <solipsis@pitrou.net>
parents:
72018
diff
changeset
|
44 args.extend(['-u', 'all,-largefile,-audio,-gui']) |
|
71682
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
45 args.extend(regrtest_args) |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
46 print(' '.join(args)) |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
47 os.execv(sys.executable, args) |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
48 |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
49 |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
50 if __name__ == '__main__': |
|
c68a80779434
Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff
changeset
|
51 main(sys.argv[1:]) |
