mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
Issue #11651: Move options for running tests into a Python script.
This will be particularly useful to Windows users. run_tests.py originally written by Brett Cannon.
This commit is contained in:
parent
b0fa4b8433
commit
3c01d16ed9
4 changed files with 75 additions and 16 deletions
45
Tools/scripts/run_tests.py
Executable file
45
Tools/scripts/run_tests.py
Executable file
|
@ -0,0 +1,45 @@
|
|||
"""Run Python's test suite in a fast, rigorous way.
|
||||
|
||||
The defaults are meant to be thorough but to skip certain resources are not
|
||||
used (by default) which can consume a lot of time and resources (e.g.,
|
||||
largefile) or can be distracting (e.g., audio and gui). These defaults
|
||||
can be overridden by simply passing a -u option to this script.
|
||||
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import test.support
|
||||
|
||||
|
||||
def is_multiprocess_flag(arg):
|
||||
return arg.startswith('-j') or arg.startswith('--multiprocess')
|
||||
|
||||
|
||||
def is_resource_use_flag(arg):
|
||||
return arg.startswith('-u') or arg.startswith('--use')
|
||||
|
||||
|
||||
def main(regrtest_args):
|
||||
args = [sys.executable,
|
||||
'-W', 'default', # Warnings set to 'default'
|
||||
'-bb', # Warnings about bytes/bytearray
|
||||
'-E', # Ignore environment variables
|
||||
]
|
||||
# Allow user-specified interpreter options to override our defaults.
|
||||
args.extend(test.support.args_from_interpreter_flags())
|
||||
args.extend(['-m', 'test', # Run the test suite
|
||||
'-r', # Randomize test order
|
||||
'-w', # Re-run failed tests in verbose mode
|
||||
])
|
||||
if not any(is_multiprocess_flag(arg) for arg in regrtest_args):
|
||||
args.extend(['-j', '0']) # Use all CPU cores
|
||||
if not any(is_resource_use_flag(arg) for arg in regrtest_args):
|
||||
args.extend(['-u', 'all,-largefile,-audio,-gui'])
|
||||
args.extend(regrtest_args)
|
||||
print(' '.join(args))
|
||||
os.execv(sys.executable, args)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main(sys.argv[1:])
|
Loading…
Add table
Add a link
Reference in a new issue