• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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