Add skip for missing ARM64 tools

This commit is contained in:
Steve Dower
2022-09-28 23:39:46 +01:00
parent 4531370573
commit b8e47894b0
+29
View File
@@ -1,5 +1,7 @@
from __future__ import annotations
import os
import subprocess
import textwrap
import pytest
@@ -9,11 +11,38 @@ from . import test_projects, utils
basic_project = test_projects.new_c_project()
def skip_if_no_msvc(arm64=False):
programfiles = os.getenv("ProgramFiles(x86)") or os.getenv("ProgramFiles")
if not programfiles:
pytest.skip("Requires %ProgramFiles(x86)% variable to be set")
vswhere = os.path.join(programfiles, "Microsoft Visual Studio", "Installer", "vswhere.exe")
if not os.path.isfile(vswhere):
pytest.skip("Requires Visual Studio installation")
require = "Microsoft.VisualStudio.Component.VC.Tools.x86.x64"
if arm64:
require = "Microsoft.VisualStudio.Component.VC.Tools.ARM64"
if not subprocess.check_output(
[
vswhere,
"-latest",
"-prerelease",
"-property", "installationPath",
"-requires", require,
]
):
pytest.skip("Requires ARM64 compiler to be installed")
@pytest.mark.parametrize("use_pyproject_toml", [True, False])
def test_wheel_tag_is_correct_when_using_windows_cross_compile(tmp_path, use_pyproject_toml):
if utils.platform != "windows":
pytest.skip("This test is only relevant to Windows")
skip_if_no_msvc(arm64=True)
if use_pyproject_toml:
basic_project.files["pyproject.toml"] = textwrap.dedent(
"""