Files
cibuildwheel/test/test_musllinux_X_Y_only.py
T
Matthieu Darbois 97da90432e chore: rework single python tests (#1835)
* chore: rework single python tests

* chore(tests): limit number of builds in test_abi3

* chore(tests): limit number of builds in test_before_all

* apply review suggestion

use `os.path.samefile` rather than comparing `os.stat` directly.
2024-05-26 12:41:20 +02:00

58 lines
1.5 KiB
Python

from __future__ import annotations
import textwrap
import pytest
from . import test_projects, utils
project_with_manylinux_symbols = test_projects.new_c_project(
spam_c_top_level_add=textwrap.dedent(
r"""
#include <stdlib.h>
#if defined(__GLIBC_PREREQ)
#error "Must not run on a glibc linux environment"
#endif
"""
),
spam_c_function_add=textwrap.dedent(
r"""
sts = 0;
"""
),
)
@pytest.mark.parametrize(
"musllinux_image",
["musllinux_1_1", "musllinux_1_2"],
)
@pytest.mark.usefixtures("docker_cleanup")
def test(musllinux_image, tmp_path):
if utils.platform != "linux":
pytest.skip("the container image test is only relevant to the linux build")
project_dir = tmp_path / "project"
project_with_manylinux_symbols.generate(project_dir)
# build the wheels
add_env = {
"CIBW_SKIP": "*-manylinux*",
"CIBW_MUSLLINUX_X86_64_IMAGE": musllinux_image,
"CIBW_MUSLLINUX_I686_IMAGE": musllinux_image,
"CIBW_MUSLLINUX_AARCH64_IMAGE": musllinux_image,
"CIBW_MUSLLINUX_PPC64LE_IMAGE": musllinux_image,
"CIBW_MUSLLINUX_S390X_IMAGE": musllinux_image,
}
actual_wheels = utils.cibuildwheel_run(project_dir, add_env=add_env, single_python=True)
expected_wheels = utils.expected_wheels(
"spam",
"0.1.0",
manylinux_versions=[],
musllinux_versions=[musllinux_image],
single_python=True,
)
assert set(actual_wheels) == set(expected_wheels)