69 lines
1.9 KiB
Python
69 lines
1.9 KiB
Python
"tests for run_binary"
|
|
|
|
load("@aspect_bazel_lib//lib:diff_test.bzl", "diff_test")
|
|
load("@bazel_skylib//rules:write_file.bzl", "write_file")
|
|
load("//lib:run_binary.bzl", "run_binary")
|
|
|
|
sh_binary(
|
|
name = "expansions_sh",
|
|
srcs = [":expansions.sh"],
|
|
)
|
|
|
|
write_file(
|
|
name = "gen_src_1",
|
|
out = "src_1",
|
|
content = ["src1"],
|
|
)
|
|
|
|
# target-under-test
|
|
run_binary(
|
|
name = "expansions",
|
|
srcs = [
|
|
":gen_src_1",
|
|
],
|
|
outs = ["expansions_out"],
|
|
args = [
|
|
"$@",
|
|
"$(@D)",
|
|
"$(rootpath :gen_src_1)",
|
|
"$(rootpaths :gen_src_1)",
|
|
"$(execpath :gen_src_1)",
|
|
"$(execpaths :gen_src_1)",
|
|
"$(rlocationpath :gen_src_1)",
|
|
"$(rlocationpaths :gen_src_1)",
|
|
"$(location :gen_src_1)",
|
|
"$(locations :gen_src_1)",
|
|
# Bazel built-in pre-defined variables
|
|
# https://bazel.build/reference/be/make-variables#predefined_variables
|
|
"$(COMPILATION_MODE)",
|
|
"$(BINDIR)",
|
|
"$(GENDIR)",
|
|
"$(TARGET_CPU)",
|
|
# Additional variables handled by aspect_bazel_lib expand_variables
|
|
# used by run_binary
|
|
# https://docs.aspect.build/rules/aspect_bazel_lib/docs/expand_expansions#expand_variables
|
|
"$(BUILD_FILE_PATH)",
|
|
"$(VERSION_FILE)",
|
|
"$(INFO_FILE)",
|
|
"$(TARGET)",
|
|
"$(WORKSPACE)",
|
|
],
|
|
execution_requirements = {
|
|
"no-cache": "1",
|
|
},
|
|
progress_message = "doing some work to make %{output}",
|
|
tool = ":expansions_sh",
|
|
# May introduce non-determinism; use with care!
|
|
# See e.g. https://github.com/bazelbuild/bazel/issues/4912
|
|
use_default_shell_env = True,
|
|
)
|
|
|
|
diff_test(
|
|
name = "expansions_golden_test",
|
|
file1 = ":expansions_out",
|
|
file2 = select({
|
|
"@aspect_bazel_lib//lib:bzlmod": "expansions_golden_bzlmod",
|
|
"//conditions:default": "expansions_golden",
|
|
}),
|
|
)
|