blob: 1ede046104cade55b9d19d90da24216eb3561a53 [file] [log] [blame]
"""Unit tests for getting the link name of a versioned library."""
load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest")
# buildifier: disable=bzl-visibility
load("//rust/private:utils.bzl", "get_lib_name_default", "get_lib_name_for_windows")
def _produced_expected_lib_name_test_impl(ctx):
env = unittest.begin(ctx)
asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.dylib")))
asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.so")))
asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.a")))
asserts.equals(env, "python", get_lib_name_for_windows(struct(basename = "python.dll")))
asserts.equals(env, "python", get_lib_name_for_windows(struct(basename = "python.lib")))
asserts.equals(env, "python3", get_lib_name_default(struct(basename = "libpython3.dylib")))
asserts.equals(env, "python3.8", get_lib_name_default(struct(basename = "libpython3.8.dylib")))
asserts.equals(env, "python3", get_lib_name_default(struct(basename = "libpython3.a")))
asserts.equals(env, "python3.8", get_lib_name_default(struct(basename = "libpython3.8.a")))
asserts.equals(env, "python38", get_lib_name_for_windows(struct(basename = "python38.dll")))
asserts.equals(env, "python38m", get_lib_name_for_windows(struct(basename = "python38m.dll")))
asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.so.3")))
asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.so.3.8")))
asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.so.3.8.0")))
asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.a.3")))
asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.a.3.8")))
asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.a.3.8.0")))
asserts.equals(env, "python-3.8.0", get_lib_name_default(struct(basename = "libpython-3.8.0.so.3.8.0")))
return unittest.end(env)
produced_expected_lib_name_test = unittest.make(_produced_expected_lib_name_test_impl)
def versioned_libs_unit_test_suite(name):
"""Unit tests for getting the link name of a versioned library.
Args:
name: the test suite name
"""
unittest.suite(
name,
produced_expected_lib_name_test,
)