"""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, )