fn default_lib_name_unix()

in include/pyo3/pyo3-build-config/src/impl_.rs [2674:2763]


    fn default_lib_name_unix() {
        use PythonImplementation::*;
        // Defaults to python3.7m for CPython 3.7
        assert_eq!(
            super::default_lib_name_unix(
                PythonVersion { major: 3, minor: 7 },
                CPython,
                None,
                false
            )
            .unwrap(),
            "python3.7m",
        );
        // Defaults to pythonX.Y for CPython 3.8+
        assert_eq!(
            super::default_lib_name_unix(
                PythonVersion { major: 3, minor: 8 },
                CPython,
                None,
                false
            )
            .unwrap(),
            "python3.8",
        );
        assert_eq!(
            super::default_lib_name_unix(
                PythonVersion { major: 3, minor: 9 },
                CPython,
                None,
                false
            )
            .unwrap(),
            "python3.9",
        );
        // Can use ldversion to override for CPython
        assert_eq!(
            super::default_lib_name_unix(
                PythonVersion { major: 3, minor: 9 },
                CPython,
                Some("3.7md"),
                false
            )
            .unwrap(),
            "python3.7md",
        );

        // PyPy 3.9 includes ldversion
        assert_eq!(
            super::default_lib_name_unix(PythonVersion { major: 3, minor: 9 }, PyPy, None, false)
                .unwrap(),
            "pypy3.9-c",
        );

        assert_eq!(
            super::default_lib_name_unix(
                PythonVersion { major: 3, minor: 9 },
                PyPy,
                Some("3.9d"),
                false
            )
            .unwrap(),
            "pypy3.9d-c",
        );

        // free-threading adds a t suffix
        assert_eq!(
            super::default_lib_name_unix(
                PythonVersion {
                    major: 3,
                    minor: 13
                },
                CPython,
                None,
                true
            )
            .unwrap(),
            "python3.13t",
        );
        // 3.12 and older are incompatible with gil_disabled
        assert!(super::default_lib_name_unix(
            PythonVersion {
                major: 3,
                minor: 12,
            },
            CPython,
            None,
            true,
        )
        .is_err());
    }