============================= test session starts ============================== platform sunos5 -- Python $(PYTHON_VERSION).X -- $(PYTHON) cachedir: .pytest_cache installed packages of interest: exceptiongroup==1.3.1 hatch-fancy-pypi-readme==25.1.0 hatchling==1.27.0 importlib-resources==6.5.2 packaging==26.2 pathspec==1.1.1 pip==25.2 scikit_build_core==1.0.3 setuptools==80.10.2 setuptools-scm==9.2.2 tomli==2.4.0 typing-extensions==4.16.0 sysconfig platform: solaris-2.11-i86pc.64bit rootdir: $(@D) configfile: pyproject.toml testpaths: tests collecting ... collected 1035 items / 1 skipped tests/test_auto.py::test_auto_cmake_version[3.15-3.15] PASSED tests/test_auto.py::test_auto_cmake_version[3.16-3.16] PASSED tests/test_auto.py::test_auto_cmake_version[3.17.2-3.17.2] PASSED tests/test_auto.py::test_auto_cmake_version[3.18...3.29-3.18] PASSED tests/test_auto.py::test_auto_cmake_version[3.19.2...3.29-3.19.2] PASSED tests/test_auto.py::test_auto_cmake_version_block[block] PASSED tests/test_auto.py::test_auto_cmake_version_block[foreach] PASSED tests/test_auto.py::test_auto_cmake_version_block[function] PASSED tests/test_auto.py::test_auto_cmake_version_block[if] PASSED tests/test_auto.py::test_auto_cmake_version_block[macro] PASSED tests/test_auto.py::test_auto_cmake_version_block[while] PASSED tests/test_auto.py::test_auto_requires_pkg_no_spec PASSED tests/test_auto.py::test_auto_requires_pkg_version[-None] PASSED tests/test_auto.py::test_auto_requires_pkg_version[==1.0-version0] PASSED tests/test_auto.py::test_auto_requires_pkg_version[>1.0-version2] PASSED tests/test_auto.py::test_auto_requires_pkg_version[>=0.3,<0.4-version4] PASSED tests/test_auto.py::test_auto_requires_pkg_version[>=1.0-version1] PASSED tests/test_auto.py::test_auto_requires_pkg_version[~=1.0-version3] PASSED tests/test_auto.py::test_auto_requires_with_marker PASSED tests/test_broken_fallback.py::test_broken_code[BROKEN_CMAKE-broken_fallback] PASSED tests/test_broken_fallback.py::test_broken_code[BROKEN_CODE-broken_fallback] PASSED tests/test_broken_fallback.py::test_fail_setting[broken_fallback] PASSED tests/test_broken_fallback.py::test_fail_setting_msg[broken_fallback] PASSED tests/test_build_cli.py::test_metadata_command PASSED tests/test_build_cli.py::test_metadata_command_state[args0-metadata_wheel] PASSED tests/test_build_cli.py::test_metadata_command_state[args1-sdist] PASSED tests/test_build_cli.py::test_metadata_command_state[args2-editable] PASSED tests/test_build_cli.py::test_missing_pyproject_gives_clear_error[project-table] PASSED tests/test_build_cli.py::test_missing_pyproject_gives_clear_error[requires] PASSED tests/test_build_cli.py::test_requires_command[False-editable] PASSED tests/test_build_cli.py::test_requires_command[False-sdist] PASSED tests/test_build_cli.py::test_requires_command[False-wheel] PASSED tests/test_build_cli.py::test_requires_command[True-editable] PASSED tests/test_build_cli.py::test_requires_command[True-sdist] PASSED tests/test_build_cli.py::test_requires_command[True-wheel] PASSED tests/test_builder.py::test_build_tool_args PASSED tests/test_builder.py::test_builder_applies_env_table PASSED tests/test_builder.py::test_builder_combined_abi3_abi3t[free_threaded] PASSED tests/test_builder.py::test_builder_combined_abi3_abi3t[gil] PASSED tests/test_builder.py::test_builder_env_table_wins_over_source_date_epoch PASSED tests/test_builder.py::test_builder_exports_source_date_epoch PASSED tests/test_builder.py::test_builder_get_cmake_args["-DA=1 1" -DB=2-answer3] PASSED tests/test_builder.py::test_builder_get_cmake_args[-DA="1 1" -DB=\\"2\\"-answer2] PASSED tests/test_builder.py::test_builder_get_cmake_args[-DA='1 1' -DB=\\'2\\'-answer1] PASSED tests/test_builder.py::test_builder_get_cmake_args[-DA=1 -DB=2-answer0] PASSED tests/test_builder.py::test_builder_keeps_existing_source_date_epoch PASSED tests/test_builder.py::test_builder_limited_api_auto_free_threaded PASSED tests/test_builder.py::test_builder_limited_api_override_classic PASSED tests/test_builder.py::test_builder_limited_api_override_free_threaded PASSED tests/test_builder.py::test_builder_limited_api_override_free_threaded_no_abi3t PASSED tests/test_builder.py::test_builder_macos_arch[archs0] PASSED tests/test_builder.py::test_builder_macos_arch[archs1] PASSED tests/test_builder.py::test_builder_macos_arch_cmake_system_processor PASSED tests/test_builder.py::test_builder_macos_arch_cmake_system_processor_false_positive PASSED tests/test_builder.py::test_builder_macos_arch_cmake_system_processor_two_token PASSED tests/test_builder.py::test_builder_macos_arch_extra PASSED tests/test_builder.py::test_builder_no_source_date_epoch_when_not_reproducible PASSED tests/test_builder.py::test_builder_project_version_cmake[1!2.3.4-1!2.3.4-2.3.4] PASSED tests/test_builder.py::test_builder_project_version_cmake[1.0.0a1-1.0.0a1-1.0.0] PASSED tests/test_builder.py::test_builder_project_version_cmake[1.2-1.2-1.2] PASSED tests/test_builder.py::test_builder_project_version_cmake[1.2.3-1.2.3-1.2.3] PASSED tests/test_builder.py::test_builder_project_version_cmake[1.2.3.4-1.2.3.4-1.2.3.4] PASSED tests/test_builder.py::test_builder_project_version_cmake[1.2.3.4.5-1.2.3.4.5-1.2.3.4] PASSED tests/test_builder.py::test_builder_project_version_cmake[1.2.3.dev4+local-1.2.3.dev4+local-1.2.3] PASSED tests/test_builder.py::test_builder_project_version_cmake[2-2-2] PASSED tests/test_builder.py::test_generator_args[joined] PASSED tests/test_builder.py::test_generator_args[two-token] PASSED tests/test_builder.py::test_generator_define PASSED tests/test_builder.py::test_generator_env PASSED tests/test_builder.py::test_get_python_include_dir PASSED tests/test_builder.py::test_get_python_library PASSED tests/test_builder.py::test_get_python_library_xcompile SKIPPED (MSV...) tests/test_builder.py::test_get_python_library_xcompile_free_threaded PASSED tests/test_builder.py::test_get_soabi_abi3t PASSED tests/test_builder.py::test_macos_version[env_var_higher] PASSED tests/test_builder.py::test_macos_version[env_var_lower] PASSED tests/test_builder.py::test_macos_version[env_var_no_dot] PASSED tests/test_builder.py::test_macos_version[invalid_env_var] PASSED tests/test_builder.py::test_macos_version[invalid_env_var_with_dot] PASSED tests/test_builder.py::test_macos_version[only_plat_classic] PASSED tests/test_builder.py::test_macos_version[only_plat_round] PASSED tests/test_builder.py::test_macos_version[same_vars_round] PASSED tests/test_builder.py::test_macos_version_cmake_osx_deployment_target[arg_beats_define] PASSED tests/test_builder.py::test_macos_version_cmake_osx_deployment_target[arg_only] PASSED tests/test_builder.py::test_macos_version_cmake_osx_deployment_target[arg_only_two_token] PASSED tests/test_builder.py::test_macos_version_cmake_osx_deployment_target[arg_typed] PASSED tests/test_builder.py::test_macos_version_cmake_osx_deployment_target[arg_typed_two_token] PASSED tests/test_builder.py::test_macos_version_cmake_osx_deployment_target[define_beats_envvar] PASSED tests/test_builder.py::test_macos_version_cmake_osx_deployment_target[define_only] PASSED tests/test_builder.py::test_macos_version_cmake_osx_deployment_target[invalid_define_falls_back_to_envvar] PASSED tests/test_builder.py::test_sanitize_path_multiplexed PASSED tests/test_builder.py::test_sanitize_path_plain PASSED tests/test_builder.py::test_set_environment_for_gen_keeps_compiler_wrappers[c++ -pthread-c++] PASSED tests/test_builder.py::test_set_environment_for_gen_keeps_compiler_wrappers[ccache gcc-ccache gcc] PASSED tests/test_builder.py::test_set_environment_for_gen_keeps_compiler_wrappers[gcc -pthread -arch arm64-gcc] PASSED tests/test_builder.py::test_set_environment_for_gen_keeps_compiler_wrappers[gcc-gcc] PASSED tests/test_builder.py::test_set_environment_for_gen_keeps_compiler_wrappers[sccache cc -O2-sccache cc] PASSED tests/test_builder.py::test_set_environment_for_gen_ninja_multi_config_missing PASSED tests/test_builder.py::test_set_environment_for_gen_ninja_variants[Ninja Multi-Config] PASSED tests/test_builder.py::test_set_environment_for_gen_ninja_variants[Ninja] PASSED tests/test_builder.py::test_set_environment_for_gen_strips_cc_cxx_flags PASSED tests/test_builder.py::test_set_environment_for_gen_sysconfig_compiler PASSED tests/test_builder.py::test_set_environment_from_settings_force PASSED tests/test_builder.py::test_set_environment_from_settings_max_jobs_alias PASSED tests/test_builder.py::test_set_environment_from_settings_setdefault PASSED tests/test_builder.py::test_warn_macos_arch_mismatch[arm64-False-False-False] PASSED tests/test_builder.py::test_warn_macos_arch_mismatch[arm64-True-False-True] PASSED tests/test_builder.py::test_warn_macos_arch_mismatch[arm64-True-True-False] PASSED tests/test_builder.py::test_warn_macos_arch_mismatch[x86_64-True-False-False] PASSED tests/test_builder.py::test_wheel_build_tag[arm64] PASSED tests/test_builder.py::test_wheel_build_tag[universal2] PASSED tests/test_builder.py::test_wheel_build_tag[x86_64] PASSED tests/test_builder.py::test_wheel_tag[10.12_arm64] PASSED tests/test_builder.py::test_wheel_tag[10.12_universal2] PASSED tests/test_builder.py::test_wheel_tag[10.12_x86_64] PASSED tests/test_builder.py::test_wheel_tag_combined_rejects_higher_classic_minor PASSED tests/test_builder.py::test_wheel_tag_expand PASSED tests/test_builder.py::test_wheel_tag_expand_11 PASSED tests/test_builder.py::test_wheel_tag_host_platform_override PASSED tests/test_builder.py::test_wheel_tag_with_abi3t_darwin PASSED tests/test_builder.py::test_wheel_tag_with_abi3t_ignored_on_classic PASSED tests/test_builder.py::test_wheel_tag_with_abi_darwin PASSED tests/test_builder.py::test_wheel_tag_with_classic_abi3_ignored_on_free_threaded PASSED tests/test_builder.py::test_wheel_tag_with_combined_abi3_abi3t_free_threaded PASSED tests/test_builder.py::test_wheel_tag_with_combined_abi3_abi3t_gil PASSED tests/test_builder.py::test_windows_lib_names[abi3-False-False] PASSED tests/test_builder.py::test_windows_lib_names[abi3-False-True] PASSED tests/test_builder.py::test_windows_lib_names[abi3-True-False] PASSED tests/test_builder.py::test_windows_lib_names[abi3-True-True] PASSED tests/test_builder.py::test_windows_lib_names[abi3t-False-False] PASSED tests/test_builder.py::test_windows_lib_names[abi3t-False-True] PASSED tests/test_builder.py::test_windows_lib_names[abi3t-True-False] PASSED tests/test_builder.py::test_windows_lib_names[abi3t-True-True] PASSED tests/test_builder.py::test_windows_lib_names[classic-False-False] PASSED tests/test_builder.py::test_windows_lib_names[classic-False-True] PASSED tests/test_builder.py::test_windows_lib_names[classic-True-False] PASSED tests/test_builder.py::test_windows_lib_names[classic-True-True] PASSED tests/test_check_extra.py::test_has_extra[reqlist0-setuptools-True] PASSED tests/test_check_extra.py::test_has_extra[reqlist1-setuptools-True] PASSED tests/test_check_extra.py::test_has_extra[reqlist2-wheel-free-setuptools-True] PASSED tests/test_check_extra.py::test_has_extra[reqlist3-setuptools-True] PASSED tests/test_check_extra.py::test_has_extra[reqlist4-hatchling-True] PASSED tests/test_check_extra.py::test_has_extra[reqlist5-setuptools-False] PASSED tests/test_check_extra.py::test_has_extra[reqlist6-setuptools-False] PASSED tests/test_check_extra.py::test_has_extra[reqlist7-setuptools-False] PASSED tests/test_check_extra.py::test_has_extra[reqlist8-setuptools-True] PASSED tests/test_check_extra.py::test_has_extra[reqlist9-setuptools-False] PASSED tests/test_check_extra.py::test_warn_missing_extra_alt_present PASSED tests/test_check_extra.py::test_warn_missing_extra_lists_alternatives PASSED tests/test_check_extra.py::test_warn_missing_extra_no_pyproject PASSED tests/test_check_extra.py::test_warn_missing_extra_quiet PASSED tests/test_check_extra.py::test_warn_missing_extra_warns PASSED tests/test_cli.py::test_cli_build_requires PASSED tests/test_cli.py::test_cli_builder PASSED tests/test_cli.py::test_cli_builder_sysconfig PASSED tests/test_cli.py::test_cli_builder_wheel_tag PASSED tests/test_cli.py::test_cli_file_api_query PASSED tests/test_cli.py::test_cli_no_args PASSED tests/test_cmake_ast.py::test_cmake_ast_parse PASSED tests/test_cmake_ast.py::test_cmake_ast_parse_long PASSED tests/test_cmake_ast.py::test_cmake_file_parse[docs/examples/downstream/nanobind_example] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[docs/examples/downstream/pybind11_example] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/abi3_pyproject_ext] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/abi3_setuptools_ext] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/broken_fallback] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/cmake_defines] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/cmake_generated] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/custom_cmake] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/cython_pxd_editable/pkg1] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/cython_pxd_editable/pkg2] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/dynamic_metadata] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/filepath_pure] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/fortran_example] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/hatchling/cpp] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/importlib_editable/src/pkg/sub_a] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/importlib_editable/src/pkg/sub_b/sub_c] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/importlib_editable/src/pkg/sub_b/sub_d] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/importlib_editable/src/pkg/sub_b] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/importlib_editable/src/pkg] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/importlib_editable/src] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/mixed_setuptools] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/multi_build_type] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/navigate_editable] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/plugin_setuptools_install_dir] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/sdist_config/external/dummy] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/sdist_config] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/simple_pure] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/simple_pyproject_ext] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/simple_pyproject_script_with_flags] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/simple_pyproject_source_dir/src] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/simple_setuptools_ext] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/simplest_c] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/toml_setuptools_ext] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/wrapper_setuptools_classic_layout] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/wrapper_setuptools_install_dir] PASSED tests/test_cmake_ast.py::test_cmake_file_parse[tests/packages/wrapper_setuptools_install_dir_pkgdir] PASSED tests/test_cmake_ast.py::test_find_min_cmake_version_with_inner_comment[# why not\n] PASSED tests/test_cmake_ast.py::test_find_min_cmake_version_with_inner_comment[#[[ bracket comment ]]\n] PASSED tests/test_cmake_ast.py::test_find_min_cmake_version_with_leading_inner_comment PASSED tests/test_cmake_ast.py::test_missing_open_paren_raises_parse_error PASSED tests/test_cmake_ast.py::test_unterminated_block_raises_parse_error PASSED tests/test_cmake_config.py::test_cmake_args[default] PASSED tests/test_cmake_config.py::test_cmake_args[makefiles] PASSED tests/test_cmake_config.py::test_cmake_args[ninja] PASSED tests/test_cmake_config.py::test_cmake_args[others] PASSED tests/test_cmake_config.py::test_cmake_defines PASSED tests/test_cmake_config.py::test_cmake_multi_config_generator_via_define PASSED tests/test_cmake_config.py::test_cmake_paths[default] PASSED tests/test_cmake_config.py::test_cmake_paths[makefiles] PASSED tests/test_cmake_config.py::test_cmake_paths[ninja] PASSED tests/test_cmake_config.py::test_cmake_paths[others] PASSED tests/test_cmake_config.py::test_get_cmake_via_envvar PASSED tests/test_cmake_config.py::test_init_cache[default] PASSED tests/test_cmake_config.py::test_init_cache[makefiles] PASSED tests/test_cmake_config.py::test_init_cache[ninja] PASSED tests/test_cmake_config.py::test_init_cache[others] PASSED tests/test_cmake_config.py::test_install_targets PASSED tests/test_cmake_config.py::test_install_targets_and_components PASSED tests/test_cmake_config.py::test_too_old PASSED tests/test_common_wheel_helpers.py::test_absolute_install_dir_rejects_unknown_subdir PASSED tests/test_common_wheel_helpers.py::test_absolute_install_dir_requires_experimental PASSED tests/test_common_wheel_helpers.py::test_absolute_install_dir_targets_wheel_subdir PASSED tests/test_common_wheel_helpers.py::test_build_dir_explicit PASSED tests/test_common_wheel_helpers.py::test_build_dir_fallback PASSED tests/test_common_wheel_helpers.py::test_build_dir_inplace_editable_uses_source_dir PASSED tests/test_common_wheel_helpers.py::test_build_dir_name_placeholder PASSED tests/test_common_wheel_helpers.py::test_install_dir_defaults_to_targetlib PASSED tests/test_common_wheel_helpers.py::test_install_dir_rejects_dotdot PASSED tests/test_common_wheel_helpers.py::test_platlib_layout_created PASSED tests/test_common_wheel_helpers.py::test_purelib_tag_is_any PASSED tests/test_common_wheel_helpers.py::test_targetlib_honors_explicit_platlib PASSED tests/test_common_wheel_helpers.py::test_targetlib_platlib_by_default PASSED tests/test_common_wheel_helpers.py::test_targetlib_purelib_when_cmake_disabled PASSED tests/test_custom_modules.py::test_ep PASSED tests/test_dynamic_metadata.py::test_array_dynamic_metadata PASSED tests/test_dynamic_metadata.py::test_array_plugin_requires_field PASSED tests/test_dynamic_metadata.py::test_build_requires_field[dynamic_metadata-None] PASSED tests/test_dynamic_metadata.py::test_build_requires_field[dynamic_metadata-env] PASSED tests/test_dynamic_metadata.py::test_build_requires_field[dynamic_metadata-sdist] PASSED tests/test_dynamic_metadata.py::test_dual_metadata[dynamic_metadata] PASSED tests/test_dynamic_metadata.py::test_dynamic_metadata[dynamic_metadata] PASSED tests/test_dynamic_metadata.py::test_dynamic_wheel_defaults_to_static PASSED tests/test_dynamic_metadata.py::test_dynamic_wheel_invalid_fields[unknown-field] PASSED tests/test_dynamic_metadata.py::test_dynamic_wheel_invalid_fields[version] PASSED tests/test_dynamic_metadata.py::test_dynamic_wheel_marks_sdist_fields_dynamic PASSED tests/test_dynamic_metadata.py::test_dynamic_wheel_same_field_combines_with_or PASSED tests/test_dynamic_metadata.py::test_dynamic_wheel_static_field_is_metadata_2_6 PASSED tests/test_dynamic_metadata.py::test_fail_experimental_metadata[dynamic_metadata] PASSED tests/test_dynamic_metadata.py::test_faulty_metadata[dynamic_metadata] PASSED tests/test_dynamic_metadata.py::test_legacy_does_not_mutate_input PASSED tests/test_dynamic_metadata.py::test_legacy_metadata_table_deprecation_warning[1.0] PASSED tests/test_dynamic_metadata.py::test_legacy_metadata_table_deprecation_warning[1.1] PASSED tests/test_dynamic_metadata.py::test_legacy_metadata_table_deprecation_warning[None] PASSED tests/test_dynamic_metadata.py::test_legacy_metadata_table_no_warning_below_1[0.10] PASSED tests/test_dynamic_metadata.py::test_legacy_metadata_table_no_warning_below_1[0.11] PASSED tests/test_dynamic_metadata.py::test_local_plugin_metadata[dynamic_metadata] PASSED tests/test_dynamic_metadata.py::test_mixing_metadata_forms_rejected PASSED tests/test_dynamic_metadata.py::test_multipart_regex PASSED tests/test_dynamic_metadata.py::test_pep517_wheel[dynamic_metadata] PASSED tests/test_dynamic_metadata.py::test_plugin_metadata[dynamic_metadata-plugin_array_project.toml] PASSED tests/test_dynamic_metadata.py::test_plugin_metadata[dynamic_metadata-plugin_project.toml] PASSED tests/test_dynamic_metadata.py::test_regex PASSED tests/test_dynamic_metadata.py::test_regex_both_forms PASSED tests/test_dynamic_metadata.py::test_regex_errors PASSED tests/test_dynamic_metadata.py::test_regex_remove[0] PASSED tests/test_dynamic_metadata.py::test_regex_remove[1] PASSED tests/test_dynamic_metadata.py::test_static_field_extended_without_dynamic_wheel_is_not_2_6 PASSED tests/test_dynamic_metadata.py::test_template_both_forms PASSED tests/test_dynamic_metadata.py::test_warn_metadata[dynamic_metadata] PASSED tests/test_dynamic_metadata_unit.py::test_actions[dict-dict-str] PASSED tests/test_dynamic_metadata_unit.py::test_actions[dict-list-str] PASSED tests/test_dynamic_metadata_unit.py::test_actions[dict-str] PASSED tests/test_dynamic_metadata_unit.py::test_actions[list-dict-str] PASSED tests/test_dynamic_metadata_unit.py::test_actions[list-str] PASSED tests/test_dynamic_metadata_unit.py::test_actions[readme] PASSED tests/test_dynamic_metadata_unit.py::test_actions[str] PASSED tests/test_dynamic_metadata_unit.py::test_array_bad_build_state_raises PASSED tests/test_dynamic_metadata_unit.py::test_array_build_state_hook PASSED tests/test_dynamic_metadata_unit.py::test_array_field_not_in_dynamic_raises PASSED tests/test_dynamic_metadata_unit.py::test_array_forward_reference_raises PASSED tests/test_dynamic_metadata_unit.py::test_array_missing_provider_raises PASSED tests/test_dynamic_metadata_unit.py::test_array_new_style_multi_field PASSED tests/test_dynamic_metadata_unit.py::test_array_pep808_add_only_list PASSED tests/test_dynamic_metadata_unit.py::test_array_regex_via_field_setting PASSED tests/test_dynamic_metadata_unit.py::test_array_runs_in_order PASSED tests/test_dynamic_metadata_unit.py::test_array_scalar_static_and_dynamic_raises PASSED tests/test_dynamic_metadata_unit.py::test_bundled_providers_registered_as_entry_points PASSED tests/test_dynamic_metadata_unit.py::test_duplicate_provider_names_warn PASSED tests/test_dynamic_metadata_unit.py::test_fancy_provider_defaults_field_and_requires PASSED tests/test_dynamic_metadata_unit.py::test_list_dict_field_rejects_non_dict PASSED tests/test_dynamic_metadata_unit.py::test_load_provider_path_loads_local PASSED tests/test_dynamic_metadata_unit.py::test_load_provider_path_missing_dir_raises PASSED tests/test_dynamic_metadata_unit.py::test_load_provider_path_not_shadowed PASSED tests/test_dynamic_metadata_unit.py::test_optional_dependencies_rejects_non_str_elements PASSED tests/test_dynamic_metadata_unit.py::test_provider_requires_field PASSED tests/test_dynamic_metadata_unit.py::test_regex PASSED tests/test_dynamic_metadata_unit.py::test_regex_provider_new_style PASSED tests/test_dynamic_metadata_unit.py::test_regex_rejects_bogus_key PASSED tests/test_dynamic_metadata_unit.py::test_scm_provider_defaults_field_and_requires PASSED tests/test_dynamic_metadata_unit.py::test_template_basic PASSED tests/test_dynamic_metadata_unit.py::test_template_needs PASSED tests/test_dynamic_metadata_unit.py::test_template_provider_new_style PASSED tests/test_dynamic_metadata_unit.py::test_template_rejects_bogus_key PASSED tests/test_editable.py::test_cython_pxd[multiple_packages0-inplace-False] PASSED tests/test_editable.py::test_cython_pxd[multiple_packages0-redirect-False] PASSED tests/test_editable.py::test_direct_import[inplace-importlib_editable] PASSED tests/test_editable.py::test_direct_import[not_editable-importlib_editable] PASSED tests/test_editable.py::test_direct_import[redirect-importlib_editable] PASSED tests/test_editable.py::test_editable_rebuild_dir[False-simplest_c] PASSED tests/test_editable.py::test_editable_with_beartype_claw[inplace-False-simplest_c] PASSED tests/test_editable.py::test_editable_with_beartype_claw[redirect-False-simplest_c] PASSED tests/test_editable.py::test_importlib_resources[inplace-importlib_editable] PASSED tests/test_editable.py::test_importlib_resources[not_editable-importlib_editable] PASSED tests/test_editable.py::test_importlib_resources[redirect-importlib_editable] PASSED tests/test_editable.py::test_inplace_loader_rebuild[False-simplest_c] PASSED tests/test_editable.py::test_install_dir[False-simplest_c] PASSED tests/test_editable.py::test_navigate_editable[isolated-navigate_editable-datafolder] PASSED tests/test_editable.py::test_navigate_editable[isolated-navigate_editable-package] PASSED tests/test_editable.py::test_navigate_editable[not_isolated-navigate_editable-datafolder] PASSED tests/test_editable.py::test_navigate_editable[not_isolated-navigate_editable-package] PASSED tests/test_editable_build_paths.py::test_editable_inplace_no_build_dir_bakes_none_path PASSED tests/test_editable_build_paths.py::test_editable_rebuild_nonplatlib_install_dir_friendly_error PASSED tests/test_editable_generated.py::test_generated_files[isolated-inplace-cmake_generated] SKIPPED tests/test_editable_generated.py::test_generated_files[isolated-not_editable-cmake_generated] PASSED tests/test_editable_generated.py::test_generated_files[isolated-redirect-cmake_generated] PASSED tests/test_editable_generated.py::test_generated_files[not_isolated-inplace-cmake_generated] SKIPPED tests/test_editable_generated.py::test_generated_files[not_isolated-not_editable-cmake_generated] PASSED tests/test_editable_generated.py::test_generated_files[not_isolated-redirect-cmake_generated] PASSED tests/test_editable_redirect.py::test_collect_search_locations_absolute PASSED tests/test_editable_redirect.py::test_editable_redirect PASSED tests/test_editable_redirect.py::test_editable_redirect_external_install_tree PASSED tests/test_editable_redirect.py::test_inplace_finder_ignores_unknown PASSED tests/test_editable_redirect.py::test_inplace_finder_rebuild_runs_build_only PASSED tests/test_editable_redirect.py::test_inplace_import_time_rebuild_debounced PASSED tests/test_editable_redirect.py::test_inplace_loader_exposes_rebuild PASSED tests/test_editable_redirect.py::test_inplace_rebuild_without_path_errors PASSED tests/test_editable_redirect.py::test_install_inplace_is_idempotent PASSED tests/test_editable_redirect.py::test_install_is_idempotent PASSED tests/test_editable_redirect.py::test_install_multiple_packages PASSED tests/test_editable_redirect.py::test_libdir_to_installed_absolute PASSED tests/test_editable_redirect.py::test_loader_exposes_rebuild PASSED tests/test_editable_redirect.py::test_loader_rebuild_without_build_dir_errors PASSED tests/test_editable_redirect.py::test_mapping_to_modules_keeps_symlink_in_package_dir PASSED tests/test_editable_redirect.py::test_mapping_to_modules_prefers_py PASSED tests/test_editable_redirect.py::test_rebuild_failure_surfaces_stdout_when_not_verbose PASSED tests/test_editable_redirect.py::test_rebuild_refuses_nonrebuildable_install_dir PASSED tests/test_editable_redirect.py::test_rebuild_runs_once_per_process PASSED tests/test_editable_redirect.py::test_rebuild_success_runs_build_and_install PASSED tests/test_editable_redirect.py::test_redirect_falls_back_when_path_hooks_miss PASSED tests/test_editable_redirect.py::test_redirect_resolves_through_path_hooks PASSED tests/test_editable_redirect.py::test_synthesized_namespace_merges_native_portions PASSED tests/test_editable_unit.py::test_collect_search_locations_data_only_install_dir PASSED tests/test_editable_unit.py::test_collect_search_locations_install_dir_prefix_not_namespace PASSED tests/test_editable_unit.py::test_collect_search_locations_install_tree_leaf_namespace_ancestor PASSED tests/test_editable_unit.py::test_collect_search_locations_namespace_ancestor PASSED tests/test_editable_unit.py::test_collect_search_locations_pxd_packages PASSED tests/test_editable_unit.py::test_editable_inplace_files_bakes_rebuild_flag PASSED tests/test_editable_unit.py::test_editable_inplace_files_legacy_pth PASSED tests/test_editable_unit.py::test_editable_inplace_files_module_entry PASSED tests/test_editable_unit.py::test_editable_inplace_files_namespace_top_level PASSED tests/test_editable_unit.py::test_editable_inplace_files_pep829_start PASSED tests/test_editable_unit.py::test_editable_redirect_files_absolute_install_dir_no_rebuild PASSED tests/test_editable_unit.py::test_editable_redirect_files_absolute_install_dir_with_rebuild PASSED tests/test_editable_unit.py::test_editable_redirect_files_external_install_prefix PASSED tests/test_editable_unit.py::test_editable_redirect_files_legacy_pth PASSED tests/test_editable_unit.py::test_editable_redirect_files_nonplatlib_install_dir_no_rebuild_baked_safe[${SKBUILD_DATA_DIR}/pkg] PASSED tests/test_editable_unit.py::test_editable_redirect_files_nonplatlib_install_dir_no_rebuild_baked_safe[/data] PASSED tests/test_editable_unit.py::test_editable_redirect_files_pep829_no_paths PASSED tests/test_editable_unit.py::test_editable_redirect_files_pep829_start PASSED tests/test_editable_unit.py::test_editable_redirect_files_platlib_install_dir_no_rebuild_reduced PASSED tests/test_editable_unit.py::test_editable_redirect_files_platlib_var_install_dir_with_rebuild[${SKBUILD_PLATLIB_DIR}/pkg] PASSED tests/test_editable_unit.py::test_editable_redirect_files_platlib_var_install_dir_with_rebuild[${SKBUILD_PURELIB_DIR}/pkg] PASSED tests/test_editable_unit.py::test_editable_redirect_files_rebuild_dir_implies_rebuild PASSED tests/test_editable_unit.py::test_editable_redirect_files_var_install_dir_with_rebuild PASSED tests/test_editable_unit.py::test_get_packages_explicit_passthrough PASSED tests/test_editable_unit.py::test_get_packages_flat_discovery PASSED tests/test_editable_unit.py::test_get_packages_namespace_discovery PASSED tests/test_editable_unit.py::test_get_packages_not_found PASSED tests/test_editable_unit.py::test_is_module PASSED tests/test_editable_unit.py::test_is_module_rejects_versioned_sonames PASSED tests/test_editable_unit.py::test_is_trackable PASSED tests/test_editable_unit.py::test_libdir_to_installed_prefers_extension_over_source PASSED tests/test_editable_unit.py::test_libdir_to_installed_prefers_plain_so_over_versioned PASSED tests/test_editable_unit.py::test_libdir_to_installed_prefers_specific_extension_tag PASSED tests/test_editable_unit.py::test_module_loader_rank_matches_import_precedence PASSED tests/test_editable_unit.py::test_module_loader_rank_orders_extension_suffixes PASSED tests/test_editable_unit.py::test_navigate_editable_namespace_package PASSED tests/test_editable_unit.py::test_navigate_editable_namespace_sibling_distribution PASSED tests/test_editable_unit.py::test_navigate_editable_pkg[abs] PASSED tests/test_editable_unit.py::test_navigate_editable_pkg[rel] PASSED tests/test_editable_unit.py::test_navigate_editable_remapped_namespace PASSED tests/test_editable_unit.py::test_package_search_dirs_namespace PASSED tests/test_editable_unit.py::test_packages_to_file_mapping_loop_symlink PASSED tests/test_editable_unit.py::test_packages_to_file_mapping_missing_source PASSED tests/test_editable_unit.py::test_packages_to_file_mapping_module PASSED tests/test_editable_unit.py::test_packages_to_file_mapping_module_nested PASSED tests/test_editable_unit.py::test_prepare_editable_rebuild_dir_default_tree_unguarded PASSED tests/test_editable_unit.py::test_prepare_editable_rebuild_dir_refreshes_own_tree PASSED tests/test_editable_unit.py::test_prepare_editable_rebuild_dir_refuses_populated PASSED tests/test_entrypoint_config.py::test_default_provider_applies_when_silent PASSED tests/test_entrypoint_config.py::test_default_provider_loses_to_pyproject PASSED tests/test_entrypoint_config.py::test_dict_fields_merge_across_levels PASSED tests/test_entrypoint_config.py::test_duplicate_entry_point_names_warn PASSED tests/test_entrypoint_config.py::test_minimum_version_applies PASSED tests/test_entrypoint_config.py::test_minimum_version_applies_via_override PASSED tests/test_entrypoint_config.py::test_minimum_version_gate_not_triggered PASSED tests/test_entrypoint_config.py::test_multiple_providers_sorted_deterministically PASSED tests/test_entrypoint_config.py::test_opt_out_disables_providers PASSED tests/test_entrypoint_config.py::test_override_only_field_allowed PASSED tests/test_entrypoint_config.py::test_override_provider_beats_pyproject PASSED tests/test_entrypoint_config.py::test_override_still_beaten_by_config_settings PASSED tests/test_entrypoint_config.py::test_provider_accepts_only_env PASSED tests/test_entrypoint_config.py::test_provider_accepts_only_state PASSED tests/test_entrypoint_config.py::test_provider_body_typeerror_not_retried PASSED tests/test_entrypoint_config.py::test_provider_overrides_match_env PASSED tests/test_entrypoint_config.py::test_provider_var_kwargs_receives_both PASSED tests/test_entrypoint_config.py::test_suggestions_name_entry_point_source PASSED tests/test_entrypoint_config.py::test_zero_arg_provider_supported PASSED tests/test_errors.py::test_failed_process_error_str_bytes PASSED tests/test_errors.py::test_failed_process_error_str_text PASSED tests/test_file_processor.py::test_build_dir_exclusion[classic] PASSED tests/test_file_processor.py::test_build_dir_exclusion[default] PASSED tests/test_file_processor.py::test_build_dir_exclusion[manual] PASSED tests/test_file_processor.py::test_circular_symlink_terminates[classic] PASSED tests/test_file_processor.py::test_circular_symlink_terminates[default] PASSED tests/test_file_processor.py::test_circular_symlink_terminates[manual] PASSED tests/test_file_processor.py::test_complex_combinations[classic] PASSED tests/test_file_processor.py::test_complex_combinations[default] PASSED tests/test_file_processor.py::test_complex_combinations[manual] PASSED tests/test_file_processor.py::test_consecutive_excluded_dirs_not_descended PASSED tests/test_file_processor.py::test_dot_git_is_a_file[classic] PASSED tests/test_file_processor.py::test_dot_git_is_a_file[default] PASSED tests/test_file_processor.py::test_dot_git_is_a_file[manual] PASSED tests/test_file_processor.py::test_empty_directory[classic] PASSED tests/test_file_processor.py::test_empty_directory[default] PASSED tests/test_file_processor.py::test_empty_directory[manual] PASSED tests/test_file_processor.py::test_exclude_patterns[classic] PASSED tests/test_file_processor.py::test_exclude_patterns[default] PASSED tests/test_file_processor.py::test_exclude_patterns[manual] PASSED tests/test_file_processor.py::test_explicit_exclude_wins_over_include PASSED tests/test_file_processor.py::test_explicit_ignores_gitignore PASSED tests/test_file_processor.py::test_explicit_is_opt_in PASSED tests/test_file_processor.py::test_gitignore_interaction[classic] PASSED tests/test_file_processor.py::test_gitignore_interaction[default] PASSED tests/test_file_processor.py::test_gitignore_interaction[manual] PASSED tests/test_file_processor.py::test_glob_include_with_broad_exclude_keeps_subpackages PASSED tests/test_file_processor.py::test_include_overrides_exclude[classic] PASSED tests/test_file_processor.py::test_include_overrides_exclude[default] PASSED tests/test_file_processor.py::test_include_overrides_exclude[manual] PASSED tests/test_file_processor.py::test_include_pattern_with_nested_path_and_broad_exclude PASSED tests/test_file_processor.py::test_include_patterns[classic] PASSED tests/test_file_processor.py::test_include_patterns[default] PASSED tests/test_file_processor.py::test_include_patterns[manual] PASSED tests/test_file_processor.py::test_nested_gitignore[classic] PASSED tests/test_file_processor.py::test_nested_gitignore[default] PASSED tests/test_file_processor.py::test_nested_gitignore[manual] PASSED tests/test_file_processor.py::test_nonexistent_patterns[classic] PASSED tests/test_file_processor.py::test_nonexistent_patterns[default] PASSED tests/test_file_processor.py::test_nonexistent_patterns[manual] PASSED tests/test_file_processor.py::test_on_each_with_symlink[classic] PASSED tests/test_file_processor.py::test_on_each_with_symlink[default] PASSED tests/test_file_processor.py::test_on_each_with_symlink[manual] PASSED tests/test_fileapi.py::test_cattrs_comparison PASSED tests/test_fileapi.py::test_convert_union_matches_shape PASSED tests/test_fileapi.py::test_included_dir PASSED tests/test_fileapi.py::test_link_without_command_fragments PASSED tests/test_fileapi.py::test_no_index PASSED tests/test_fileapi.py::test_simple_pure PASSED tests/test_force_include.py::test_force_include_directory_recurses_and_skips_junk PASSED tests/test_force_include.py::test_force_include_directory_respects_wheel_exclude PASSED tests/test_force_include.py::test_force_include_dotted_filename_allowed PASSED tests/test_force_include.py::test_force_include_editable_directory_redirects_members PASSED tests/test_force_include.py::test_force_include_editable_inplace_still_copied PASSED tests/test_force_include.py::test_force_include_editable_module_dest_from_data_source_copied PASSED tests/test_force_include.py::test_force_include_editable_nested_data_copied PASSED tests/test_force_include.py::test_force_include_editable_overrides_package_module PASSED tests/test_force_include.py::test_force_include_editable_redirect_removes_stale_copy PASSED tests/test_force_include.py::test_force_include_editable_redirects_data PASSED tests/test_force_include.py::test_force_include_editable_redirects_module PASSED tests/test_force_include.py::test_force_include_editable_renamed_data_copied PASSED tests/test_force_include.py::test_force_include_editable_script_shebang_normalized PASSED tests/test_force_include.py::test_force_include_editable_top_level_data_copied PASSED tests/test_force_include.py::test_force_include_editable_top_level_module_redirected PASSED tests/test_force_include.py::test_force_include_external_source PASSED tests/test_force_include.py::test_force_include_file_into_wheel PASSED tests/test_force_include.py::test_force_include_from_sdist_via_overrides PASSED tests/test_force_include.py::test_force_include_leading_slash_requires_experimental PASSED tests/test_force_include.py::test_force_include_leading_slash_targets_scripts PASSED tests/test_force_include.py::test_force_include_metadata_in_prepare PASSED tests/test_force_include.py::test_force_include_missing_sdist_source_errors PASSED tests/test_force_include.py::test_force_include_missing_wheel_source_errors PASSED tests/test_force_include.py::test_force_include_on_disk_source_wins_over_sdist PASSED tests/test_force_include.py::test_force_include_overrides_package_file PASSED tests/test_force_include.py::test_force_include_pure_wheel_platlib_tree PASSED tests/test_force_include.py::test_force_include_rejects_escaping_sdist_dest[../escape.txt] PASSED tests/test_force_include.py::test_force_include_rejects_escaping_sdist_dest[..\\escape.txt] PASSED tests/test_force_include.py::test_force_include_rejects_escaping_sdist_dest[/abs/escape.txt] PASSED tests/test_force_include.py::test_force_include_rejects_escaping_sdist_dest[C:/escape.txt] PASSED tests/test_force_include.py::test_force_include_rejects_escaping_sdist_dest[a/../../x] PASSED tests/test_force_include.py::test_force_include_rejects_escaping_wheel_dest PASSED tests/test_force_include.py::test_force_include_resolves_through_sdist PASSED tests/test_force_include.py::test_force_include_resolves_through_sdist_directory PASSED tests/test_force_include.py::test_force_include_script_shebang_normalized PASSED tests/test_force_include.py::test_force_include_sdist_directory_reproducible PASSED tests/test_force_include.py::test_force_include_sdist_directory_respects_exclude PASSED tests/test_force_include.py::test_force_include_sdist_file_overrides_exclude PASSED tests/test_force_include.py::test_force_include_sdist_target PASSED tests/test_force_include.py::test_force_include_survives_wheel_exclude PASSED tests/test_force_include.py::test_force_include_unresolvable_through_sdist_errors PASSED tests/test_force_include.py::test_force_include_var_no_experimental PASSED tests/test_force_include.py::test_force_include_var_pure_wheel_platlib_tree PASSED tests/test_force_include.py::test_force_include_var_targets_scripts PASSED tests/test_force_include.py::test_resolve_wheel_tree_bad_leading_var_rejected[${HOME}/x] PASSED tests/test_force_include.py::test_resolve_wheel_tree_bad_leading_var_rejected[${SKBUILD_DATA_DIR] PASSED tests/test_force_include.py::test_resolve_wheel_tree_bad_leading_var_rejected[${SKBUILD_DATA}/x] PASSED tests/test_force_include.py::test_resolve_wheel_tree_bad_leading_var_rejected[${SKBUILD_NOPE_DIR}/x] PASSED tests/test_force_include.py::test_resolve_wheel_tree_rejects_escaping_remainder[${SKBUILD_DATA_DIR}//pkg] PASSED tests/test_force_include.py::test_resolve_wheel_tree_rejects_escaping_remainder[${SKBUILD_DATA_DIR}/C:/pkg] PASSED tests/test_force_include.py::test_resolve_wheel_tree_rejects_escaping_remainder[${SKBUILD_DATA_DIR}/a\\b] PASSED tests/test_force_include.py::test_resolve_wheel_tree_rejects_escaping_remainder[/data//pkg] PASSED tests/test_force_include.py::test_resolve_wheel_tree_var[${SKBUILD_DATA_DIR}-data-] PASSED tests/test_force_include.py::test_resolve_wheel_tree_var[${SKBUILD_DATA_DIR}/foo/bar-data-foo/bar] PASSED tests/test_force_include.py::test_resolve_wheel_tree_var[${SKBUILD_HEADERS_DIR}/pkg.h-headers-pkg.h] PASSED tests/test_force_include.py::test_resolve_wheel_tree_var[${SKBUILD_METADATA_DIR}/x.txt-metadata-x.txt] PASSED tests/test_force_include.py::test_resolve_wheel_tree_var[${SKBUILD_NULL_DIR}/junk-null-junk] PASSED tests/test_force_include.py::test_resolve_wheel_tree_var[${SKBUILD_PLATLIB_DIR}/pkg/x-platlib-pkg/x] PASSED tests/test_force_include.py::test_resolve_wheel_tree_var[${SKBUILD_PURELIB_DIR}/pkg/x-platlib-pkg/x] PASSED tests/test_force_include.py::test_resolve_wheel_tree_var[${SKBUILD_SCRIPTS_DIR}/run.sh-scripts-run.sh] PASSED tests/test_force_include.py::test_resolve_wheel_tree_var_bad_name PASSED tests/test_force_include.py::test_resolve_wheel_tree_var_not_leading_is_literal PASSED tests/test_force_include.py::test_resolve_wheel_tree_var_rejects_traversal PASSED tests/test_force_include.py::test_settings_force_include_config_settings PASSED tests/test_force_include.py::test_settings_force_include_envvar PASSED tests/test_force_include.py::test_settings_force_include_toml PASSED tests/test_format.py::test_dummy_plain_keys PASSED tests/test_format.py::test_dummy_root_spec[build/{root:uri}/x-build/*/x] PASSED tests/test_format.py::test_dummy_root_spec[{root:parent:uri}-*] PASSED tests/test_format.py::test_dummy_root_spec[{root:uri}-*] PASSED tests/test_format.py::test_dummy_root_spec[{root}-*] PASSED tests/test_format.py::test_name_key_omitted_by_default PASSED tests/test_format.py::test_name_key_present_when_given PASSED tests/test_format.py::test_root_invalid_format PASSED tests/test_format.py::test_root_parent_format PASSED tests/test_format.py::test_root_parent_uri_format PASSED tests/test_format.py::test_root_plain_format PASSED tests/test_format.py::test_root_str PASSED tests/test_format.py::test_root_uri_format PASSED tests/test_generate_include.py::test_generate_include_sdist[generate_include] PASSED tests/test_generate_include.py::test_generate_include_wheel[generate_include] PASSED tests/test_generator_default.py::test_best_gen_older_windows PASSED tests/test_generator_default.py::test_best_gen_unix PASSED tests/test_generator_default.py::test_best_gen_windows PASSED tests/test_get_requires.py::test_get_requires_for_build_editable PASSED tests/test_get_requires.py::test_get_requires_for_build_editable_pure PASSED tests/test_get_requires.py::test_get_requires_for_build_sdist PASSED tests/test_get_requires.py::test_get_requires_for_build_sdist_cmake PASSED tests/test_get_requires.py::test_get_requires_for_build_wheel PASSED tests/test_get_requires.py::test_get_requires_for_build_wheel_pure PASSED tests/test_get_requires.py::test_get_requires_for_build_with_variant[get_requires_for_build_editable-config2] PASSED tests/test_get_requires.py::test_get_requires_for_build_with_variant[get_requires_for_build_sdist-config0] PASSED tests/test_get_requires.py::test_get_requires_for_build_with_variant[get_requires_for_build_wheel-config1] PASSED tests/test_get_requires.py::test_get_requires_parts PASSED tests/test_get_requires.py::test_get_requires_parts_pyproject PASSED tests/test_get_requires.py::test_get_requires_parts_pyproject_old PASSED tests/test_get_requires.py::test_get_requires_parts_settings PASSED tests/test_get_requires.py::test_get_requires_parts_unneeded PASSED tests/test_get_requires.py::test_get_requires_state_override PASSED tests/test_get_requires.py::test_ninja_make_fallback_respects_forced_generator[forced-ninja] PASSED tests/test_get_requires.py::test_ninja_make_fallback_respects_forced_generator[unset] PASSED tests/test_get_requires.py::test_uses_ninja_generator[env-joined] PASSED tests/test_get_requires.py::test_uses_ninja_generator[env-non-ninja] PASSED tests/test_get_requires.py::test_uses_ninja_generator[env-two-token] PASSED tests/test_get_requires.py::test_uses_ninja_generator[settings-joined] PASSED tests/test_get_requires.py::test_uses_ninja_generator[settings-non-ninja] PASSED tests/test_get_requires.py::test_uses_ninja_generator[settings-two-token] PASSED tests/test_get_requires.py::test_uses_ninja_generator[unset] PASSED tests/test_hatchling.py::test_hatchling_editable_install[inplace-hatchling] PASSED tests/test_hatchling.py::test_hatchling_editable_install[redirect-hatchling] PASSED tests/test_hatchling.py::test_hatchling_editable_wheel[inplace-hatchling] PASSED tests/test_hatchling.py::test_hatchling_editable_wheel[redirect-hatchling] PASSED tests/test_hatchling.py::test_hatchling_enable_by_default_ignored PASSED tests/test_hatchling.py::test_hatchling_force_include_rejected PASSED tests/test_hatchling.py::test_hatchling_sdist[hatchling] PASSED tests/test_hatchling.py::test_hatchling_sdist_cmake_error_message PASSED tests/test_hatchling.py::test_hatchling_wheel[sdist_to_wheel-hatchling] PASSED tests/test_hatchling.py::test_hatchling_wheel[wheel_directly-hatchling] PASSED tests/test_hatchling.py::test_hatchling_wheel_exclude_rejected PASSED tests/test_init.py::test_generate_project_rejects_unsafe_name[../evil] PASSED tests/test_init.py::test_generate_project_rejects_unsafe_name[/abs/foo] PASSED tests/test_init.py::test_generate_project_rejects_unsafe_name[foo bar] PASSED tests/test_init.py::test_init_default_name_from_directory PASSED tests/test_init.py::test_init_force_into_nonempty_directory PASSED tests/test_init.py::test_init_generates_files[abi3] PASSED tests/test_init.py::test_init_generates_files[abi3t] PASSED tests/test_init.py::test_init_generates_files[c] PASSED tests/test_init.py::test_init_generates_files[cython] PASSED tests/test_init.py::test_init_generates_files[fortran] PASSED tests/test_init.py::test_init_generates_files[nanobind] PASSED tests/test_init.py::test_init_generates_files[pybind11] PASSED tests/test_init.py::test_init_generates_files[swig] PASSED tests/test_init.py::test_init_interactive_selection PASSED tests/test_init.py::test_init_non_interactive_requires_backend PASSED tests/test_init.py::test_init_nonempty_errors_before_prompt PASSED tests/test_init.py::test_init_refuses_nonempty_directory PASSED tests/test_init.py::test_init_rejects_existing_file_as_directory PASSED tests/test_init.py::test_init_rejects_non_identifier_module PASSED tests/test_init.py::test_init_rejects_unsafe_name[../evil] PASSED tests/test_init.py::test_init_rejects_unsafe_name[/abs/foo] PASSED tests/test_init.py::test_init_rejects_unsafe_name[foo bar] PASSED tests/test_init.py::test_init_rejects_unsafe_name[foo"bar] PASSED tests/test_init.py::test_init_rejects_unsafe_name[foo/bar] PASSED tests/test_json_schema.py::test_convert_dict PASSED tests/test_json_schema.py::test_convert_invalid PASSED tests/test_json_schema.py::test_convert_list PASSED tests/test_json_schema.py::test_convert_optional_str PASSED tests/test_json_schema.py::test_convert_path PASSED tests/test_json_schema.py::test_convert_str PASSED tests/test_json_schema.py::test_convert_str_or_bool PASSED tests/test_json_schema.py::test_convert_version PASSED tests/test_logging.py::test_colors_no_stdout PASSED tests/test_logging.py::test_rich_notrichbrackets PASSED tests/test_logging.py::test_rich_print_each_color PASSED tests/test_logging.py::test_rich_print_fgbg PASSED tests/test_logging.py::test_rich_print_forcecolor PASSED tests/test_logging.py::test_rich_print_internal_color PASSED tests/test_logging.py::test_rich_print_nocolor PASSED tests/test_logging.py::test_rich_print_nocolor_forcecolor PASSED tests/test_logging.py::test_rich_print_subs PASSED tests/test_module_dir.py::test_all_modules_filter_all PASSED tests/test_module_dir.py::test_all_modules_has_all PASSED tests/test_multi_build_type.py::test_multi_build_type_editable_rebuild_restores_primary[multi_build_type] PASSED tests/test_multi_build_type.py::test_multi_build_type_override_single[multi_build_type] PASSED tests/test_multi_build_type.py::test_multi_build_type_wheel[Ninja Multi-Config-multi_build_type] PASSED tests/test_multi_build_type.py::test_multi_build_type_wheel[Ninja-multi_build_type] PASSED tests/test_multi_build_type.py::test_multi_build_type_wheel[None-multi_build_type] PASSED tests/test_name_main.py::test_cattrs_converter PASSED tests/test_name_main.py::test_query PASSED tests/test_name_main.py::test_reply PASSED tests/test_pep517_sdist_symlink.py::test_pep517_sdist_dangling_external_symlink PASSED tests/test_pep517_sdist_symlink.py::test_pep517_sdist_dangling_symlink PASSED tests/test_pep517_sdist_symlink.py::test_pep517_sdist_symlink[None] PASSED tests/test_pep517_sdist_symlink.py::test_pep517_sdist_symlink[all] PASSED tests/test_pep517_sdist_symlink.py::test_pep517_sdist_symlink[classic] PASSED tests/test_pep517_sdist_symlink.py::test_pep517_sdist_symlink[external] PASSED tests/test_pep517_sdist_symlink.py::test_pep517_sdist_symlink[none] PASSED tests/test_prepare_metadata.py::test_license_normalization PASSED tests/test_prepare_metadata.py::test_multiline_description PASSED tests/test_prepare_metadata.py::test_prepare_metadata_for_build[editable-simplest_c] PASSED tests/test_prepare_metadata.py::test_prepare_metadata_for_build[wheel-simplest_c] PASSED tests/test_prepare_metadata.py::test_prepare_metadata_for_build_wheel_variant PASSED tests/test_printouts.py::test_builder_module_wheel_tag PASSED tests/test_printouts.py::test_builder_printout PASSED tests/test_process_scripts.py::test_script_dir PASSED tests/test_process_scripts.py::test_script_dir_with_subdirectory PASSED tests/test_program_search.py::test_get_cmake_program_fallback_exception[exc0] PASSED tests/test_program_search.py::test_get_cmake_program_fallback_exception[exc1] PASSED tests/test_program_search.py::test_get_cmake_programs_all PASSED tests/test_program_search.py::test_get_cmake_programs_cmake_module SKIPPED tests/test_program_search.py::test_get_cmake_programs_malformed PASSED tests/test_program_search.py::test_get_ninja_programs_all PASSED tests/test_program_search.py::test_get_ninja_programs_cmake_module SKIPPED tests/test_pyproject_abi3.py::test_abi3_wheel PASSED tests/test_pyproject_extra_dirs.py::test_pep517_wheel_extra_dirs[filepath_pure] PASSED tests/test_pyproject_extra_dirs.py::test_pep517_wheel_too_old_core[filepath_pure] PASSED tests/test_pyproject_namespace.py::test_editable_namespace_sibling_distribution[multiple_packages0-inplace] PASSED tests/test_pyproject_namespace.py::test_editable_namespace_sibling_distribution[multiple_packages0-redirect] PASSED tests/test_pyproject_namespace.py::test_pep517_wheel_namespace_package[namespace_purelib_package] PASSED tests/test_pyproject_pep517.py::test_passing_cxx_flags[CMAKE_ARGS--DCMAKE_C_FLAGS="-DFOO=1 -DBAR="-simple_pyproject_script_with_flags] PASSED tests/test_pyproject_pep517.py::test_passing_cxx_flags[SKBUILD_CMAKE_ARGS--DCMAKE_C_FLAGS=-DFOO=1 -DBAR=-simple_pyproject_script_with_flags] PASSED tests/test_pyproject_pep517.py::test_pep517_sdist PASSED tests/test_pyproject_pep517.py::test_pep517_sdist_hash PASSED tests/test_pyproject_pep517.py::test_pep517_sdist_time_hash PASSED tests/test_pyproject_pep517.py::test_pep517_sdist_time_hash_nonreproducable PASSED tests/test_pyproject_pep517.py::test_pep517_sdist_time_hash_set_epoch[False] PASSED tests/test_pyproject_pep517.py::test_pep517_sdist_time_hash_set_epoch[True] PASSED tests/test_pyproject_pep517.py::test_pep517_wheel PASSED tests/test_pyproject_pep517.py::test_pep517_wheel_source_dir[simple_pyproject_source_dir] PASSED tests/test_pyproject_pep517.py::test_pep517_wheel_time_hash SKIPPED tests/test_pyproject_pep517.py::test_pep639_license_files_metadata[pep639_pure] PASSED tests/test_pyproject_pep517.py::test_pep639_license_files_optout PASSED tests/test_pyproject_pep517.py::test_pep639_license_files_sdist[pep639_pure] PASSED tests/test_pyproject_pep517.py::test_pep639_license_files_wheel[pep639_pure] PASSED tests/test_pyproject_pep517.py::test_prepare_metadata_for_build_wheel PASSED tests/test_pyproject_pep517.py::test_prepare_metadata_for_build_wheel_by_hand PASSED tests/test_pyproject_pep518.py::test_pep518_pip PASSED tests/test_pyproject_pep518.py::test_pep518_rebuild_build_dir PASSED tests/test_pyproject_pep518.py::test_pep518_sdist PASSED tests/test_pyproject_pep518.py::test_pep518_sdist_with_cmake_config[sdist_config] PASSED tests/test_pyproject_pep518.py::test_pep518_wheel[sdist_to_wheel] PASSED tests/test_pyproject_pep518.py::test_pep518_wheel[wheel_directly] PASSED tests/test_pyproject_pep518.py::test_pep518_wheel_sdist_with_cmake_config[sdist_to_wheel-sdist_config] PASSED tests/test_pyproject_pep518.py::test_pep518_wheel_sdist_with_cmake_config[wheel_directly-sdist_config] PASSED tests/test_pyproject_pep660.py::test_pep660_pip_isolated[isolated-inplace-simplest_c] PASSED tests/test_pyproject_pep660.py::test_pep660_pip_isolated[isolated-redirect-simplest_c] PASSED tests/test_pyproject_pep660.py::test_pep660_pip_isolated[not_isolated-inplace-simplest_c] PASSED tests/test_pyproject_pep660.py::test_pep660_pip_isolated[not_isolated-redirect-simplest_c] PASSED tests/test_pyproject_pep660.py::test_pep660_wheel[inplace-simplest_c] PASSED tests/test_pyproject_pep660.py::test_pep660_wheel[redirect-simplest_c] PASSED tests/test_pyproject_purelib.py::test_pep517_wheel[simple_purelib_package] PASSED tests/test_schema.py::test_compare_schemas PASSED tests/test_schema.py::test_invalid_schemas[addition0] SKIPPED (could...) tests/test_schema.py::test_invalid_schemas[addition10] SKIPPED (coul...) tests/test_schema.py::test_invalid_schemas[addition11] SKIPPED (coul...) tests/test_schema.py::test_invalid_schemas[addition12] SKIPPED (coul...) tests/test_schema.py::test_invalid_schemas[addition13] SKIPPED (coul...) tests/test_schema.py::test_invalid_schemas[addition14] SKIPPED (coul...) tests/test_schema.py::test_invalid_schemas[addition15] SKIPPED (coul...) tests/test_schema.py::test_invalid_schemas[addition1] SKIPPED (could...) tests/test_schema.py::test_invalid_schemas[addition2] SKIPPED (could...) tests/test_schema.py::test_invalid_schemas[addition3] SKIPPED (could...) tests/test_schema.py::test_invalid_schemas[addition4] SKIPPED (could...) tests/test_schema.py::test_invalid_schemas[addition5] SKIPPED (could...) tests/test_schema.py::test_invalid_schemas[addition6] SKIPPED (could...) tests/test_schema.py::test_invalid_schemas[addition7] SKIPPED (could...) tests/test_schema.py::test_invalid_schemas[addition8] SKIPPED (could...) tests/test_schema.py::test_invalid_schemas[addition9] SKIPPED (could...) tests/test_schema.py::test_required_names_normalized PASSED tests/test_schema.py::test_valid_schemas[addition0] SKIPPED (could n...) tests/test_schema.py::test_valid_schemas[addition10] SKIPPED (could ...) tests/test_schema.py::test_valid_schemas[addition11] SKIPPED (could ...) tests/test_schema.py::test_valid_schemas[addition1] SKIPPED (could n...) tests/test_schema.py::test_valid_schemas[addition2] SKIPPED (could n...) tests/test_schema.py::test_valid_schemas[addition3] SKIPPED (could n...) tests/test_schema.py::test_valid_schemas[addition4] SKIPPED (could n...) tests/test_schema.py::test_valid_schemas[addition5] SKIPPED (could n...) tests/test_schema.py::test_valid_schemas[addition6] SKIPPED (could n...) tests/test_schema.py::test_valid_schemas[addition7] SKIPPED (could n...) tests/test_schema.py::test_valid_schemas[addition8] SKIPPED (could n...) tests/test_schema.py::test_valid_schemas[addition9] SKIPPED (could n...) tests/test_schema.py::test_valid_schemas_files[docs/examples/downstream/nanobind_example] SKIPPED tests/test_schema.py::test_valid_schemas_files[docs/examples/downstream/pybind11_example] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/abi3_pyproject_ext] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/abi3_setuptools_ext] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/broken_fallback] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/cmake_defines] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/cmake_generated] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/custom_cmake/extern] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/custom_cmake] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/cython_pxd_editable/pkg1] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/cython_pxd_editable/pkg2] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/dynamic_metadata] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/filepath_pure] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/fortran_example] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/generate_include] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/hatchling] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/importlib_editable] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/mixed_setuptools] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/multi_build_type] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/namespace_purelib_package] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/namespace_sibling_package] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/navigate_editable] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/pep639_pure] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/plugin_setuptools_install_dir] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/sdist_config] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/simple_purelib_package] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/simple_pyproject_ext] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/simple_pyproject_script_with_flags] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/simple_pyproject_source_dir] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/simple_setuptools_ext] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/simplest_c] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/toml_setuptools_ext] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/wrapper_setuptools_classic_layout] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/wrapper_setuptools_install_dir] SKIPPED tests/test_schema.py::test_valid_schemas_files[tests/packages/wrapper_setuptools_install_dir_pkgdir] SKIPPED tests/test_settings.py::test_all_names PASSED tests/test_settings.py::test_all_names_nested PASSED tests/test_settings.py::test_conf PASSED tests/test_settings.py::test_conf_dict_wrong_type_raises PASSED tests/test_settings.py::test_conf_nested PASSED tests/test_settings.py::test_conf_settings_bools PASSED tests/test_settings.py::test_conf_union_str_dict PASSED tests/test_settings.py::test_conf_union_str_list PASSED tests/test_settings.py::test_conf_union_str_list_multiple PASSED tests/test_settings.py::test_config_array_error PASSED tests/test_settings.py::test_empty PASSED tests/test_settings.py::test_empty_array PASSED tests/test_settings.py::test_env PASSED tests/test_settings.py::test_env_array_error PASSED tests/test_settings.py::test_env_nested PASSED tests/test_settings.py::test_env_union PASSED tests/test_settings.py::test_env_var_bools[1-0] PASSED tests/test_settings.py::test_env_var_bools[on-off] PASSED tests/test_settings.py::test_env_var_bools[true-false] PASSED tests/test_settings.py::test_env_var_bools[yes-no] PASSED tests/test_settings.py::test_env_var_bools_empty PASSED tests/test_settings.py::test_ignore_conf PASSED tests/test_settings.py::test_lists PASSED tests/test_settings.py::test_lists_optional PASSED tests/test_settings.py::test_literal_failure_empty PASSED tests/test_settings.py::test_literal_failure_not_contained PASSED tests/test_settings.py::test_literal_failure_not_contained_optional PASSED tests/test_settings.py::test_missing_opts_conf[] PASSED tests/test_settings.py::test_missing_opts_conf[ab.cd] PASSED tests/test_settings.py::test_missing_opts_conf[x.other] PASSED tests/test_settings.py::test_missing_opts_conf[x] PASSED tests/test_settings.py::test_missing_opts_toml PASSED tests/test_settings.py::test_override PASSED tests/test_settings.py::test_toml PASSED tests/test_settings.py::test_toml_array PASSED tests/test_settings.py::test_toml_nested PASSED tests/test_settings.py::test_toml_required PASSED tests/test_settings.py::test_toml_union PASSED tests/test_settings.py::test_unrecognized_conf_scalar_to_dict_field PASSED tests/test_settings.py::test_unrecognized_conf_under_dict_of_dict PASSED tests/test_settings.py::test_unrecognized_conf_under_scalar PASSED tests/test_settings.py::test_versions PASSED tests/test_settings_docs.py::test_mk_docs PASSED tests/test_settings_docs.py::test_skbuild_docs_readme PASSED tests/test_settings_docs.py::test_skbuild_docs_sphinx PASSED tests/test_settings_overrides.py::test_disallow_hardcoded PASSED tests/test_settings_overrides.py::test_failed_retry PASSED tests/test_settings_overrides.py::test_free_threaded_override PASSED tests/test_settings_overrides.py::test_not_regex_match[^string] PASSED tests/test_settings_overrides.py::test_not_regex_match[other] PASSED tests/test_settings_overrides.py::test_not_regex_match[this$] PASSED tests/test_settings_overrides.py::test_override_only_allowed_dynamically PASSED tests/test_settings_overrides.py::test_regex_match[^this] PASSED tests/test_settings_overrides.py::test_regex_match[is] PASSED tests/test_settings_overrides.py::test_regex_match[string$] PASSED tests/test_settings_overrides.py::test_regex_match[this] PASSED tests/test_settings_overrides.py::test_skbuild_env[BAR] PASSED tests/test_settings_overrides.py::test_skbuild_env[None] PASSED tests/test_settings_overrides.py::test_skbuild_env[] PASSED tests/test_settings_overrides.py::test_skbuild_env_bool[0] PASSED tests/test_settings_overrides.py::test_skbuild_env_bool[3] PASSED tests/test_settings_overrides.py::test_skbuild_env_bool[None] PASSED tests/test_settings_overrides.py::test_skbuild_env_bool[] PASSED tests/test_settings_overrides.py::test_skbuild_env_bool[tRUE] PASSED tests/test_settings_overrides.py::test_skbuild_env_bool_all_any[False-false-false] PASSED tests/test_settings_overrides.py::test_skbuild_env_bool_all_any[False-false-true] PASSED tests/test_settings_overrides.py::test_skbuild_env_bool_all_any[False-true-false] PASSED tests/test_settings_overrides.py::test_skbuild_env_bool_all_any[False-true-true] PASSED tests/test_settings_overrides.py::test_skbuild_env_bool_all_any[True-false-false] PASSED tests/test_settings_overrides.py::test_skbuild_env_bool_all_any[True-false-true] PASSED tests/test_settings_overrides.py::test_skbuild_env_bool_all_any[True-true-false] PASSED tests/test_settings_overrides.py::test_skbuild_env_bool_all_any[True-true-true] PASSED tests/test_settings_overrides.py::test_skbuild_env_negative_bool[0] PASSED tests/test_settings_overrides.py::test_skbuild_env_negative_bool[FalSE] PASSED tests/test_settings_overrides.py::test_skbuild_env_negative_bool[None] PASSED tests/test_settings_overrides.py::test_skbuild_env_negative_bool[] PASSED tests/test_settings_overrides.py::test_skbuild_env_negative_bool[random] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_any[darwin-cpython] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_any[darwin-pypy] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_any[linux-cpython] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_any[linux-pypy] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_any_mixed[darwin-cpython-3.10] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_any_mixed[darwin-cpython-3.9] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_any_mixed[darwin-pypy-3.10] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_any_mixed[darwin-pypy-3.9] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_any_mixed[linux-cpython-3.10] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_any_mixed[linux-cpython-3.9] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_any_mixed[linux-pypy-3.10] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_any_mixed[linux-pypy-3.9] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_dual[darwin-cpython] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_dual[darwin-pypy] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_dual[linux-cpython] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_dual[linux-pypy] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_empty_if PASSED tests/test_settings_overrides.py::test_skbuild_overrides_force_include_default_replaces PASSED tests/test_settings_overrides.py::test_skbuild_overrides_force_include_from_sdist[False] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_force_include_from_sdist[True] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_from_sdist[False] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_from_sdist[True] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_implver[7.3.14] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_implver[7.3.15] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_in_extra_settings PASSED tests/test_settings_overrides.py::test_skbuild_overrides_inherit[append] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_inherit[none] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_inherit[prepend] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_inherit_force_include[append] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_inherit_force_include[none] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_inherit_force_include[prepend] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_inherit_with_scalar_key PASSED tests/test_settings_overrides.py::test_skbuild_overrides_invalid_key PASSED tests/test_settings_overrides.py::test_skbuild_overrides_matched_version_extra PASSED tests/test_settings_overrides.py::test_skbuild_overrides_matched_version_if PASSED tests/test_settings_overrides.py::test_skbuild_overrides_matched_version_if_any PASSED tests/test_settings_overrides.py::test_skbuild_overrides_matched_version_if_any_dual PASSED tests/test_settings_overrides.py::test_skbuild_overrides_matched_version_if_any_match PASSED tests/test_settings_overrides.py::test_skbuild_overrides_no_if PASSED tests/test_settings_overrides.py::test_skbuild_overrides_platnode[matchthat] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_platnode[thismatch] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_pyver[3.10] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_pyver[3.9] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_regex[other] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_regex[x86_32] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_regex[x86_64] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_state[sdist] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_state[wheel] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_unmatched_version PASSED tests/test_settings_overrides.py::test_skbuild_overrides_version[0.10] PASSED tests/test_settings_overrides.py::test_skbuild_overrides_version[0.9] PASSED tests/test_settings_overrides.py::test_system_cmake[3.21] PASSED tests/test_settings_overrides.py::test_system_cmake[3.27] PASSED tests/test_settings_overrides.py::test_wheel_platform[linux] PASSED tests/test_settings_overrides.py::test_wheel_platform[win32] PASSED tests/test_setuptools_abi3.py::test_abi3_wheel PASSED tests/test_setuptools_pep517.py::test_build_editable_threads_config_settings PASSED tests/test_setuptools_pep517.py::test_build_ext_inplace_without_editable_mode[simple_setuptools_ext] PASSED tests/test_setuptools_pep517.py::test_cmake_install_dir_editable[plugin] PASSED tests/test_setuptools_pep517.py::test_cmake_install_dir_editable[wrapper] PASSED tests/test_setuptools_pep517.py::test_cmake_install_dir_editable[wrapper_pkgdir] PASSED tests/test_setuptools_pep517.py::test_cmake_install_dir_wheel[plugin] PASSED tests/test_setuptools_pep517.py::test_cmake_install_dir_wheel[wrapper] PASSED tests/test_setuptools_pep517.py::test_cmake_install_dir_wheel[wrapper_pkgdir] PASSED tests/test_setuptools_pep517.py::test_cmake_install_target_default_is_noop[None] PASSED tests/test_setuptools_pep517.py::test_cmake_install_target_default_is_noop[install] PASSED tests/test_setuptools_pep517.py::test_cmake_install_target_keyword_validates_type PASSED tests/test_setuptools_pep517.py::test_cmake_install_target_maps_to_install_targets PASSED tests/test_setuptools_pep517.py::test_editable_install_dir_honors_per_package_dir PASSED tests/test_setuptools_pep517.py::test_finalize_options_honors_directly_set_editable_mode PASSED tests/test_setuptools_pep517.py::test_get_source_files_empty_when_missing PASSED tests/test_setuptools_pep517.py::test_get_source_files_finds_configured_cmakelists PASSED tests/test_setuptools_pep517.py::test_get_source_files_honors_sdist_include_exclude PASSED tests/test_setuptools_pep517.py::test_get_source_files_requires_explicit_inclusion_mode PASSED tests/test_setuptools_pep517.py::test_load_settings_state PASSED tests/test_setuptools_pep517.py::test_manifest_hook_must_be_callable PASSED tests/test_setuptools_pep517.py::test_manifest_hook_wheel[simple_setuptools_ext] PASSED tests/test_setuptools_pep517.py::test_mixed_wheel[mixed_setuptools] PASSED tests/test_setuptools_pep517.py::test_pep517_editable[simple_setuptools_ext] PASSED tests/test_setuptools_pep517.py::test_pep517_editable_strict[simple_setuptools_ext-dash] PASSED tests/test_setuptools_pep517.py::test_pep517_editable_strict[simple_setuptools_ext-underscore] PASSED tests/test_setuptools_pep517.py::test_pep517_sdist[simple_setuptools_ext] PASSED tests/test_setuptools_pep517.py::test_pep517_wheel[simple_setuptools_ext] PASSED tests/test_setuptools_pep517.py::test_skbuild_configure_and_build_options[plugin] PASSED tests/test_setuptools_pep517.py::test_skbuild_configure_and_build_options[wrapper] PASSED tests/test_setuptools_pep517.py::test_toml_sdist[toml_setuptools_ext] PASSED tests/test_setuptools_pep517.py::test_toml_wheel[toml_setuptools_ext] PASSED tests/test_setuptools_pep517.py::test_validate_settings_allows_single_build_type_list PASSED tests/test_setuptools_pep517.py::test_validate_settings_editable_mode_only_required_for_pep660 PASSED tests/test_setuptools_pep517.py::test_validate_settings_raises_setup_error PASSED tests/test_setuptools_pep517.py::test_validate_settings_rejects_build_type_list PASSED tests/test_setuptools_pep517.py::test_wrapper_classic_layout_wheel[wrapper_setuptools_classic_layout] PASSED tests/test_setuptools_pep517.py::test_wrapper_forwards_manifest_hook PASSED tests/test_setuptools_pep517.py::test_wrapper_setup_raises_setup_error PASSED tests/test_setuptools_pep518.py::test_pep518_pip[simple_setuptools_ext] PASSED tests/test_setuptools_pep518.py::test_pep518_pip_editable[simple_setuptools_ext] PASSED tests/test_setuptools_pep518.py::test_pep518_wheel[simple_setuptools_ext] PASSED tests/test_shutil.py::test_broken_all_permissions PASSED tests/test_simple_pure.py::test_bin_in_config PASSED tests/test_simple_pure.py::test_install PASSED tests/test_simple_pure.py::test_variable_defined PASSED tests/test_simplest_c.py::test_pep517_sdist PASSED tests/test_simplest_c.py::test_pep517_wheel[all] PASSED tests/test_simplest_c.py::test_pep517_wheel[one] PASSED tests/test_simplest_c.py::test_pep517_wheel[two] PASSED tests/test_simplest_c.py::test_pep517_wheel_incexl PASSED tests/test_simplest_c.py::test_pep517_wheel_reproducible PASSED tests/test_skbuild_settings.py::test_auto_cmake_version PASSED tests/test_skbuild_settings.py::test_auto_minimum_version PASSED tests/test_skbuild_settings.py::test_backcompat_cmake_build PASSED tests/test_skbuild_settings.py::test_backcompat_cmake_build_both_specified PASSED tests/test_skbuild_settings.py::test_backcompat_cmake_build_both_specified_static PASSED tests/test_skbuild_settings.py::test_backcompat_cmake_build_env PASSED tests/test_skbuild_settings.py::test_backcompat_cmake_build_targets_both_specified PASSED tests/test_skbuild_settings.py::test_backcompat_sdist_inclusion_mode PASSED tests/test_skbuild_settings.py::test_backcompat_sdist_resolve_symlinks PASSED tests/test_skbuild_settings.py::test_default_auto_cmake_version[0.10] PASSED tests/test_skbuild_settings.py::test_default_auto_cmake_version[0.9] PASSED tests/test_skbuild_settings.py::test_deprecated_field_errors[1.0-cmake.minimum-version = '3.21'] PASSED tests/test_skbuild_settings.py::test_deprecated_field_errors[1.0-cmake.targets = ['a', 'b']] PASSED tests/test_skbuild_settings.py::test_deprecated_field_errors[1.0-cmake.verbose = true] PASSED tests/test_skbuild_settings.py::test_deprecated_field_errors[1.0-ninja.minimum-version = '1.11'] PASSED tests/test_skbuild_settings.py::test_deprecated_field_errors[None-cmake.minimum-version = '3.21'] PASSED tests/test_skbuild_settings.py::test_deprecated_field_errors[None-cmake.targets = ['a', 'b']] PASSED tests/test_skbuild_settings.py::test_deprecated_field_errors[None-cmake.verbose = true] PASSED tests/test_skbuild_settings.py::test_deprecated_field_errors[None-ninja.minimum-version = '1.11'] PASSED tests/test_skbuild_settings.py::test_deprecated_field_old_pin_allowed[cmake.minimum-version = '3.21'-0.7] PASSED tests/test_skbuild_settings.py::test_deprecated_field_old_pin_allowed[cmake.targets = ['a', 'b']-0.9] PASSED tests/test_skbuild_settings.py::test_deprecated_field_old_pin_allowed[cmake.verbose = true-0.9] PASSED tests/test_skbuild_settings.py::test_deprecated_field_old_pin_allowed[ninja.minimum-version = '1.11'-0.7] PASSED tests/test_skbuild_settings.py::test_editable_inplace_rebuild_allowed PASSED tests/test_skbuild_settings.py::test_editable_inplace_rebuild_dir_rejected PASSED tests/test_skbuild_settings.py::test_editable_rebuild_requires_build_dir[editable.rebuild = true] PASSED tests/test_skbuild_settings.py::test_editable_rebuild_requires_build_dir[editable.rebuild-dir = "tree"] PASSED tests/test_skbuild_settings.py::test_env_value_rejects_bad_types[raw0] PASSED tests/test_skbuild_settings.py::test_env_value_rejects_bad_types[raw1] PASSED tests/test_skbuild_settings.py::test_env_value_rejects_bad_types[raw2] PASSED tests/test_skbuild_settings.py::test_env_value_rejects_bad_types[raw3] PASSED tests/test_skbuild_settings.py::test_env_value_rejects_bad_types[raw4] PASSED tests/test_skbuild_settings.py::test_sdist_inclusion_mode_explicit PASSED tests/test_skbuild_settings.py::test_sdist_inclusion_mode_explicit_requires_minimum_version PASSED tests/test_skbuild_settings.py::test_skbuild_override_renamed PASSED tests/test_skbuild_settings.py::test_skbuild_override_renamed_fail PASSED tests/test_skbuild_settings.py::test_skbuild_override_static PASSED tests/test_skbuild_settings.py::test_skbuild_settings_auto_cmake_unparseable PASSED tests/test_skbuild_settings.py::test_skbuild_settings_auto_cmake_warning PASSED tests/test_skbuild_settings.py::test_skbuild_settings_cmake_build_type_envvar PASSED tests/test_skbuild_settings.py::test_skbuild_settings_cmake_build_type_explicit_wins PASSED tests/test_skbuild_settings.py::test_skbuild_settings_cmake_build_type_list PASSED tests/test_skbuild_settings.py::test_skbuild_settings_cmake_build_type_list_config_settings[list] PASSED tests/test_skbuild_settings.py::test_skbuild_settings_cmake_build_type_list_config_settings[single] PASSED tests/test_skbuild_settings.py::test_skbuild_settings_cmake_build_type_list_config_settings[string] PASSED tests/test_skbuild_settings.py::test_skbuild_settings_cmake_build_type_list_envvar PASSED tests/test_skbuild_settings.py::test_skbuild_settings_cmake_build_type_single_envvar PASSED tests/test_skbuild_settings.py::test_skbuild_settings_cmake_define_list PASSED tests/test_skbuild_settings.py::test_skbuild_settings_config_settings[noprefix] PASSED tests/test_skbuild_settings.py::test_skbuild_settings_config_settings[skbuild] PASSED tests/test_skbuild_settings.py::test_skbuild_settings_default PASSED tests/test_skbuild_settings.py::test_skbuild_settings_env_table PASSED tests/test_skbuild_settings.py::test_skbuild_settings_env_table_bad_force_rejected PASSED tests/test_skbuild_settings.py::test_skbuild_settings_envvar PASSED tests/test_skbuild_settings.py::test_skbuild_settings_min_version_defaults_strip PASSED tests/test_skbuild_settings.py::test_skbuild_settings_min_version_versions PASSED tests/test_skbuild_settings.py::test_skbuild_settings_null_variant_conflicts PASSED tests/test_skbuild_settings.py::test_skbuild_settings_pyproject_conf_broken PASSED tests/test_skbuild_settings.py::test_skbuild_settings_pyproject_toml PASSED tests/test_skbuild_settings.py::test_skbuild_settings_pyproject_toml_broken PASSED tests/test_skbuild_settings.py::test_skbuild_settings_pyproject_toml_envvar_defines PASSED tests/test_skbuild_settings.py::test_skbuild_settings_scalar_dict_conf PASSED tests/test_skbuild_settings.py::test_skbuild_settings_variant_requires_experimental PASSED tests/test_skbuild_settings.py::test_skbuild_settings_version_too_old PASSED tests/test_sources_pep604_union.py::TestProcessUnion::test_non_union_passthrough PASSED tests/test_sources_pep604_union.py::TestProcessUnion::test_optional_unwrapped PASSED tests/test_sources_pep604_union.py::TestProcessUnion::test_pep604_optional_unwrapped SKIPPED tests/test_sources_pep604_union.py::TestProcessUnion::test_pep604_union_processed SKIPPED tests/test_sources_pep604_union.py::TestProcessUnion::test_typing_union_processed PASSED tests/test_sources_pep604_union.py::TestUnionTypeDetection::test_non_union_types_rejected PASSED tests/test_sources_pep604_union.py::TestUnionTypeDetection::test_none_not_recognized_as_union PASSED tests/test_sources_pep604_union.py::TestUnionTypeDetection::test_pep604_union_type_recognized SKIPPED tests/test_sources_pep604_union.py::TestUnionTypeDetection::test_typing_union_recognized PASSED tests/test_uv_workspace.py::test_uv_workspace_editable_member SKIPPED tests/test_wheelfile_utils.py::test_reproducible_epoch_non_integer_errors PASSED tests/test_wheelfile_utils.py::test_wheel_metadata PASSED tests/test_wheelfile_utils.py::test_wheel_reproducible_normalizes_generated_metadata PASSED tests/test_wheelfile_utils.py::test_wheel_timestamp_clamps_epoch_beyond_zip_range[False] PASSED tests/test_wheelfile_utils.py::test_wheel_timestamp_clamps_epoch_beyond_zip_range[True] PASSED tests/test_wheelfile_utils.py::test_wheel_timestamp_non_reproducible_non_integer_epoch_errors PASSED tests/test_wheelfile_utils.py::test_wheel_timestamp_non_reproducible_uses_mtime PASSED tests/test_wheelfile_utils.py::test_wheel_timestamp_reproducible_fixed_epoch PASSED tests/test_wheelfile_utils.py::test_wheel_write_normalizes_permissions PASSED tests/test_wheelfile_utils.py::test_wheel_write_permissions_posix PASSED tests/test_wheelfile_utils.py::test_wheel_writer_simple PASSED tests/test_wheelfile_utils.py::test_wheel_writer_variant PASSED tests/test_wheelfile_utils.py::test_wheel_writer_variant_metadata_dir_conflict PASSED =========================== short test summary info ============================ ======== 962 passed, 74 skipped ========