1"""Unit tests for getting the link name of a versioned library.""" 2 3load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest") 4 5# buildifier: disable=bzl-visibility 6load("//rust/private:utils.bzl", "get_lib_name_default", "get_lib_name_for_windows") 7 8def _produced_expected_lib_name_test_impl(ctx): 9 env = unittest.begin(ctx) 10 11 asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.dylib"))) 12 asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.so"))) 13 asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.a"))) 14 asserts.equals(env, "python", get_lib_name_for_windows(struct(basename = "python.dll"))) 15 asserts.equals(env, "python", get_lib_name_for_windows(struct(basename = "python.lib"))) 16 17 asserts.equals(env, "python3", get_lib_name_default(struct(basename = "libpython3.dylib"))) 18 asserts.equals(env, "python3.8", get_lib_name_default(struct(basename = "libpython3.8.dylib"))) 19 asserts.equals(env, "python3", get_lib_name_default(struct(basename = "libpython3.a"))) 20 asserts.equals(env, "python3.8", get_lib_name_default(struct(basename = "libpython3.8.a"))) 21 22 asserts.equals(env, "python38", get_lib_name_for_windows(struct(basename = "python38.dll"))) 23 asserts.equals(env, "python38m", get_lib_name_for_windows(struct(basename = "python38m.dll"))) 24 25 asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.so.3"))) 26 asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.so.3.8"))) 27 asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.so.3.8.0"))) 28 asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.a.3"))) 29 asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.a.3.8"))) 30 asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.a.3.8.0"))) 31 asserts.equals(env, "python-3.8.0", get_lib_name_default(struct(basename = "libpython-3.8.0.so.3.8.0"))) 32 33 return unittest.end(env) 34 35produced_expected_lib_name_test = unittest.make(_produced_expected_lib_name_test_impl) 36 37def versioned_libs_unit_test_suite(name): 38 """Unit tests for getting the link name of a versioned library. 39 40 Args: 41 name: the test suite name 42 """ 43 unittest.suite( 44 name, 45 produced_expected_lib_name_test, 46 ) 47