Cleanup regrtest "main()" function
* Rename libregrtest.main_in_temp_cwd() to libregrtest.main() * Add regrtest.main_in_temp_cwd() alias to libregrtest.main() * Move old main_in_temp_cwd() code into libregrtest.Regrtest.main() * Update multiple scripts to call libregrtest.main()
This commit is contained in:
parent
8c08e0db8f
commit
3aac0adfe0
|
@ -1,3 +1,2 @@
|
||||||
from test import regrtest
|
from test.libregrtest import main
|
||||||
|
main()
|
||||||
regrtest.main_in_temp_cwd()
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# This should be equivalent to running regrtest.py from the cmdline.
|
# This should be equivalent to running regrtest.py from the cmdline.
|
||||||
# It can be especially handy if you're in an interactive shell, e.g.,
|
# It can be especially handy if you're in an interactive shell, e.g.,
|
||||||
# from test import autotest.
|
# from test import autotest.
|
||||||
|
from test.libregrtest import main
|
||||||
from test import regrtest
|
main()
|
||||||
regrtest.main()
|
|
||||||
|
|
|
@ -1,2 +1,5 @@
|
||||||
|
# We import importlib *ASAP* in order to test #15386
|
||||||
|
import importlib
|
||||||
|
|
||||||
from test.libregrtest.cmdline import _parse_args, RESOURCE_NAMES
|
from test.libregrtest.cmdline import _parse_args, RESOURCE_NAMES
|
||||||
from test.libregrtest.main import main, main_in_temp_cwd
|
from test.libregrtest.main import main
|
||||||
|
|
|
@ -415,6 +415,28 @@ class Regrtest:
|
||||||
os.system("leaks %d" % os.getpid())
|
os.system("leaks %d" % os.getpid())
|
||||||
|
|
||||||
def main(self, tests=None, **kwargs):
|
def main(self, tests=None, **kwargs):
|
||||||
|
global TEMPDIR
|
||||||
|
|
||||||
|
if sysconfig.is_python_build():
|
||||||
|
try:
|
||||||
|
os.mkdir(TEMPDIR)
|
||||||
|
except FileExistsError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Define a writable temp dir that will be used as cwd while running
|
||||||
|
# the tests. The name of the dir includes the pid to allow parallel
|
||||||
|
# testing (see the -j option).
|
||||||
|
test_cwd = 'test_python_{}'.format(os.getpid())
|
||||||
|
test_cwd = os.path.join(TEMPDIR, test_cwd)
|
||||||
|
|
||||||
|
# Run the tests in a context manager that temporarily changes the CWD to a
|
||||||
|
# temporary and writable directory. If it's not possible to create or
|
||||||
|
# change the CWD, the original CWD will be used. The original CWD is
|
||||||
|
# available from support.SAVEDCWD.
|
||||||
|
with support.temp_cwd(test_cwd, quiet=True):
|
||||||
|
self._main(tests, kwargs)
|
||||||
|
|
||||||
|
def _main(self, tests, kwargs):
|
||||||
self.ns = self.parse_args(kwargs)
|
self.ns = self.parse_args(kwargs)
|
||||||
|
|
||||||
if self.ns.slaveargs is not None:
|
if self.ns.slaveargs is not None:
|
||||||
|
@ -473,26 +495,5 @@ def printlist(x, width=70, indent=4):
|
||||||
|
|
||||||
|
|
||||||
def main(tests=None, **kwargs):
|
def main(tests=None, **kwargs):
|
||||||
|
"""Run the Python suite."""
|
||||||
Regrtest().main(tests=tests, **kwargs)
|
Regrtest().main(tests=tests, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
def main_in_temp_cwd():
|
|
||||||
"""Run main() in a temporary working directory."""
|
|
||||||
if sysconfig.is_python_build():
|
|
||||||
try:
|
|
||||||
os.mkdir(TEMPDIR)
|
|
||||||
except FileExistsError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# Define a writable temp dir that will be used as cwd while running
|
|
||||||
# the tests. The name of the dir includes the pid to allow parallel
|
|
||||||
# testing (see the -j option).
|
|
||||||
test_cwd = 'test_python_{}'.format(os.getpid())
|
|
||||||
test_cwd = os.path.join(TEMPDIR, test_cwd)
|
|
||||||
|
|
||||||
# Run the tests in a context manager that temporarily changes the CWD to a
|
|
||||||
# temporary and writable directory. If it's not possible to create or
|
|
||||||
# change the CWD, the original CWD will be used. The original CWD is
|
|
||||||
# available from support.SAVEDCWD.
|
|
||||||
with support.temp_cwd(test_cwd, quiet=True):
|
|
||||||
main()
|
|
||||||
|
|
|
@ -11,11 +11,11 @@ import importlib
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from test.libregrtest import main_in_temp_cwd
|
from test.libregrtest import main
|
||||||
|
|
||||||
|
|
||||||
# alias needed by other scripts
|
# Alias for backward compatibility (just in case)
|
||||||
main = main_in_temp_cwd
|
main_in_temp_cwd = main
|
||||||
|
|
||||||
|
|
||||||
def _main():
|
def _main():
|
||||||
|
|
|
@ -8,10 +8,10 @@ this script.
|
||||||
"""
|
"""
|
||||||
import importlib
|
import importlib
|
||||||
import sys
|
import sys
|
||||||
from test import regrtest
|
from test import libregrtest
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
__builtins__.__import__ = importlib.__import__
|
__builtins__.__import__ = importlib.__import__
|
||||||
sys.path_importer_cache.clear()
|
sys.path_importer_cache.clear()
|
||||||
|
|
||||||
regrtest.main(quiet=True, verbose2=True)
|
libregrtest.main(quiet=True, verbose2=True)
|
||||||
|
|
|
@ -26,5 +26,5 @@ for dir in sys.path:
|
||||||
# Add the "test" directory to PYTHONPATH.
|
# Add the "test" directory to PYTHONPATH.
|
||||||
sys.path = sys.path + [test]
|
sys.path = sys.path + [test]
|
||||||
|
|
||||||
import regrtest # Standard Python tester.
|
import libregrtest # Standard Python tester.
|
||||||
regrtest.main()
|
libregrtest.main()
|
||||||
|
|
Loading…
Reference in New Issue