annotate Tools/scripts/run_tests.py @ 72181:c1949bde461e

Minor improvement to extensions in setup.cfg: check parent package
author Éric Araujo <merwok@netwok.org>
date Thu, 01 Sep 2011 07:01:13 +0200
parents 228fd2bd83a5
children 7fabd75a6ae4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
c68a80779434 Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff changeset
13
c68a80779434 Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff changeset
14
c68a80779434 Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff changeset
15 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
16 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
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_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
20 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
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 main(regrtest_args):
c68a80779434 Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff changeset
24 args = [sys.executable,
c68a80779434 Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff changeset
25 '-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
26 '-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
27 '-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
28 ]
c68a80779434 Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff changeset
29 # 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
30 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
31 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
32 '-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
33 '-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
34 ])
71881
03d439f4ec5c Use -n for tests under Windows
Antoine Pitrou <solipsis@pitrou.net>
parents: 71687
diff changeset
35 if sys.platform == 'win32':
03d439f4ec5c Use -n for tests under Windows
Antoine Pitrou <solipsis@pitrou.net>
parents: 71687
diff changeset
36 args.append('-n') # Silence alerts under Windows
71682
c68a80779434 Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff changeset
37 if not any(is_multiprocess_flag(arg) for arg in regrtest_args):
c68a80779434 Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff changeset
38 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
39 if not any(is_resource_use_flag(arg) for arg in regrtest_args):
72018
228fd2bd83a5 Issue #12804: Prevent "make test" from using network resources.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents: 71881
diff changeset
40 args.extend(['-u', 'all,-largefile,-network,-urlfetch,-audio,-gui'])
71682
c68a80779434 Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff changeset
41 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
42 print(' '.join(args))
c68a80779434 Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff changeset
43 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
44
c68a80779434 Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff changeset
45
c68a80779434 Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff changeset
46 if __name__ == '__main__':
c68a80779434 Issue #11651: Move options for running tests into a Python script.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
diff changeset
47 main(sys.argv[1:])