83 lines
2.1 KiB
Python
83 lines
2.1 KiB
Python
load(
|
|
"@bazel_skylib//lib:unittest.bzl",
|
|
"asserts",
|
|
unit = "unittest",
|
|
)
|
|
load("//haskell:private/actions/link.bzl", "create_rpath_entry", "parent_dir_path")
|
|
load("//haskell:private/list.bzl", "list")
|
|
|
|
def parent_dir_path_test_impl(ctx):
|
|
env = unit.begin(ctx)
|
|
asserts.equals(
|
|
env,
|
|
expected = ctx.attr.output,
|
|
actual = parent_dir_path(ctx.attr.filename),
|
|
)
|
|
unit.end(env)
|
|
|
|
parent_dir_path_test = unit.make(
|
|
parent_dir_path_test_impl,
|
|
attrs = {
|
|
"filename": attr.string(),
|
|
"output": attr.string_list(),
|
|
},
|
|
)
|
|
|
|
def create_rpath_entry_test_impl(ctx):
|
|
env = unit.begin(ctx)
|
|
asserts.equals(
|
|
env,
|
|
expected = ctx.attr.output,
|
|
actual = create_rpath_entry(
|
|
struct(
|
|
short_path = ctx.attr.binary_short_path,
|
|
),
|
|
struct(
|
|
short_path = ctx.attr.dependency_short_path,
|
|
),
|
|
keep_filename = ctx.attr.keep_filename,
|
|
prefix = ctx.attr.prefix,
|
|
),
|
|
)
|
|
unit.end(env)
|
|
|
|
create_rpath_entry_test = unit.make(
|
|
create_rpath_entry_test_impl,
|
|
attrs = {
|
|
"binary_short_path": attr.string(),
|
|
"dependency_short_path": attr.string(),
|
|
"keep_filename": attr.bool(default = False, mandatory = False),
|
|
"prefix": attr.string(default = "", mandatory = False),
|
|
"output": attr.string(),
|
|
},
|
|
)
|
|
|
|
def compare_x(el):
|
|
return el.x
|
|
|
|
def dedup_on_test_impl(ctx):
|
|
env = unit.begin(ctx)
|
|
asserts.equals(
|
|
env,
|
|
expected = [],
|
|
actual = list.dedup_on(compare_x, []),
|
|
)
|
|
asserts.equals(
|
|
env,
|
|
expected = [struct(x = 3)],
|
|
actual = list.dedup_on(
|
|
compare_x,
|
|
[struct(x = 3), struct(x = 3), struct(x = 3)],
|
|
),
|
|
)
|
|
asserts.equals(
|
|
env,
|
|
expected = [struct(x = 3), struct(x = 4), struct(x = 5)],
|
|
actual = list.dedup_on(
|
|
compare_x,
|
|
[struct(x = 3), struct(x = 4), struct(x = 3), struct(x = 5), struct(x = 3)],
|
|
),
|
|
)
|
|
unit.end(env)
|
|
|
|
dedup_on_test = unit.make(dedup_on_test_impl)
|