mirror of
https://github.com/python/cpython.git
synced 2025-09-02 06:57:58 +00:00
gh-109615: Fix support test_copy_python_src_ignore() (#109958)
Fix the test when run on an installed Python: use "abs_srcdir" of sysconfig, and skip the test if the Python source code cannot be found. * Tools/patchcheck/patchcheck.py, Tools/freeze/test/freeze.py and Lib/test/libregrtest/utils.py now first try to get "abs_srcdir" from sysconfig, before getting "srcdir" from sysconfig. * test.pythoninfo logs sysconfig "abs_srcdir".
This commit is contained in:
parent
91fb8daa24
commit
b89ed9df39
5 changed files with 30 additions and 8 deletions
|
@ -355,11 +355,13 @@ def get_temp_dir(tmp_dir: StrPath | None = None) -> StrPath:
|
|||
if not support.is_wasi:
|
||||
tmp_dir = sysconfig.get_config_var('abs_builddir')
|
||||
if tmp_dir is None:
|
||||
# gh-74470: On Windows, only srcdir is available. Using
|
||||
# abs_builddir mostly matters on UNIX when building Python
|
||||
# out of the source tree, especially when the source tree
|
||||
# is read only.
|
||||
tmp_dir = sysconfig.get_config_var('srcdir')
|
||||
tmp_dir = sysconfig.get_config_var('abs_srcdir')
|
||||
if not tmp_dir:
|
||||
# gh-74470: On Windows, only srcdir is available. Using
|
||||
# abs_builddir mostly matters on UNIX when building
|
||||
# Python out of the source tree, especially when the
|
||||
# source tree is read only.
|
||||
tmp_dir = sysconfig.get_config_var('srcdir')
|
||||
tmp_dir = os.path.join(tmp_dir, 'build')
|
||||
else:
|
||||
# WASI platform
|
||||
|
|
|
@ -520,6 +520,7 @@ def collect_sysconfig(info_add):
|
|||
'SHELL',
|
||||
'SOABI',
|
||||
'abs_builddir',
|
||||
'abs_srcdir',
|
||||
'prefix',
|
||||
'srcdir',
|
||||
):
|
||||
|
|
|
@ -802,8 +802,13 @@ class TestSupport(unittest.TestCase):
|
|||
support.real_max_memuse = old_real_max_memuse
|
||||
|
||||
def test_copy_python_src_ignore(self):
|
||||
src_dir = sysconfig.get_config_var('srcdir')
|
||||
src_dir = sysconfig.get_config_var('abs_srcdir')
|
||||
if not src_dir:
|
||||
src_dir = sysconfig.get_config_var('srcdir')
|
||||
src_dir = os.path.abspath(src_dir)
|
||||
if not os.path.exists(src_dir):
|
||||
self.skipTest(f"cannot access Python source code directory:"
|
||||
f" {src_dir!r}")
|
||||
|
||||
ignored = {'.git', '__pycache__'}
|
||||
|
||||
|
|
|
@ -7,9 +7,16 @@ import sysconfig
|
|||
from test import support
|
||||
|
||||
|
||||
def get_python_source_dir():
|
||||
src_dir = sysconfig.get_config_var('abs_srcdir')
|
||||
if not src_dir:
|
||||
src_dir = sysconfig.get_config_var('srcdir')
|
||||
return os.path.abspath(src_dir)
|
||||
|
||||
|
||||
TESTS_DIR = os.path.dirname(__file__)
|
||||
TOOL_ROOT = os.path.dirname(TESTS_DIR)
|
||||
SRCDIR = os.path.abspath(sysconfig.get_config_var('srcdir'))
|
||||
SRCDIR = get_python_source_dir()
|
||||
|
||||
MAKE = shutil.which('make')
|
||||
FREEZE = os.path.join(TOOL_ROOT, 'freeze.py')
|
||||
|
|
|
@ -11,6 +11,13 @@ import reindent
|
|||
import untabify
|
||||
|
||||
|
||||
def get_python_source_dir():
|
||||
src_dir = sysconfig.get_config_var('abs_srcdir')
|
||||
if not src_dir:
|
||||
src_dir = sysconfig.get_config_var('srcdir')
|
||||
return os.path.abspath(src_dir)
|
||||
|
||||
|
||||
# Excluded directories which are copies of external libraries:
|
||||
# don't check their coding style
|
||||
EXCLUDE_DIRS = [
|
||||
|
@ -18,7 +25,7 @@ EXCLUDE_DIRS = [
|
|||
os.path.join('Modules', 'expat'),
|
||||
os.path.join('Modules', 'zlib'),
|
||||
]
|
||||
SRCDIR = sysconfig.get_config_var('srcdir')
|
||||
SRCDIR = get_python_source_dir()
|
||||
|
||||
|
||||
def n_files_str(count):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue