mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +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 @@ def test_set_memlimit(self): | |||
|             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 @@ | |||
| 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 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 @@ | |||
|     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
	
	 Victor Stinner
						Victor Stinner