diff --git a/test/build_defs/test.build_defs b/test/build_defs/test.build_defs index 5830e3f62..5a7f5a256 100644 --- a/test/build_defs/test.build_defs +++ b/test/build_defs/test.build_defs @@ -3,6 +3,7 @@ def please_repo_e2e_test( name: str, plz_command: str, repo: str, + defer_cmd: list = [], data: dict={}, deps: list=[], tools: dict={}, @@ -12,7 +13,6 @@ def please_repo_e2e_test( expect_output_doesnt_contain: dict = {}, labels: list = [], ): - plz_command = plz_command.replace("plz ", "$TOOLS_PLEASE ") if expected_failure: plz_command += "; [ ! $? -eq 0 ]" @@ -31,7 +31,11 @@ def please_repo_e2e_test( if expect_output_doesnt_contain: test_cmd += [f'_STR="$(cat {o})" _SUBSTR="{c}" && if [ -z "${_STR##*$_SUBSTR*}" ]; then echo "$_STR"; exit 1; fi' for o, c in expect_output_doesnt_contain.items()] + # defer commands should be added last + test_cmd += defer_cmd + test_cmd = ' && '.join(test_cmd) + test_cmd = test_cmd.replace("plz ", "$TOOLS_PLEASE ") data["REPO"] = [repo] data["BASE_CONFIG"] = ["//test/build_defs:base_config"] diff --git a/test/export/BUILD b/test/export/BUILD index c0f7ed5a0..49958941b 100644 --- a/test/export/BUILD +++ b/test/export/BUILD @@ -1,5 +1,124 @@ -subinclude("//test/build_defs") +filegroup( + name = "export_e2e_test_build_def", + srcs = ["please_export_e2e_test.build_defs"], +) + +subinclude(":export_e2e_test_build_def") + +# Export a target generated by a native genrule target and trim unused +# build statements. +please_export_e2e_test( + name = "export_native_genrule", + dir = "test_builtins", + export_targets = ["//:native_genrule"], +) + +# Export a target generated by a custom build def. +please_export_e2e_test( + name = "export_simple_custom_target", + dir = "test_custom_def", + export_targets = ["//:simple_custom_target"], +) + +# Export a target generated by a custom build def defined in the same +# BUILD file. +please_export_e2e_test( + name = "export_custom_target_in_file", + dir = "test_custom_in_file_def", + export_targets = ["//:simple_custom_target"], +) + +# Export a target generated by a custom build def. +please_export_e2e_test( + name = "export_standard_children_custom_target", + cmd_on_export = [ + # Child of build def + "build //:standard_children_custom_target#child", + ], + dir = "test_custom_def_children", + export_targets = ["//:standard_children_custom_target"], +) + +# Export a target that depends on another target. +please_export_e2e_test( + name = "export_deps", + dir = "test_deps", + export_targets = ["//:dep2"], +) + +# Test multiple targets. +please_export_e2e_test( + name = "export_multiple_targets", + dir = "test_multiple_targets", + export_targets = [ + "//:target1", + "//:target2", + ], +) + +# Export a target from a repo that preloads a build def. +# This test purposely doesn't use the custom def but checks that the source files are still included. +please_export_e2e_test( + name = "export_preload_genrule", + dir = "test_preload", + export_targets = ["//:native_target"], +) + +# Export a custom target from a repo that preloads the build def used. +please_export_e2e_test( + name = "export_preload_use_preloaded_def", + dir = "test_use_preloaded", + export_targets = ["//:use_preloaded_def"], +) + +# # Test go binary target. +please_export_e2e_test( + name = "export_go_binary", + dir = "test_go_binary", + export_targets = ["//pkg:go_bin"], + include_go = True, +) + +# Test native target with go third_party dependency. +please_export_e2e_test( + name = "export_native_target_with_go_dep", + dir = "test_native_target_with_go_dep", + export_targets = ["//:genrule_go_dep"], + include_go = True, +) + +# Test go target with go third_party dependency. +please_export_e2e_test( + name = "export_go_target_with_go_dep", + dir = "test_go_bin_with_go_dep", + export_targets = ["//:bin_go_dep"], + include_go = True, +) + +# Test outputs export. +please_repo_e2e_test( + name = "export_outputs", + defer_cmd = [ + 'test -f "plz-out/plzexport/some_output.txt"', + 'test ! -f "plz-out/plzexport/BUILD_FILE"', + ], + plz_command = "plz export outputs --output plz-out/plzexport //:out_target", + repo = "test_outputs", +) + +# Test --notrim flag. +please_repo_e2e_test( + name = "export_notrim", + defer_cmd = [ + 'test -f "plz-out/plzexport/file2.txt"', + 'test -f "plz-out/plzexport/BUILD_FILE"', + 'grep -q \'name = "unrelated"\' "plz-out/plzexport/BUILD_FILE"', + ], + plz_command = "plz export --notrim --output plz-out/plzexport //:target1", + repo = "test_notrim", +) +# Generic catch-all test on internal repo. plz_e2e_test( name = "export_src_please_test", cmd = "plz export --output plz-out/plzexport //src/core && plz --repo_root=$(plz query reporoot)/plz-out/plzexport build //src/core", diff --git a/test/export/please_export_e2e_test.build_defs b/test/export/please_export_e2e_test.build_defs new file mode 100644 index 000000000..c266a0482 --- /dev/null +++ b/test/export/please_export_e2e_test.build_defs @@ -0,0 +1,66 @@ +subinclude("//test/build_defs:build_defs") + +def please_export_e2e_test( + name:str, + dir:str, + export_targets:list, + cmd_on_export:list=[], + include_go:bool=False): + """ + Runs an export e2e test. To use it, create a directory with both a `test_repo` with the targets + to be exported and an `expected_repo` with the expected resulting files. + The validation steps for the e2e test are: + * It performs a repo-wide diff between the exported files and the `expected_repo` + * Builds the exported target to ensure the exported repo, and consequently the + `expected_repo`, include valid sources and dependencies to build the target. + * Optionally you can specify additional commands to run on the exported directory by + passing them to `cmd_on_export`. + + Args: + name (str): Name of the test. + dir (str): A relative path to the directory containing `test_repo` and `expected_repo`. + export_targets (list): Targets to export as part of the test. + cmd_on_export (list): Optional. Additional commands to run on the exported directory. + include_go (bool): Optional. A flag to include Go dependencies in the e2e test. Use when + testing repos that include Go targets. + """ + EXPORT_DIR = "plz-out/plzexport" + test_repo = f"{dir}/test_repo" + expected_repo = f"{dir}/expected_repo" + exported_repo = f"$DATA_TEST_REPO/{EXPORT_DIR}" + data = {} + tools = {} + + targets = " ".join(export_targets) + + config_override = "" + if include_go: + config_override += "-o plugin.go.gotool:$TOOLS_GO" + tools["GO"] = [CONFIG.GO.GO_TOOL] + + test_cmd = [ + # Export + f'plz {config_override} --repo_root="$DATA_TEST_REPO" export --output "{EXPORT_DIR}" {targets}', + # Golden-Master validation with expected repo. Done before any building to avoid plz-out + f'diff -r "{exported_repo}" "$DATA_EXPECTED_REPO"', + # Tests building the exported target which in turn ensures the sources are included + f'plz {config_override} --repo_root="{exported_repo}" build {targets}', + ] + [f'plz {config_override} --repo_root="{exported_repo}" {cmd}' for cmd in cmd_on_export] + + test_cmd = [cmd.replace("plz ", "$TOOLS_PLEASE ") for cmd in test_cmd] + test_cmd = " && ".join(test_cmd) + + data["TEST_REPO"] = [test_repo] + data["EXPECTED_REPO"] = [expected_repo] + + tools["PLEASE"] = ["//package:installed_files|please"] + + return gentest( + name = name, + data = data, + labels = ["plz_e2e_test", "e2e"], + no_test_output = True, + sandbox = False, + test_cmd = test_cmd, + test_tools = tools, + ) diff --git a/test/export/test_builtins/expected_repo/.plzconfig b/test/export/test_builtins/expected_repo/.plzconfig new file mode 100644 index 000000000..8e1ae5655 --- /dev/null +++ b/test/export/test_builtins/expected_repo/.plzconfig @@ -0,0 +1,3 @@ +[Parse] + +BuildFileName = BUILD_FILE diff --git a/test/export/test_builtins/expected_repo/BUILD_FILE b/test/export/test_builtins/expected_repo/BUILD_FILE new file mode 100644 index 000000000..a62a98a8d --- /dev/null +++ b/test/export/test_builtins/expected_repo/BUILD_FILE @@ -0,0 +1,6 @@ +genrule( + name = "native_genrule", + srcs = ["file.txt"], + outs = ["file.wordcount"], + cmd = "wc $SRCS > $OUT", +) diff --git a/test/export/test_builtins/expected_repo/file.txt b/test/export/test_builtins/expected_repo/file.txt new file mode 100644 index 000000000..9768ee14c --- /dev/null +++ b/test/export/test_builtins/expected_repo/file.txt @@ -0,0 +1 @@ +Test source file diff --git a/test/export/test_builtins/test_repo/.plzconfig b/test/export/test_builtins/test_repo/.plzconfig new file mode 100644 index 000000000..8e1ae5655 --- /dev/null +++ b/test/export/test_builtins/test_repo/.plzconfig @@ -0,0 +1,3 @@ +[Parse] + +BuildFileName = BUILD_FILE diff --git a/test/export/test_builtins/test_repo/BUILD_FILE b/test/export/test_builtins/test_repo/BUILD_FILE new file mode 100644 index 000000000..db7732c48 --- /dev/null +++ b/test/export/test_builtins/test_repo/BUILD_FILE @@ -0,0 +1,13 @@ +genrule( + name = "native_genrule", + srcs = ["file.txt"], + outs = ["file.wordcount"], + cmd = "wc $SRCS > $OUT", +) + +genrule( + name = "dummy_target_to_be_trimmed", + srcs = ["dummy.txt"], + outs = ["dummy"], + cmd = "cat $SRCS > $OUT", +) diff --git a/test/export/test_builtins/test_repo/dummy.txt b/test/export/test_builtins/test_repo/dummy.txt new file mode 100644 index 000000000..e69de29bb diff --git a/test/export/test_builtins/test_repo/file.txt b/test/export/test_builtins/test_repo/file.txt new file mode 100644 index 000000000..9768ee14c --- /dev/null +++ b/test/export/test_builtins/test_repo/file.txt @@ -0,0 +1 @@ +Test source file diff --git a/test/export/test_custom_def/expected_repo/.plzconfig b/test/export/test_custom_def/expected_repo/.plzconfig new file mode 100644 index 000000000..8e1ae5655 --- /dev/null +++ b/test/export/test_custom_def/expected_repo/.plzconfig @@ -0,0 +1,3 @@ +[Parse] + +BuildFileName = BUILD_FILE diff --git a/test/export/test_custom_def/expected_repo/BUILD_FILE b/test/export/test_custom_def/expected_repo/BUILD_FILE new file mode 100644 index 000000000..261729adc --- /dev/null +++ b/test/export/test_custom_def/expected_repo/BUILD_FILE @@ -0,0 +1,7 @@ +subinclude("//build_defs:simple_build_def") + +simple_custom_target( + name = "simple_custom_target", + srcs = ["file.txt"], + outs = ["file_simple.out"], +) diff --git a/test/export/test_custom_def/expected_repo/build_defs/BUILD_FILE b/test/export/test_custom_def/expected_repo/build_defs/BUILD_FILE new file mode 100644 index 000000000..a556ce6d4 --- /dev/null +++ b/test/export/test_custom_def/expected_repo/build_defs/BUILD_FILE @@ -0,0 +1,5 @@ +filegroup( + name = "simple_build_def", + srcs = ["simple.build_defs"], + visibility = ["PUBLIC"], +) diff --git a/test/export/test_custom_def/expected_repo/build_defs/simple.build_defs b/test/export/test_custom_def/expected_repo/build_defs/simple.build_defs new file mode 100644 index 000000000..8fe3a6021 --- /dev/null +++ b/test/export/test_custom_def/expected_repo/build_defs/simple.build_defs @@ -0,0 +1,10 @@ +def simple_custom_target( + name:str, + srcs:list=[], + outs:list=[]): + return genrule( + name = name, + srcs = srcs, + outs = outs, + cmd = "cat $SRCS > $OUT", + ) diff --git a/test/export/test_custom_def/expected_repo/file.txt b/test/export/test_custom_def/expected_repo/file.txt new file mode 100644 index 000000000..9768ee14c --- /dev/null +++ b/test/export/test_custom_def/expected_repo/file.txt @@ -0,0 +1 @@ +Test source file diff --git a/test/export/test_custom_def/test_repo/.plzconfig b/test/export/test_custom_def/test_repo/.plzconfig new file mode 100644 index 000000000..8e1ae5655 --- /dev/null +++ b/test/export/test_custom_def/test_repo/.plzconfig @@ -0,0 +1,3 @@ +[Parse] + +BuildFileName = BUILD_FILE diff --git a/test/export/test_custom_def/test_repo/BUILD_FILE b/test/export/test_custom_def/test_repo/BUILD_FILE new file mode 100644 index 000000000..261729adc --- /dev/null +++ b/test/export/test_custom_def/test_repo/BUILD_FILE @@ -0,0 +1,7 @@ +subinclude("//build_defs:simple_build_def") + +simple_custom_target( + name = "simple_custom_target", + srcs = ["file.txt"], + outs = ["file_simple.out"], +) diff --git a/test/export/test_custom_def/test_repo/build_defs/BUILD_FILE b/test/export/test_custom_def/test_repo/build_defs/BUILD_FILE new file mode 100644 index 000000000..a556ce6d4 --- /dev/null +++ b/test/export/test_custom_def/test_repo/build_defs/BUILD_FILE @@ -0,0 +1,5 @@ +filegroup( + name = "simple_build_def", + srcs = ["simple.build_defs"], + visibility = ["PUBLIC"], +) diff --git a/test/export/test_custom_def/test_repo/build_defs/dummy.build_defs b/test/export/test_custom_def/test_repo/build_defs/dummy.build_defs new file mode 100644 index 000000000..2e9198492 --- /dev/null +++ b/test/export/test_custom_def/test_repo/build_defs/dummy.build_defs @@ -0,0 +1,10 @@ +def dummy_target( + name:str, + srcs:list=[], + outs:list=[]): + return genrule( + name = name, + srcs = srcs, + outs = outs, + cmd = "echo dummy > $OUT", + ) diff --git a/test/export/test_custom_def/test_repo/build_defs/simple.build_defs b/test/export/test_custom_def/test_repo/build_defs/simple.build_defs new file mode 100644 index 000000000..8fe3a6021 --- /dev/null +++ b/test/export/test_custom_def/test_repo/build_defs/simple.build_defs @@ -0,0 +1,10 @@ +def simple_custom_target( + name:str, + srcs:list=[], + outs:list=[]): + return genrule( + name = name, + srcs = srcs, + outs = outs, + cmd = "cat $SRCS > $OUT", + ) diff --git a/test/export/test_custom_def/test_repo/file.txt b/test/export/test_custom_def/test_repo/file.txt new file mode 100644 index 000000000..9768ee14c --- /dev/null +++ b/test/export/test_custom_def/test_repo/file.txt @@ -0,0 +1 @@ +Test source file diff --git a/test/export/test_custom_def_children/expected_repo/.plzconfig b/test/export/test_custom_def_children/expected_repo/.plzconfig new file mode 100644 index 000000000..8e1ae5655 --- /dev/null +++ b/test/export/test_custom_def_children/expected_repo/.plzconfig @@ -0,0 +1,3 @@ +[Parse] + +BuildFileName = BUILD_FILE diff --git a/test/export/test_custom_def_children/expected_repo/BUILD_FILE b/test/export/test_custom_def_children/expected_repo/BUILD_FILE new file mode 100644 index 000000000..6c99c406d --- /dev/null +++ b/test/export/test_custom_def_children/expected_repo/BUILD_FILE @@ -0,0 +1,8 @@ +subinclude("//build_defs:standard_children_build_def") + +standard_children_custom_target( + name = "standard_children_custom_target", + srcs = ["file.txt"], + outs = ["file_standard.out"], + outs_child = ["file_child.out"], +) diff --git a/test/export/test_custom_def_children/expected_repo/build_defs/BUILD_FILE b/test/export/test_custom_def_children/expected_repo/build_defs/BUILD_FILE new file mode 100644 index 000000000..00eed0f0b --- /dev/null +++ b/test/export/test_custom_def_children/expected_repo/build_defs/BUILD_FILE @@ -0,0 +1,5 @@ +filegroup( + name = "standard_children_build_def", + srcs = ["standard_children.build_defs"], + visibility = ["PUBLIC"], +) diff --git a/test/export/test_custom_def_children/expected_repo/build_defs/standard_children.build_defs b/test/export/test_custom_def_children/expected_repo/build_defs/standard_children.build_defs new file mode 100644 index 000000000..081154550 --- /dev/null +++ b/test/export/test_custom_def_children/expected_repo/build_defs/standard_children.build_defs @@ -0,0 +1,17 @@ +def standard_children_custom_target( + name:str, + srcs:list=[], + outs:list=[], + outs_child:list=[]): + genrule( + name = f"{name}#child", + srcs = srcs, + outs = outs_child, + cmd = "echo 'child' > $OUT && cat $SRCS >> $OUT ", + ) + return genrule( + name = name, + srcs = srcs, + outs = outs, + cmd = "echo 'main' > $OUT && cat $SRCS >> $OUT ", + ) diff --git a/test/export/test_custom_def_children/expected_repo/file.txt b/test/export/test_custom_def_children/expected_repo/file.txt new file mode 100644 index 000000000..9768ee14c --- /dev/null +++ b/test/export/test_custom_def_children/expected_repo/file.txt @@ -0,0 +1 @@ +Test source file diff --git a/test/export/test_custom_def_children/test_repo/.plzconfig b/test/export/test_custom_def_children/test_repo/.plzconfig new file mode 100644 index 000000000..8e1ae5655 --- /dev/null +++ b/test/export/test_custom_def_children/test_repo/.plzconfig @@ -0,0 +1,3 @@ +[Parse] + +BuildFileName = BUILD_FILE diff --git a/test/export/test_custom_def_children/test_repo/BUILD_FILE b/test/export/test_custom_def_children/test_repo/BUILD_FILE new file mode 100644 index 000000000..6c99c406d --- /dev/null +++ b/test/export/test_custom_def_children/test_repo/BUILD_FILE @@ -0,0 +1,8 @@ +subinclude("//build_defs:standard_children_build_def") + +standard_children_custom_target( + name = "standard_children_custom_target", + srcs = ["file.txt"], + outs = ["file_standard.out"], + outs_child = ["file_child.out"], +) diff --git a/test/export/test_custom_def_children/test_repo/build_defs/BUILD_FILE b/test/export/test_custom_def_children/test_repo/build_defs/BUILD_FILE new file mode 100644 index 000000000..00eed0f0b --- /dev/null +++ b/test/export/test_custom_def_children/test_repo/build_defs/BUILD_FILE @@ -0,0 +1,5 @@ +filegroup( + name = "standard_children_build_def", + srcs = ["standard_children.build_defs"], + visibility = ["PUBLIC"], +) diff --git a/test/export/test_custom_def_children/test_repo/build_defs/standard_children.build_defs b/test/export/test_custom_def_children/test_repo/build_defs/standard_children.build_defs new file mode 100644 index 000000000..081154550 --- /dev/null +++ b/test/export/test_custom_def_children/test_repo/build_defs/standard_children.build_defs @@ -0,0 +1,17 @@ +def standard_children_custom_target( + name:str, + srcs:list=[], + outs:list=[], + outs_child:list=[]): + genrule( + name = f"{name}#child", + srcs = srcs, + outs = outs_child, + cmd = "echo 'child' > $OUT && cat $SRCS >> $OUT ", + ) + return genrule( + name = name, + srcs = srcs, + outs = outs, + cmd = "echo 'main' > $OUT && cat $SRCS >> $OUT ", + ) diff --git a/test/export/test_custom_def_children/test_repo/file.txt b/test/export/test_custom_def_children/test_repo/file.txt new file mode 100644 index 000000000..9768ee14c --- /dev/null +++ b/test/export/test_custom_def_children/test_repo/file.txt @@ -0,0 +1 @@ +Test source file diff --git a/test/export/test_custom_in_file_def/expected_repo/.plzconfig b/test/export/test_custom_in_file_def/expected_repo/.plzconfig new file mode 100644 index 000000000..8e1ae5655 --- /dev/null +++ b/test/export/test_custom_in_file_def/expected_repo/.plzconfig @@ -0,0 +1,3 @@ +[Parse] + +BuildFileName = BUILD_FILE diff --git a/test/export/test_custom_in_file_def/expected_repo/BUILD_FILE b/test/export/test_custom_in_file_def/expected_repo/BUILD_FILE new file mode 100644 index 000000000..699b589aa --- /dev/null +++ b/test/export/test_custom_in_file_def/expected_repo/BUILD_FILE @@ -0,0 +1,13 @@ +filegroup( + name = "simple_build_def", + srcs = ["simple.build_defs"], + visibility = ["//test_custom_defs/..."], +) + +subinclude(":simple_build_def") + +simple_custom_target( + name = "simple_custom_target", + srcs = ["file.txt"], + outs = ["file_simple.out"], +) diff --git a/test/export/test_custom_in_file_def/expected_repo/file.txt b/test/export/test_custom_in_file_def/expected_repo/file.txt new file mode 100644 index 000000000..9768ee14c --- /dev/null +++ b/test/export/test_custom_in_file_def/expected_repo/file.txt @@ -0,0 +1 @@ +Test source file diff --git a/test/export/test_custom_in_file_def/expected_repo/simple.build_defs b/test/export/test_custom_in_file_def/expected_repo/simple.build_defs new file mode 100644 index 000000000..8fe3a6021 --- /dev/null +++ b/test/export/test_custom_in_file_def/expected_repo/simple.build_defs @@ -0,0 +1,10 @@ +def simple_custom_target( + name:str, + srcs:list=[], + outs:list=[]): + return genrule( + name = name, + srcs = srcs, + outs = outs, + cmd = "cat $SRCS > $OUT", + ) diff --git a/test/export/test_custom_in_file_def/test_repo/.plzconfig b/test/export/test_custom_in_file_def/test_repo/.plzconfig new file mode 100644 index 000000000..8e1ae5655 --- /dev/null +++ b/test/export/test_custom_in_file_def/test_repo/.plzconfig @@ -0,0 +1,3 @@ +[Parse] + +BuildFileName = BUILD_FILE diff --git a/test/export/test_custom_in_file_def/test_repo/BUILD_FILE b/test/export/test_custom_in_file_def/test_repo/BUILD_FILE new file mode 100644 index 000000000..699b589aa --- /dev/null +++ b/test/export/test_custom_in_file_def/test_repo/BUILD_FILE @@ -0,0 +1,13 @@ +filegroup( + name = "simple_build_def", + srcs = ["simple.build_defs"], + visibility = ["//test_custom_defs/..."], +) + +subinclude(":simple_build_def") + +simple_custom_target( + name = "simple_custom_target", + srcs = ["file.txt"], + outs = ["file_simple.out"], +) diff --git a/test/export/test_custom_in_file_def/test_repo/file.txt b/test/export/test_custom_in_file_def/test_repo/file.txt new file mode 100644 index 000000000..9768ee14c --- /dev/null +++ b/test/export/test_custom_in_file_def/test_repo/file.txt @@ -0,0 +1 @@ +Test source file diff --git a/test/export/test_custom_in_file_def/test_repo/simple.build_defs b/test/export/test_custom_in_file_def/test_repo/simple.build_defs new file mode 100644 index 000000000..8fe3a6021 --- /dev/null +++ b/test/export/test_custom_in_file_def/test_repo/simple.build_defs @@ -0,0 +1,10 @@ +def simple_custom_target( + name:str, + srcs:list=[], + outs:list=[]): + return genrule( + name = name, + srcs = srcs, + outs = outs, + cmd = "cat $SRCS > $OUT", + ) diff --git a/test/export/test_deps/expected_repo/.plzconfig b/test/export/test_deps/expected_repo/.plzconfig new file mode 100644 index 000000000..8e1ae5655 --- /dev/null +++ b/test/export/test_deps/expected_repo/.plzconfig @@ -0,0 +1,3 @@ +[Parse] + +BuildFileName = BUILD_FILE diff --git a/test/export/test_deps/expected_repo/BUILD_FILE b/test/export/test_deps/expected_repo/BUILD_FILE new file mode 100644 index 000000000..453e9ba00 --- /dev/null +++ b/test/export/test_deps/expected_repo/BUILD_FILE @@ -0,0 +1,17 @@ +genrule( + name = "dep1", + srcs = ["file1.txt"], + outs = ["out1.txt"], + cmd = "cat $SRCS > $OUT", +) + +genrule( + name = "dep2", + srcs = [ + "file2.txt", + ":dep1", + "//other_deps:other_target", + ], + outs = ["out2.txt"], + cmd = "cat $SRCS > $OUT", +) diff --git a/test/export/test_deps/expected_repo/file1.txt b/test/export/test_deps/expected_repo/file1.txt new file mode 100644 index 000000000..e2129701f --- /dev/null +++ b/test/export/test_deps/expected_repo/file1.txt @@ -0,0 +1 @@ +file1 diff --git a/test/export/test_deps/expected_repo/file2.txt b/test/export/test_deps/expected_repo/file2.txt new file mode 100644 index 000000000..6c493ff74 --- /dev/null +++ b/test/export/test_deps/expected_repo/file2.txt @@ -0,0 +1 @@ +file2 diff --git a/test/export/test_deps/expected_repo/other_deps/BUILD_FILE b/test/export/test_deps/expected_repo/other_deps/BUILD_FILE new file mode 100644 index 000000000..72a20cf25 --- /dev/null +++ b/test/export/test_deps/expected_repo/other_deps/BUILD_FILE @@ -0,0 +1,6 @@ +genrule( + name = "other_target", + outs = ["other.txt"], + cmd = "echo 'other' > $OUT", + visibility = ["PUBLIC"], +) diff --git a/test/export/test_deps/test_repo/.plzconfig b/test/export/test_deps/test_repo/.plzconfig new file mode 100644 index 000000000..8e1ae5655 --- /dev/null +++ b/test/export/test_deps/test_repo/.plzconfig @@ -0,0 +1,3 @@ +[Parse] + +BuildFileName = BUILD_FILE diff --git a/test/export/test_deps/test_repo/BUILD_FILE b/test/export/test_deps/test_repo/BUILD_FILE new file mode 100644 index 000000000..453e9ba00 --- /dev/null +++ b/test/export/test_deps/test_repo/BUILD_FILE @@ -0,0 +1,17 @@ +genrule( + name = "dep1", + srcs = ["file1.txt"], + outs = ["out1.txt"], + cmd = "cat $SRCS > $OUT", +) + +genrule( + name = "dep2", + srcs = [ + "file2.txt", + ":dep1", + "//other_deps:other_target", + ], + outs = ["out2.txt"], + cmd = "cat $SRCS > $OUT", +) diff --git a/test/export/test_deps/test_repo/file1.txt b/test/export/test_deps/test_repo/file1.txt new file mode 100644 index 000000000..e2129701f --- /dev/null +++ b/test/export/test_deps/test_repo/file1.txt @@ -0,0 +1 @@ +file1 diff --git a/test/export/test_deps/test_repo/file2.txt b/test/export/test_deps/test_repo/file2.txt new file mode 100644 index 000000000..6c493ff74 --- /dev/null +++ b/test/export/test_deps/test_repo/file2.txt @@ -0,0 +1 @@ +file2 diff --git a/test/export/test_deps/test_repo/other_deps/BUILD_FILE b/test/export/test_deps/test_repo/other_deps/BUILD_FILE new file mode 100644 index 000000000..72a20cf25 --- /dev/null +++ b/test/export/test_deps/test_repo/other_deps/BUILD_FILE @@ -0,0 +1,6 @@ +genrule( + name = "other_target", + outs = ["other.txt"], + cmd = "echo 'other' > $OUT", + visibility = ["PUBLIC"], +) diff --git a/test/export/test_go_bin_with_go_dep/expected_repo/.plzconfig b/test/export/test_go_bin_with_go_dep/expected_repo/.plzconfig new file mode 100644 index 000000000..89210b615 --- /dev/null +++ b/test/export/test_go_bin_with_go_dep/expected_repo/.plzconfig @@ -0,0 +1,7 @@ +[Parse] +BuildFileName = BUILD # required by subrepos +BuildFileName = BUILD_FILE + +[Plugin "go"] +Target = //plugins:go +stdlib = //third_party/go:std diff --git a/test/export/test_go_bin_with_go_dep/expected_repo/BUILD_FILE b/test/export/test_go_bin_with_go_dep/expected_repo/BUILD_FILE new file mode 100644 index 000000000..d0d1a145c --- /dev/null +++ b/test/export/test_go_bin_with_go_dep/expected_repo/BUILD_FILE @@ -0,0 +1,9 @@ +subinclude("///go//build_defs:go") + +go_binary( + name = "bin_go_dep", + srcs = ["main.go"], + deps = [ + "///third_party/go/github.com_google_go-cmp//cmp", + ], +) diff --git a/test/export/test_go_bin_with_go_dep/expected_repo/main.go b/test/export/test_go_bin_with_go_dep/expected_repo/main.go new file mode 100644 index 000000000..0853120a2 --- /dev/null +++ b/test/export/test_go_bin_with_go_dep/expected_repo/main.go @@ -0,0 +1,11 @@ +package main + +import ( + "fmt" + + "github.com/google/go-cmp/cmp" +) + +func main() { + fmt.Print(cmp.Equal(1, 1)) +} diff --git a/test/export/test_go_bin_with_go_dep/expected_repo/plugins/BUILD_FILE b/test/export/test_go_bin_with_go_dep/expected_repo/plugins/BUILD_FILE new file mode 100644 index 000000000..d8a4b2e66 --- /dev/null +++ b/test/export/test_go_bin_with_go_dep/expected_repo/plugins/BUILD_FILE @@ -0,0 +1,5 @@ +plugin_repo( + name = "go", + plugin = "go-rules", + revision = "v1.21.5", +) diff --git a/test/export/test_go_bin_with_go_dep/expected_repo/third_party/go/BUILD_FILE b/test/export/test_go_bin_with_go_dep/expected_repo/third_party/go/BUILD_FILE new file mode 100644 index 000000000..0af523288 --- /dev/null +++ b/test/export/test_go_bin_with_go_dep/expected_repo/third_party/go/BUILD_FILE @@ -0,0 +1,12 @@ +subinclude("///go//build_defs:go") + +package(default_visibility = ["PUBLIC"]) + +go_stdlib( + name = "std", +) + +go_repo( + module = "github.com/google/go-cmp", + version = "v0.5.6", +) diff --git a/test/export/test_go_bin_with_go_dep/test_repo/.plzconfig b/test/export/test_go_bin_with_go_dep/test_repo/.plzconfig new file mode 100644 index 000000000..89210b615 --- /dev/null +++ b/test/export/test_go_bin_with_go_dep/test_repo/.plzconfig @@ -0,0 +1,7 @@ +[Parse] +BuildFileName = BUILD # required by subrepos +BuildFileName = BUILD_FILE + +[Plugin "go"] +Target = //plugins:go +stdlib = //third_party/go:std diff --git a/test/export/test_go_bin_with_go_dep/test_repo/BUILD_FILE b/test/export/test_go_bin_with_go_dep/test_repo/BUILD_FILE new file mode 100644 index 000000000..d0d1a145c --- /dev/null +++ b/test/export/test_go_bin_with_go_dep/test_repo/BUILD_FILE @@ -0,0 +1,9 @@ +subinclude("///go//build_defs:go") + +go_binary( + name = "bin_go_dep", + srcs = ["main.go"], + deps = [ + "///third_party/go/github.com_google_go-cmp//cmp", + ], +) diff --git a/test/export/test_go_bin_with_go_dep/test_repo/main.go b/test/export/test_go_bin_with_go_dep/test_repo/main.go new file mode 100644 index 000000000..0853120a2 --- /dev/null +++ b/test/export/test_go_bin_with_go_dep/test_repo/main.go @@ -0,0 +1,11 @@ +package main + +import ( + "fmt" + + "github.com/google/go-cmp/cmp" +) + +func main() { + fmt.Print(cmp.Equal(1, 1)) +} diff --git a/test/export/test_go_bin_with_go_dep/test_repo/plugins/BUILD_FILE b/test/export/test_go_bin_with_go_dep/test_repo/plugins/BUILD_FILE new file mode 100644 index 000000000..d8a4b2e66 --- /dev/null +++ b/test/export/test_go_bin_with_go_dep/test_repo/plugins/BUILD_FILE @@ -0,0 +1,5 @@ +plugin_repo( + name = "go", + plugin = "go-rules", + revision = "v1.21.5", +) diff --git a/test/export/test_go_bin_with_go_dep/test_repo/third_party/go/BUILD_FILE b/test/export/test_go_bin_with_go_dep/test_repo/third_party/go/BUILD_FILE new file mode 100644 index 000000000..0af523288 --- /dev/null +++ b/test/export/test_go_bin_with_go_dep/test_repo/third_party/go/BUILD_FILE @@ -0,0 +1,12 @@ +subinclude("///go//build_defs:go") + +package(default_visibility = ["PUBLIC"]) + +go_stdlib( + name = "std", +) + +go_repo( + module = "github.com/google/go-cmp", + version = "v0.5.6", +) diff --git a/test/export/test_go_binary/expected_repo/.plzconfig b/test/export/test_go_binary/expected_repo/.plzconfig new file mode 100644 index 000000000..89210b615 --- /dev/null +++ b/test/export/test_go_binary/expected_repo/.plzconfig @@ -0,0 +1,7 @@ +[Parse] +BuildFileName = BUILD # required by subrepos +BuildFileName = BUILD_FILE + +[Plugin "go"] +Target = //plugins:go +stdlib = //third_party/go:std diff --git a/test/export/test_go_binary/expected_repo/pkg/BUILD_FILE b/test/export/test_go_binary/expected_repo/pkg/BUILD_FILE new file mode 100644 index 000000000..85165ce64 --- /dev/null +++ b/test/export/test_go_binary/expected_repo/pkg/BUILD_FILE @@ -0,0 +1,6 @@ +subinclude("///go//build_defs:go") + +go_binary( + name = "go_bin", + srcs = ["main.go"], +) diff --git a/test/export/test_go_binary/expected_repo/pkg/main.go b/test/export/test_go_binary/expected_repo/pkg/main.go new file mode 100644 index 000000000..155420a26 --- /dev/null +++ b/test/export/test_go_binary/expected_repo/pkg/main.go @@ -0,0 +1,7 @@ +package main + +import "fmt" + +func main() { + fmt.Print("Woop Woop") +} diff --git a/test/export/test_go_binary/expected_repo/plugins/BUILD_FILE b/test/export/test_go_binary/expected_repo/plugins/BUILD_FILE new file mode 100644 index 000000000..d8a4b2e66 --- /dev/null +++ b/test/export/test_go_binary/expected_repo/plugins/BUILD_FILE @@ -0,0 +1,5 @@ +plugin_repo( + name = "go", + plugin = "go-rules", + revision = "v1.21.5", +) diff --git a/test/export/test_go_binary/expected_repo/third_party/go/BUILD_FILE b/test/export/test_go_binary/expected_repo/third_party/go/BUILD_FILE new file mode 100644 index 000000000..3263e5ba4 --- /dev/null +++ b/test/export/test_go_binary/expected_repo/third_party/go/BUILD_FILE @@ -0,0 +1,7 @@ +subinclude("///go//build_defs:go") + +package(default_visibility = ["PUBLIC"]) + +go_stdlib( + name = "std", +) diff --git a/test/export/test_go_binary/test_repo/.plzconfig b/test/export/test_go_binary/test_repo/.plzconfig new file mode 100644 index 000000000..89210b615 --- /dev/null +++ b/test/export/test_go_binary/test_repo/.plzconfig @@ -0,0 +1,7 @@ +[Parse] +BuildFileName = BUILD # required by subrepos +BuildFileName = BUILD_FILE + +[Plugin "go"] +Target = //plugins:go +stdlib = //third_party/go:std diff --git a/test/export/test_go_binary/test_repo/pkg/BUILD_FILE b/test/export/test_go_binary/test_repo/pkg/BUILD_FILE new file mode 100644 index 000000000..85165ce64 --- /dev/null +++ b/test/export/test_go_binary/test_repo/pkg/BUILD_FILE @@ -0,0 +1,6 @@ +subinclude("///go//build_defs:go") + +go_binary( + name = "go_bin", + srcs = ["main.go"], +) diff --git a/test/export/test_go_binary/test_repo/pkg/main.go b/test/export/test_go_binary/test_repo/pkg/main.go new file mode 100644 index 000000000..155420a26 --- /dev/null +++ b/test/export/test_go_binary/test_repo/pkg/main.go @@ -0,0 +1,7 @@ +package main + +import "fmt" + +func main() { + fmt.Print("Woop Woop") +} diff --git a/test/export/test_go_binary/test_repo/plugins/BUILD_FILE b/test/export/test_go_binary/test_repo/plugins/BUILD_FILE new file mode 100644 index 000000000..d8a4b2e66 --- /dev/null +++ b/test/export/test_go_binary/test_repo/plugins/BUILD_FILE @@ -0,0 +1,5 @@ +plugin_repo( + name = "go", + plugin = "go-rules", + revision = "v1.21.5", +) diff --git a/test/export/test_go_binary/test_repo/third_party/go/BUILD_FILE b/test/export/test_go_binary/test_repo/third_party/go/BUILD_FILE new file mode 100644 index 000000000..3263e5ba4 --- /dev/null +++ b/test/export/test_go_binary/test_repo/third_party/go/BUILD_FILE @@ -0,0 +1,7 @@ +subinclude("///go//build_defs:go") + +package(default_visibility = ["PUBLIC"]) + +go_stdlib( + name = "std", +) diff --git a/test/export/test_multiple_targets/expected_repo/.plzconfig b/test/export/test_multiple_targets/expected_repo/.plzconfig new file mode 100644 index 000000000..8e1ae5655 --- /dev/null +++ b/test/export/test_multiple_targets/expected_repo/.plzconfig @@ -0,0 +1,3 @@ +[Parse] + +BuildFileName = BUILD_FILE diff --git a/test/export/test_multiple_targets/expected_repo/BUILD_FILE b/test/export/test_multiple_targets/expected_repo/BUILD_FILE new file mode 100644 index 000000000..e8bbf0d78 --- /dev/null +++ b/test/export/test_multiple_targets/expected_repo/BUILD_FILE @@ -0,0 +1,13 @@ +genrule( + name = "target1", + srcs = ["file1.txt"], + outs = ["out1.txt"], + cmd = "cat $SRCS > $OUT", +) + +genrule( + name = "target2", + srcs = ["file2.txt"], + outs = ["out2.txt"], + cmd = "cat $SRCS > $OUT", +) diff --git a/test/export/test_multiple_targets/expected_repo/file1.txt b/test/export/test_multiple_targets/expected_repo/file1.txt new file mode 100644 index 000000000..e2129701f --- /dev/null +++ b/test/export/test_multiple_targets/expected_repo/file1.txt @@ -0,0 +1 @@ +file1 diff --git a/test/export/test_multiple_targets/expected_repo/file2.txt b/test/export/test_multiple_targets/expected_repo/file2.txt new file mode 100644 index 000000000..6c493ff74 --- /dev/null +++ b/test/export/test_multiple_targets/expected_repo/file2.txt @@ -0,0 +1 @@ +file2 diff --git a/test/export/test_multiple_targets/test_repo/.plzconfig b/test/export/test_multiple_targets/test_repo/.plzconfig new file mode 100644 index 000000000..8e1ae5655 --- /dev/null +++ b/test/export/test_multiple_targets/test_repo/.plzconfig @@ -0,0 +1,3 @@ +[Parse] + +BuildFileName = BUILD_FILE diff --git a/test/export/test_multiple_targets/test_repo/BUILD_FILE b/test/export/test_multiple_targets/test_repo/BUILD_FILE new file mode 100644 index 000000000..e8bbf0d78 --- /dev/null +++ b/test/export/test_multiple_targets/test_repo/BUILD_FILE @@ -0,0 +1,13 @@ +genrule( + name = "target1", + srcs = ["file1.txt"], + outs = ["out1.txt"], + cmd = "cat $SRCS > $OUT", +) + +genrule( + name = "target2", + srcs = ["file2.txt"], + outs = ["out2.txt"], + cmd = "cat $SRCS > $OUT", +) diff --git a/test/export/test_multiple_targets/test_repo/file1.txt b/test/export/test_multiple_targets/test_repo/file1.txt new file mode 100644 index 000000000..e2129701f --- /dev/null +++ b/test/export/test_multiple_targets/test_repo/file1.txt @@ -0,0 +1 @@ +file1 diff --git a/test/export/test_multiple_targets/test_repo/file2.txt b/test/export/test_multiple_targets/test_repo/file2.txt new file mode 100644 index 000000000..6c493ff74 --- /dev/null +++ b/test/export/test_multiple_targets/test_repo/file2.txt @@ -0,0 +1 @@ +file2 diff --git a/test/export/test_native_target_with_go_dep/expected_repo/.plzconfig b/test/export/test_native_target_with_go_dep/expected_repo/.plzconfig new file mode 100644 index 000000000..89210b615 --- /dev/null +++ b/test/export/test_native_target_with_go_dep/expected_repo/.plzconfig @@ -0,0 +1,7 @@ +[Parse] +BuildFileName = BUILD # required by subrepos +BuildFileName = BUILD_FILE + +[Plugin "go"] +Target = //plugins:go +stdlib = //third_party/go:std diff --git a/test/export/test_native_target_with_go_dep/expected_repo/BUILD_FILE b/test/export/test_native_target_with_go_dep/expected_repo/BUILD_FILE new file mode 100644 index 000000000..69a21bbdd --- /dev/null +++ b/test/export/test_native_target_with_go_dep/expected_repo/BUILD_FILE @@ -0,0 +1,6 @@ +genrule( + name = "genrule_go_dep", + srcs = ["///third_party/go/github.com_google_go-cmp//cmp"], + outs = ["out.txt"], + cmd = "ls $SRCS > $OUT", +) diff --git a/test/export/test_native_target_with_go_dep/expected_repo/plugins/BUILD_FILE b/test/export/test_native_target_with_go_dep/expected_repo/plugins/BUILD_FILE new file mode 100644 index 000000000..d8a4b2e66 --- /dev/null +++ b/test/export/test_native_target_with_go_dep/expected_repo/plugins/BUILD_FILE @@ -0,0 +1,5 @@ +plugin_repo( + name = "go", + plugin = "go-rules", + revision = "v1.21.5", +) diff --git a/test/export/test_native_target_with_go_dep/expected_repo/third_party/go/BUILD_FILE b/test/export/test_native_target_with_go_dep/expected_repo/third_party/go/BUILD_FILE new file mode 100644 index 000000000..0af523288 --- /dev/null +++ b/test/export/test_native_target_with_go_dep/expected_repo/third_party/go/BUILD_FILE @@ -0,0 +1,12 @@ +subinclude("///go//build_defs:go") + +package(default_visibility = ["PUBLIC"]) + +go_stdlib( + name = "std", +) + +go_repo( + module = "github.com/google/go-cmp", + version = "v0.5.6", +) diff --git a/test/export/test_native_target_with_go_dep/test_repo/.plzconfig b/test/export/test_native_target_with_go_dep/test_repo/.plzconfig new file mode 100644 index 000000000..89210b615 --- /dev/null +++ b/test/export/test_native_target_with_go_dep/test_repo/.plzconfig @@ -0,0 +1,7 @@ +[Parse] +BuildFileName = BUILD # required by subrepos +BuildFileName = BUILD_FILE + +[Plugin "go"] +Target = //plugins:go +stdlib = //third_party/go:std diff --git a/test/export/test_native_target_with_go_dep/test_repo/BUILD_FILE b/test/export/test_native_target_with_go_dep/test_repo/BUILD_FILE new file mode 100644 index 000000000..69a21bbdd --- /dev/null +++ b/test/export/test_native_target_with_go_dep/test_repo/BUILD_FILE @@ -0,0 +1,6 @@ +genrule( + name = "genrule_go_dep", + srcs = ["///third_party/go/github.com_google_go-cmp//cmp"], + outs = ["out.txt"], + cmd = "ls $SRCS > $OUT", +) diff --git a/test/export/test_native_target_with_go_dep/test_repo/main.go b/test/export/test_native_target_with_go_dep/test_repo/main.go new file mode 100644 index 000000000..0853120a2 --- /dev/null +++ b/test/export/test_native_target_with_go_dep/test_repo/main.go @@ -0,0 +1,11 @@ +package main + +import ( + "fmt" + + "github.com/google/go-cmp/cmp" +) + +func main() { + fmt.Print(cmp.Equal(1, 1)) +} diff --git a/test/export/test_native_target_with_go_dep/test_repo/plugins/BUILD_FILE b/test/export/test_native_target_with_go_dep/test_repo/plugins/BUILD_FILE new file mode 100644 index 000000000..d8a4b2e66 --- /dev/null +++ b/test/export/test_native_target_with_go_dep/test_repo/plugins/BUILD_FILE @@ -0,0 +1,5 @@ +plugin_repo( + name = "go", + plugin = "go-rules", + revision = "v1.21.5", +) diff --git a/test/export/test_native_target_with_go_dep/test_repo/third_party/go/BUILD_FILE b/test/export/test_native_target_with_go_dep/test_repo/third_party/go/BUILD_FILE new file mode 100644 index 000000000..0af523288 --- /dev/null +++ b/test/export/test_native_target_with_go_dep/test_repo/third_party/go/BUILD_FILE @@ -0,0 +1,12 @@ +subinclude("///go//build_defs:go") + +package(default_visibility = ["PUBLIC"]) + +go_stdlib( + name = "std", +) + +go_repo( + module = "github.com/google/go-cmp", + version = "v0.5.6", +) diff --git a/test/export/test_notrim/.plzconfig b/test/export/test_notrim/.plzconfig new file mode 100644 index 000000000..e69de29bb diff --git a/test/export/test_notrim/BUILD_FILE b/test/export/test_notrim/BUILD_FILE new file mode 100644 index 000000000..3fce9ee8e --- /dev/null +++ b/test/export/test_notrim/BUILD_FILE @@ -0,0 +1,13 @@ +genrule( + name = "target1", + srcs = ["file1.txt"], + outs = ["out1.txt"], + cmd = "cat $SRCS > $OUT", +) + +genrule( + name = "unrelated", + srcs = ["file2.txt"], + outs = ["out2.txt"], + cmd = "cat $SRCS > $OUT", +) diff --git a/test/export/test_notrim/file1.txt b/test/export/test_notrim/file1.txt new file mode 100644 index 000000000..e2129701f --- /dev/null +++ b/test/export/test_notrim/file1.txt @@ -0,0 +1 @@ +file1 diff --git a/test/export/test_notrim/file2.txt b/test/export/test_notrim/file2.txt new file mode 100644 index 000000000..6c493ff74 --- /dev/null +++ b/test/export/test_notrim/file2.txt @@ -0,0 +1 @@ +file2 diff --git a/test/export/test_outputs/.plzconfig b/test/export/test_outputs/.plzconfig new file mode 100644 index 000000000..e69de29bb diff --git a/test/export/test_outputs/BUILD_FILE b/test/export/test_outputs/BUILD_FILE new file mode 100644 index 000000000..f10a47d81 --- /dev/null +++ b/test/export/test_outputs/BUILD_FILE @@ -0,0 +1,5 @@ +genrule( + name = "out_target", + outs = ["some_output.txt"], + cmd = "echo 'hello world' > $OUT", +) diff --git a/test/export/test_preload/expected_repo/.plzconfig b/test/export/test_preload/expected_repo/.plzconfig new file mode 100644 index 000000000..0b1b781c2 --- /dev/null +++ b/test/export/test_preload/expected_repo/.plzconfig @@ -0,0 +1,3 @@ +[parse] +BuildFileName = BUILD_FILE +preloadsubincludes = //build_defs:preloaded_build_def diff --git a/test/export/test_preload/expected_repo/BUILD_FILE b/test/export/test_preload/expected_repo/BUILD_FILE new file mode 100644 index 000000000..cd9cc2b39 --- /dev/null +++ b/test/export/test_preload/expected_repo/BUILD_FILE @@ -0,0 +1,5 @@ +genrule( + name = "native_target", + outs = ["file_no_preload.out"], + cmd = "echo 'woosh' > $OUT", +) diff --git a/test/export/test_preload/expected_repo/build_defs/BUILD_FILE b/test/export/test_preload/expected_repo/build_defs/BUILD_FILE new file mode 100644 index 000000000..b3d36cb71 --- /dev/null +++ b/test/export/test_preload/expected_repo/build_defs/BUILD_FILE @@ -0,0 +1,5 @@ +filegroup( + name = "preloaded_build_def", + srcs = ["preloaded.build_defs"], + visibility = ["PUBLIC"], +) diff --git a/test/export/test_preload/expected_repo/build_defs/preloaded.build_defs b/test/export/test_preload/expected_repo/build_defs/preloaded.build_defs new file mode 100644 index 000000000..1666afbd0 --- /dev/null +++ b/test/export/test_preload/expected_repo/build_defs/preloaded.build_defs @@ -0,0 +1,11 @@ +def preloaded_target( + name:str, + cmd:str, + srcs:list=[], + outs:list=[]): + return genrule( + name = name, + srcs = srcs, + outs = outs, + cmd = f"{cmd} $SRCS > $OUT", + ) diff --git a/test/export/test_preload/test_repo/.plzconfig b/test/export/test_preload/test_repo/.plzconfig new file mode 100644 index 000000000..0b1b781c2 --- /dev/null +++ b/test/export/test_preload/test_repo/.plzconfig @@ -0,0 +1,3 @@ +[parse] +BuildFileName = BUILD_FILE +preloadsubincludes = //build_defs:preloaded_build_def diff --git a/test/export/test_preload/test_repo/BUILD_FILE b/test/export/test_preload/test_repo/BUILD_FILE new file mode 100644 index 000000000..fa4497840 --- /dev/null +++ b/test/export/test_preload/test_repo/BUILD_FILE @@ -0,0 +1,12 @@ +genrule( + name = "native_target", + outs = ["file_no_preload.out"], + cmd = "echo 'woosh' > $OUT", +) + +preloaded_target( + name = "use_preloaded_def", + srcs = ["file.txt"], + outs = ["file_w_preload.out"], + cmd = "cat", +) diff --git a/test/export/test_preload/test_repo/build_defs/BUILD_FILE b/test/export/test_preload/test_repo/build_defs/BUILD_FILE new file mode 100644 index 000000000..b3d36cb71 --- /dev/null +++ b/test/export/test_preload/test_repo/build_defs/BUILD_FILE @@ -0,0 +1,5 @@ +filegroup( + name = "preloaded_build_def", + srcs = ["preloaded.build_defs"], + visibility = ["PUBLIC"], +) diff --git a/test/export/test_preload/test_repo/build_defs/preloaded.build_defs b/test/export/test_preload/test_repo/build_defs/preloaded.build_defs new file mode 100644 index 000000000..1666afbd0 --- /dev/null +++ b/test/export/test_preload/test_repo/build_defs/preloaded.build_defs @@ -0,0 +1,11 @@ +def preloaded_target( + name:str, + cmd:str, + srcs:list=[], + outs:list=[]): + return genrule( + name = name, + srcs = srcs, + outs = outs, + cmd = f"{cmd} $SRCS > $OUT", + ) diff --git a/test/export/test_preload/test_repo/file.txt b/test/export/test_preload/test_repo/file.txt new file mode 100644 index 000000000..9768ee14c --- /dev/null +++ b/test/export/test_preload/test_repo/file.txt @@ -0,0 +1 @@ +Test source file diff --git a/test/export/test_use_preloaded/expected_repo/.plzconfig b/test/export/test_use_preloaded/expected_repo/.plzconfig new file mode 100644 index 000000000..0b1b781c2 --- /dev/null +++ b/test/export/test_use_preloaded/expected_repo/.plzconfig @@ -0,0 +1,3 @@ +[parse] +BuildFileName = BUILD_FILE +preloadsubincludes = //build_defs:preloaded_build_def diff --git a/test/export/test_use_preloaded/expected_repo/BUILD_FILE b/test/export/test_use_preloaded/expected_repo/BUILD_FILE new file mode 100644 index 000000000..b57ba51de --- /dev/null +++ b/test/export/test_use_preloaded/expected_repo/BUILD_FILE @@ -0,0 +1,6 @@ +preloaded_target( + name = "use_preloaded_def", + srcs = ["file.txt"], + outs = ["file_w_preload.out"], + cmd = "cat", +) diff --git a/test/export/test_use_preloaded/expected_repo/build_defs/BUILD_FILE b/test/export/test_use_preloaded/expected_repo/build_defs/BUILD_FILE new file mode 100644 index 000000000..b3d36cb71 --- /dev/null +++ b/test/export/test_use_preloaded/expected_repo/build_defs/BUILD_FILE @@ -0,0 +1,5 @@ +filegroup( + name = "preloaded_build_def", + srcs = ["preloaded.build_defs"], + visibility = ["PUBLIC"], +) diff --git a/test/export/test_use_preloaded/expected_repo/build_defs/preloaded.build_defs b/test/export/test_use_preloaded/expected_repo/build_defs/preloaded.build_defs new file mode 100644 index 000000000..1666afbd0 --- /dev/null +++ b/test/export/test_use_preloaded/expected_repo/build_defs/preloaded.build_defs @@ -0,0 +1,11 @@ +def preloaded_target( + name:str, + cmd:str, + srcs:list=[], + outs:list=[]): + return genrule( + name = name, + srcs = srcs, + outs = outs, + cmd = f"{cmd} $SRCS > $OUT", + ) diff --git a/test/export/test_use_preloaded/expected_repo/file.txt b/test/export/test_use_preloaded/expected_repo/file.txt new file mode 100644 index 000000000..9768ee14c --- /dev/null +++ b/test/export/test_use_preloaded/expected_repo/file.txt @@ -0,0 +1 @@ +Test source file diff --git a/test/export/test_use_preloaded/test_repo/.plzconfig b/test/export/test_use_preloaded/test_repo/.plzconfig new file mode 100644 index 000000000..0b1b781c2 --- /dev/null +++ b/test/export/test_use_preloaded/test_repo/.plzconfig @@ -0,0 +1,3 @@ +[parse] +BuildFileName = BUILD_FILE +preloadsubincludes = //build_defs:preloaded_build_def diff --git a/test/export/test_use_preloaded/test_repo/BUILD_FILE b/test/export/test_use_preloaded/test_repo/BUILD_FILE new file mode 100644 index 000000000..fa4497840 --- /dev/null +++ b/test/export/test_use_preloaded/test_repo/BUILD_FILE @@ -0,0 +1,12 @@ +genrule( + name = "native_target", + outs = ["file_no_preload.out"], + cmd = "echo 'woosh' > $OUT", +) + +preloaded_target( + name = "use_preloaded_def", + srcs = ["file.txt"], + outs = ["file_w_preload.out"], + cmd = "cat", +) diff --git a/test/export/test_use_preloaded/test_repo/build_defs/BUILD_FILE b/test/export/test_use_preloaded/test_repo/build_defs/BUILD_FILE new file mode 100644 index 000000000..b3d36cb71 --- /dev/null +++ b/test/export/test_use_preloaded/test_repo/build_defs/BUILD_FILE @@ -0,0 +1,5 @@ +filegroup( + name = "preloaded_build_def", + srcs = ["preloaded.build_defs"], + visibility = ["PUBLIC"], +) diff --git a/test/export/test_use_preloaded/test_repo/build_defs/preloaded.build_defs b/test/export/test_use_preloaded/test_repo/build_defs/preloaded.build_defs new file mode 100644 index 000000000..1666afbd0 --- /dev/null +++ b/test/export/test_use_preloaded/test_repo/build_defs/preloaded.build_defs @@ -0,0 +1,11 @@ +def preloaded_target( + name:str, + cmd:str, + srcs:list=[], + outs:list=[]): + return genrule( + name = name, + srcs = srcs, + outs = outs, + cmd = f"{cmd} $SRCS > $OUT", + ) diff --git a/test/export/test_use_preloaded/test_repo/file.txt b/test/export/test_use_preloaded/test_repo/file.txt new file mode 100644 index 000000000..9768ee14c --- /dev/null +++ b/test/export/test_use_preloaded/test_repo/file.txt @@ -0,0 +1 @@ +Test source file