mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	gh-114099: Add test exclusions to support running the test suite on iOS (#114889)
Add test annotations required to run the test suite on iOS (PEP 730). The majority of the change involve annotating tests that use subprocess, but are skipped on Emscripten/WASI for other reasons, and including iOS/tvOS/watchOS under the same umbrella as macOS/darwin checks. `is_apple` and `is_apple_mobile` test helpers have been added to identify *any* Apple platform, and "any Apple platform except macOS", respectively.
This commit is contained in:
		
							parent
							
								
									15f6f048a6
								
							
						
					
					
						commit
						391659b3da
					
				
					 31 changed files with 224 additions and 150 deletions
				
			
		|  | @ -5,7 +5,7 @@ | |||
| import unittest | ||||
| import warnings | ||||
| from unicodedata import normalize | ||||
| from test.support import os_helper | ||||
| from test.support import is_apple, os_helper | ||||
| from test import support | ||||
| 
 | ||||
| 
 | ||||
|  | @ -23,13 +23,13 @@ | |||
|     '10_\u1fee\u1ffd', | ||||
|     ] | ||||
| 
 | ||||
| # Mac OS X decomposes Unicode names, using Normal Form D. | ||||
| # Apple platforms decompose Unicode names, using Normal Form D. | ||||
| # http://developer.apple.com/mac/library/qa/qa2001/qa1173.html | ||||
| # "However, most volume formats do not follow the exact specification for | ||||
| # these normal forms.  For example, HFS Plus uses a variant of Normal Form D | ||||
| # in which U+2000 through U+2FFF, U+F900 through U+FAFF, and U+2F800 through | ||||
| # U+2FAFF are not decomposed." | ||||
| if sys.platform != 'darwin': | ||||
| if not is_apple: | ||||
|     filenames.extend([ | ||||
|         # Specific code points: NFC(fn), NFD(fn), NFKC(fn) and NFKD(fn) all different | ||||
|         '11_\u0385\u03d3\u03d4', | ||||
|  | @ -119,11 +119,11 @@ def test_open(self): | |||
|             os.stat(name) | ||||
|             self._apply_failure(os.listdir, name, self._listdir_failure) | ||||
| 
 | ||||
|     # Skip the test on darwin, because darwin does normalize the filename to | ||||
|     # Skip the test on Apple platforms, because they don't normalize the filename to | ||||
|     # NFD (a variant of Unicode NFD form). Normalize the filename to NFC, NFKC, | ||||
|     # NFKD in Python is useless, because darwin will normalize it later and so | ||||
|     # open(), os.stat(), etc. don't raise any exception. | ||||
|     @unittest.skipIf(sys.platform == 'darwin', 'irrelevant test on Mac OS X') | ||||
|     @unittest.skipIf(is_apple, 'irrelevant test on Apple platforms') | ||||
|     @unittest.skipIf( | ||||
|         support.is_emscripten or support.is_wasi, | ||||
|         "test fails on Emscripten/WASI when host platform is macOS." | ||||
|  | @ -142,10 +142,10 @@ def test_normalize(self): | |||
|             self._apply_failure(os.remove, name) | ||||
|             self._apply_failure(os.listdir, name) | ||||
| 
 | ||||
|     # Skip the test on darwin, because darwin uses a normalization different | ||||
|     # Skip the test on Apple platforms, because they use a normalization different | ||||
|     # than Python NFD normalization: filenames are different even if we use | ||||
|     # Python NFD normalization. | ||||
|     @unittest.skipIf(sys.platform == 'darwin', 'irrelevant test on Mac OS X') | ||||
|     @unittest.skipIf(is_apple, 'irrelevant test on Apple platforms') | ||||
|     def test_listdir(self): | ||||
|         sf0 = set(self.files) | ||||
|         with warnings.catch_warnings(): | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Russell Keith-Magee
						Russell Keith-Magee