blob: cbf5d314792bb2cba55ac4cccbe60ef0c79f7bdf [file] [log] [blame]
"""Tests for owners_layers.bzl"""
load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest")
load(":owners_layers.bzl", "ROOT_UID_GID", "SKIA_UID_GID", "get_fixup_owners_layers")
_OTHER_UID_GID = "5000.5000"
def _simple_test_impl(ctx):
env = unittest.begin(ctx)
dirs = ["/usr/bin"]
owners = {}
layers = get_fixup_owners_layers(dirs, owners)
asserts.equals(env, 1, len(layers))
asserts.equals(env, ROOT_UID_GID, layers[0].owner)
asserts.equals(env, ["/", "/usr", "/usr/bin"], layers[0].paths)
return unittest.end(env)
_simple_test = unittest.make(_simple_test_impl)
def _non_root_user_test_impl(ctx):
env = unittest.begin(ctx)
dirs = ["/usr/bin", "/home/skia/somedir"]
owners = {
"/home/skia": SKIA_UID_GID,
}
layers = get_fixup_owners_layers(dirs, owners)
asserts.equals(env, 2, len(layers))
asserts.equals(env, SKIA_UID_GID, layers[0].owner)
asserts.equals(env, ["/home/skia", "/home/skia/somedir"], layers[0].paths)
asserts.equals(env, ROOT_UID_GID, layers[1].owner)
asserts.equals(env, ["/", "/home", "/usr", "/usr/bin"], layers[1].paths)
return unittest.end(env)
_non_root_user_test = unittest.make(_non_root_user_test_impl)
def _nested_user_test_impl(ctx):
env = unittest.begin(ctx)
dirs = [
"/usr/bin",
"/home/skia/somedir",
"/home/skia/nested/user/dir",
]
owners = {
"/home/skia": SKIA_UID_GID,
"/home/skia/nested/user": _OTHER_UID_GID,
}
layers = get_fixup_owners_layers(dirs, owners)
asserts.equals(env, 3, len(layers))
asserts.equals(env, _OTHER_UID_GID, layers[0].owner)
asserts.equals(env, ["/home/skia/nested/user", "/home/skia/nested/user/dir"], layers[0].paths)
asserts.equals(env, SKIA_UID_GID, layers[1].owner)
asserts.equals(env, ["/home/skia", "/home/skia/nested", "/home/skia/somedir"], layers[1].paths)
asserts.equals(env, ROOT_UID_GID, layers[2].owner)
asserts.equals(env, ["/", "/home", "/usr", "/usr/bin"], layers[2].paths)
return unittest.end(env)
_nested_user_test = unittest.make(_nested_user_test_impl)
def _trailing_slash_test_impl(ctx):
env = unittest.begin(ctx)
dirs = ["/", "/usr/bin/"]
owners = {}
layers = get_fixup_owners_layers(dirs, owners)
asserts.equals(env, 1, len(layers))
asserts.equals(env, ROOT_UID_GID, layers[0].owner)
asserts.equals(env, ["/", "/usr", "/usr/bin"], layers[0].paths)
return unittest.end(env)
_trailing_slash_test = unittest.make(_trailing_slash_test_impl)
def get_fixup_owners_layers_test_suite(name):
unittest.suite(
name,
_simple_test,
_non_root_user_test,
_nested_user_test,
_trailing_slash_test,
)