2
0
Fork 0
mirror of https://github.com/bazel-contrib/bazel-lib synced 2024-11-27 17:43:27 +00:00
bazel-lib/lib/tests/write_source_files/BUILD.bazel

243 lines
5.8 KiB
Python

load("//lib/tests/write_source_files:write_source_file_test.bzl", "write_source_file_test")
load("//lib/tests:generate_outputs.bzl", "generate_outputs")
load("//lib:write_source_files.bzl", "write_source_files")
load("//lib/private:write_source_file.bzl", "write_source_file")
load("//lib:copy_to_directory.bzl", "copy_to_directory")
load("//lib:directory_path.bzl", "directory_path")
load("//lib:output_files.bzl", "output_files")
load("//lib:testing.bzl", "assert_outputs")
genrule(
name = "a-desired",
outs = ["a-desired.js"],
cmd = "echo 'console.log(\"a*\");' > $@",
)
generate_outputs(
name = "b_c-desired",
output_contents = [
"""console.log(\"b*\");
""",
"not used!",
],
output_files = [
"b-desired.js",
"c-desired.js",
],
)
assert_outputs(
name = "test_assert_outputs",
actual = "b_c-desired",
expected = [
"lib/tests/write_source_files/b-desired.js",
"lib/tests/write_source_files/c-desired.js",
],
)
output_files(
name = "b-desired",
paths = ["%s/b-desired.js" % package_name()],
target = ":b_c-desired",
)
genrule(
name = "e-contained",
outs = ["e-contained.js"],
cmd = "echo 'console.log(\"e*\");' > $@",
)
copy_to_directory(
name = "e_dir-desired",
srcs = [":e-contained"],
)
copy_to_directory(
name = "es_dir-desired",
srcs = [":e-contained"],
replace_prefixes = {
"e-contained.js": "subdir/e-contained.js",
},
)
genrule(
name = "f-contained",
outs = ["f-contained.js"],
cmd = "echo 'console.log(\"f*\");' > $@",
)
copy_to_directory(
name = "e_f_dir-desired",
srcs = [
":e-contained",
":f-contained",
],
)
directory_path(
name = "f-desired",
directory = ":e_f_dir-desired",
path = "f-contained.js",
)
generate_outputs(
name = "g_h-desired",
output_contents = [
"""console.log(\"g*\");
""",
"not used!",
],
output_files = [
"g-desired.js",
"h-desired.js",
],
output_group = "gh_output_group",
)
output_files(
name = "g-desired",
output_group = "gh_output_group",
paths = ["%s/g-desired.js" % package_name()],
target = ":g_h-desired",
)
write_source_file_test(
name = "a_test",
in_file = ":a-desired",
out_file = "a.js",
)
write_source_file_test(
name = "b_test",
in_file = ":b-desired",
out_file = "b.js",
)
write_source_file(
name = "e_dir_test",
in_file = ":e_dir-desired",
out_file = "e_dir",
# The diff_test that is contained within this macro takes `out_file` which is a source directory
# as an input but source directories are not supported on remote execution so we must tag that
# rule with "no-remote-exec".
# ERROR: cannot compare a directory "lib/tests/write_source_files/e_dir-desired" against a file "lib/tests/write_source_files/e_dir"
tags = ["no-remote-exec"],
)
write_source_file(
name = "es_dir_test",
in_file = ":es_dir-desired",
out_file = "es_dir",
# The diff_test that is contained within this macro takes `out_file` which is a source directory
# as an input but source directories are not supported on remote execution so we must tag that
# rule with "no-remote-exec".
# ERROR: cannot compare a directory "lib/tests/write_source_files/es_dir-desired" against a file "lib/tests/write_source_files/es_dir"
tags = ["no-remote-exec"],
)
write_source_file_test(
name = "f_test",
in_file = ":f-desired",
out_file = "f.js",
)
write_source_file_test(
name = "g_test",
in_file = ":g-desired",
out_file = "g.js",
)
write_source_files(
name = "macro_smoke_test",
additional_update_targets = [
"//lib/tests/write_source_files/subdir:macro_smoke_test",
],
files = {
"a2.js": ":a-desired",
"b2.js": ":b-desired",
"e2_dir": ":e_dir-desired",
"es2_dir": ":es_dir-desired",
"f2.js": ":f-desired",
"g2.js": ":g-desired",
},
# The diff_test that is contained within this macro takes output directories `es_dir` and
# `es2dir` which are source directories as inputs but source directories are not supported on
# remote execution so we must tag that rule with "no-remote-exec".
tags = ["no-remote-exec"],
)
genrule(
name = "dist",
outs = ["dist.js"],
cmd = "echo 'dist' > $@",
)
# See e2e/write_source_files
write_source_files(
name = "write_dist",
diff_test = False,
files = {"dist.js": ":dist"},
)
# See e2e/write_source_files
write_source_files(
name = "write_dist_executable",
diff_test = False,
executable = True,
files = {"dist_executable.js": ":dist"},
)
# Generate a file in nested directories
genrule(
name = "subdir",
outs = ["subdir_test"],
cmd = ";".join([
"mkdir -p $@/a/b/c",
"echo 'test' > $@/a/b/c/test.txt",
]),
)
# Write nested subdirectories to source
# See e2e/write_source_files_subdir_multiple_runs
write_source_files(
name = "write_subdir",
diff_test = False,
files = {"subdir_test": ":subdir"},
)
# Write nested subdirectories to source
# See e2e/write_source_files_subdir_multiple_runs
write_source_files(
name = "write_subdir_executable",
diff_test = False,
executable = True,
files = {"subdir_executable_test": ":subdir"},
)
# Generate some directories including symlinks
genrule(
name = "symlinks",
outs = ["symlink_test"],
cmd = ";".join([
"mkdir -p $@/a $@/b",
"echo 'test' > $@/a/test.txt",
"pushd $@/b",
"ln -s ../a/test.txt",
]),
)
# Write symlinks to source
# See e2e/write_source_files_symlinks
write_source_files(
name = "write_symlinks",
diff_test = False,
files = {"symlink_test": ":symlinks"},
)
write_source_files(
name = "write_from_external_repo",
files = {
"skylib_LICENSE": "@bazel_skylib//:LICENSE",
},
)