|
5 | 5 | import importlib.machinery
|
6 | 6 | import os
|
7 | 7 | import pathlib
|
| 8 | +import platform |
8 | 9 | import sys
|
9 | 10 | import sysconfig
|
10 | 11 |
|
@@ -47,13 +48,24 @@ def test_wheel_tag():
|
47 | 48 | def test_macos_platform_tag(monkeypatch):
|
48 | 49 | for minor in range(9, 16):
|
49 | 50 | monkeypatch.setenv('MACOSX_DEPLOYMENT_TARGET', f'10.{minor}')
|
50 |
| - assert next(packaging.tags.mac_platforms((10, minor))) == mesonpy._tags.get_platform_tag() |
| 51 | + version = (10, minor) if platform.mac_ver()[2] != 'arm64' else (11, 0) |
| 52 | + assert next(packaging.tags.mac_platforms(version)) == mesonpy._tags.get_platform_tag() |
51 | 53 | for major in range(11, 20):
|
52 | 54 | for minor in range(3):
|
53 | 55 | monkeypatch.setenv('MACOSX_DEPLOYMENT_TARGET', f'{major}.{minor}')
|
54 | 56 | assert next(packaging.tags.mac_platforms((major, minor))) == mesonpy._tags.get_platform_tag()
|
55 | 57 |
|
56 | 58 |
|
| 59 | +@pytest.mark.skipif(sys.platform != 'darwin', reason='macOS specific test') |
| 60 | +def test_macos_platform_tag_arm64(monkeypatch): |
| 61 | + monkeypatch.setenv('_PYTHON_HOST_PLATFORM', 'macosx-12.0-arm64') |
| 62 | + # Verify that the minimum platform ABI version on arm64 is 11.0. |
| 63 | + monkeypatch.setenv('MACOSX_DEPLOYMENT_TARGET', '10.12') |
| 64 | + assert mesonpy._tags.get_platform_tag() == 'macosx_11_0_arm64' |
| 65 | + monkeypatch.setenv('MACOSX_DEPLOYMENT_TARGET', '12.34') |
| 66 | + assert mesonpy._tags.get_platform_tag() == 'macosx_12_0_arm64' |
| 67 | + |
| 68 | + |
57 | 69 | @pytest.mark.skipif(sys.platform != 'darwin', reason='macOS specific test')
|
58 | 70 | def test_python_host_platform(monkeypatch):
|
59 | 71 | monkeypatch.setenv('_PYTHON_HOST_PLATFORM', 'macosx-12.0-arm64')
|
|
0 commit comments