diff --git a/examples/py/BUILD b/examples/py/BUILD index 8dba6e0384b358..38edb957e57709 100644 --- a/examples/py/BUILD +++ b/examples/py/BUILD @@ -1,3 +1,6 @@ +load("@rules_python//python:py_binary.bzl", "py_binary") +load("@rules_python//python:py_library.bzl", "py_library") + py_library( name = "lib", srcs = ["lib.py"], diff --git a/examples/py_native/BUILD b/examples/py_native/BUILD index 9d52fd68483bbc..3c9f69cce3b38a 100644 --- a/examples/py_native/BUILD +++ b/examples/py_native/BUILD @@ -1,3 +1,7 @@ +load("@rules_python//python:py_binary.bzl", "py_binary") +load("@rules_python//python:py_library.bzl", "py_library") +load("@rules_python//python:py_test.bzl", "py_test") + filegroup( name = "srcs", srcs = glob(["*.py"]) + [ diff --git a/examples/py_native/fibonacci/BUILD b/examples/py_native/fibonacci/BUILD index 10da5110bff0e2..9ebe0d6b0e1db7 100644 --- a/examples/py_native/fibonacci/BUILD +++ b/examples/py_native/fibonacci/BUILD @@ -1,3 +1,5 @@ +load("@rules_python//python:py_library.bzl", "py_library") + filegroup( name = "srcs", srcs = glob(["*.py"]) + [ diff --git a/examples/shell/BUILD b/examples/shell/BUILD index 095cea47250e2d..ceb08da2c348c3 100644 --- a/examples/shell/BUILD +++ b/examples/shell/BUILD @@ -1,3 +1,7 @@ +load("@rules_shell//shell:sh_binary.bzl", "sh_binary") +load("@rules_shell//shell:sh_library.bzl", "sh_library") +load("@rules_shell//shell:sh_test.bzl", "sh_test") + package(default_visibility = ["//visibility:public"]) sh_binary( diff --git a/src/BUILD b/src/BUILD index 761687cc269360..3caf16799f7136 100644 --- a/src/BUILD +++ b/src/BUILD @@ -4,6 +4,7 @@ load("@bazel_pip_dev_deps//:requirements.bzl", "requirement") load("@bazel_skylib//:bzl_library.bzl", "bzl_library") load("@rules_java//java:java_binary.bzl", "java_binary") load("@rules_python//python:defs.bzl", "py_binary", "py_library") +load("@rules_shell//shell:sh_binary.bzl", "sh_binary") load("//src:build_defs.bzl", "transition_java_language_8_archive") load("//src:release_archive.bzl", "release_archive") load(":embedded_tools.bzl", "srcsfile") diff --git a/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java b/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java index f320a76f1f6861..8ee94d08e94530 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java +++ b/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java @@ -149,7 +149,7 @@ public final class BuildLanguageOptions extends OptionsBase { @Option( name = "incompatible_disable_autoloads_in_main_repo", - defaultValue = "false", + defaultValue = "true", documentationCategory = OptionDocumentationCategory.STARLARK_SEMANTICS, effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS}, metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE}, @@ -950,7 +950,7 @@ public StarlarkSemantics toStarlarkSemantics() { public static final String INCOMPATIBLE_STOP_EXPORTING_LANGUAGE_MODULES = "-incompatible_stop_exporting_language_modules"; public static final String INCOMPATIBLE_DISABLE_AUTOLOADS_IN_MAIN_REPO = - "-incompatible_disable_autoloads_in_main_repo"; + "+incompatible_disable_autoloads_in_main_repo"; public static final String INCOMPATIBLE_ALLOW_TAGS_PROPAGATION = "+incompatible_allow_tags_propagation"; public static final String EXPERIMENTAL_BUILTINS_DUMMY = "-experimental_builtins_dummy"; diff --git a/src/main/java/com/google/devtools/build/skyframe/BUILD b/src/main/java/com/google/devtools/build/skyframe/BUILD index a0caeb2865d2a4..26b3996cd879d3 100644 --- a/src/main/java/com/google/devtools/build/skyframe/BUILD +++ b/src/main/java/com/google/devtools/build/skyframe/BUILD @@ -1,3 +1,4 @@ +load("@com_google_protobuf//bazel:java_proto_library.bzl", "java_proto_library") load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library") load("@rules_java//java:defs.bzl", "java_library") load("//tools/build_rules:utilities.bzl", "java_library_srcs") diff --git a/src/main/starlark/tests/builtins_bzl/builtin_test_setup.sh b/src/main/starlark/tests/builtins_bzl/builtin_test_setup.sh index 62d7da97f629c8..2a668118dde13a 100644 --- a/src/main/starlark/tests/builtins_bzl/builtin_test_setup.sh +++ b/src/main/starlark/tests/builtins_bzl/builtin_test_setup.sh @@ -23,6 +23,7 @@ function setup_tests() { add_bazel_skylib "MODULE.bazel" add_rules_python "MODULE.bazel" add_platforms "MODULE.bazel" + add_rules_shell "MODULE.bazel" src=$(get_runfiles_dir $1) dest="${2:-$1}" if [ ! -e "$src" ]; then diff --git a/src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/BUILD.builtin_test b/src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/BUILD.builtin_test index c212764c6cde86..fcfffca2f957f9 100644 --- a/src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/BUILD.builtin_test +++ b/src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test/BUILD.builtin_test @@ -15,6 +15,10 @@ load( "runfiles_test", "wrapped_cc_lib", ) +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_binary.bzl", "cc_binary") +load("@rules_cc//cc:cc_import.bzl", "cc_import") +load("@rules_shell//shell:sh_test.bzl", "sh_test") LINKABLE_MORE_THAN_ONCE = "LINKABLE_MORE_THAN_ONCE" diff --git a/src/main/starlark/tests/builtins_bzl/cc/cc_static_library/test/BUILD.builtin_test b/src/main/starlark/tests/builtins_bzl/cc/cc_static_library/test/BUILD.builtin_test index 38127882a02aae..8665e45d877d55 100644 --- a/src/main/starlark/tests/builtins_bzl/cc/cc_static_library/test/BUILD.builtin_test +++ b/src/main/starlark/tests/builtins_bzl/cc/cc_static_library/test/BUILD.builtin_test @@ -1,4 +1,7 @@ load(":starlark_tests.bzl", "analysis_test_suite") +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_import.bzl", "cc_import") +load("@rules_shell//shell:sh_test.bzl", "sh_test") cc_static_library( name = "static", diff --git a/src/test/java/com/google/devtools/build/lib/blackbox/tests/PythonBlackBoxTest.java b/src/test/java/com/google/devtools/build/lib/blackbox/tests/PythonBlackBoxTest.java index b344d57c312b1a..b75afed2d50a06 100644 --- a/src/test/java/com/google/devtools/build/lib/blackbox/tests/PythonBlackBoxTest.java +++ b/src/test/java/com/google/devtools/build/lib/blackbox/tests/PythonBlackBoxTest.java @@ -38,6 +38,8 @@ protected ImmutableList getAdditionalTools() { @Test public void testCompileAndRunHelloWorldStub() throws Exception { + context().write(MODULE_DOT_BAZEL, "bazel_dep(name = 'rules_python', version = '0.40.0')"); + writeHelloWorldFiles(); BuilderRunner bazel = context().bazel(); @@ -51,7 +53,11 @@ public void testCompileAndRunHelloWorldStub() throws Exception { } private void writeHelloWorldFiles() throws IOException { - context().write("python/hello/BUILD", "py_binary(name = 'hello', srcs = ['hello.py'])"); + context() + .write( + "python/hello/BUILD", + "load('@rules_python//python:py_binary.bzl', 'py_binary')", + "py_binary(name = 'hello', srcs = ['hello.py'])"); context().write("python/hello/hello.py", String.format("print ('%s')", HELLO)); } } diff --git a/src/test/py/bazel/bazel_external_repository_test.py b/src/test/py/bazel/bazel_external_repository_test.py index cef5777c9ce876..1540feb80aa94e 100644 --- a/src/test/py/bazel/bazel_external_repository_test.py +++ b/src/test/py/bazel/bazel_external_repository_test.py @@ -66,23 +66,20 @@ def tearDown(self): def testNewHttpArchive(self): ip, port = self._http_server.server_address rule_definition = [ - ( - 'http_archive =' - ' use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl",' - ' "http_archive")' - ), + 'bazel_dep(name = "rules_python", version = "0.40.0")', + 'http_archive = use_repo_rule(', + ' "@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")', 'http_archive(', ' name = "hello_archive",', ' urls = ["http://%s:%s/hello-1.0.0.tar.gz"],' % (ip, port), - ( - ' sha256 = ' - '"154740b327bcfee5669ef2ce0a04bf0904227a3bfe0fee08a5aaca96ea5a601a",' - ), + ' sha256 = ', + ' "154740b327bcfee5669ef2ce0a04bf0904227a3bfe0fee08a5aaca96ea5a601a",', ' strip_prefix = "hello-1.0.0",', ' build_file = "@//third_party:hello.BUILD",', ')', ] build_file = [ + 'load("@rules_python//python:py_library.bzl", "py_library")', 'py_library(', ' name = "hello",', ' srcs = ["hello.py"],', @@ -189,20 +186,16 @@ def testNewHttpTarWithSparseFile(self): ip, port = self._http_server.server_address rule_definition = [ - ( - 'http_archive =' - ' use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl",' - ' "http_archive")' - ), + 'bazel_dep(name = "rules_python", version = "0.40.0")', + 'http_archive = use_repo_rule(', + ' "@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")', 'http_archive(', ' name = "sparse_archive",', ' urls = ["http://%s:%s/sparse_archive.tar"],' % (ip, port), ' build_file = "@//:sparse_archive.BUILD",', ' sha256 = ', - ( - ' "a1a2b2ce4acd51a8cc1ab80adce6f134ac73e885219911a960a42000e312bb65",' - ')' - ), + ' "a1a2b2ce4acd51a8cc1ab80adce6f134ac73e885219911a960a42000e312bb65",', + ')', ] self.ScratchFile('MODULE.bazel', rule_definition) self.ScratchFile( @@ -224,13 +217,12 @@ def testNewHttpTarWithSparseFile(self): self.ScratchFile( 'BUILD', [ + 'load("@rules_python//python:py_test.bzl", "py_test")', 'py_test(', ' name = "test",', ' srcs = ["test.py"],', - ( - ' args = ["$(rlocationpath @sparse_archive//:sparse_file)"],' - ' data = [' - ), + ' args = ["$(rlocationpath @sparse_archive//:sparse_file)"],', + ' data = [', ' "@sparse_archive//:sparse_file",', ' "@bazel_tools//tools/python/runfiles",', ' ],)', @@ -260,10 +252,11 @@ def _CreatePyWritingStarlarkRule(self, print_string): def testNewLocalRepositoryNoticesFileChangeInRepoRoot(self): """Regression test for https://github.com/bazelbuild/bazel/issues/7063.""" rule_definition = [ + 'bazel_dep(name = "rules_python", version = "0.40.0")', + 'new_local_repository = use_repo_rule(', ( - 'new_local_repository =' - ' use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl",' - ' "new_local_repository")' + ' "@bazel_tools//tools/build_defs/repo:local.bzl",' + ' "new_local_repository")' ), 'new_local_repository(', ' name = "r",', @@ -273,11 +266,15 @@ def testNewLocalRepositoryNoticesFileChangeInRepoRoot(self): ] self.ScratchFile('MODULE.bazel', rule_definition) self._CreatePyWritingStarlarkRule('hello!') - self.ScratchFile('BUILD', [ - 'load("@r//:foo.bzl", "gen_py")', - 'gen_py(name = "gen")', - 'py_binary(name = "bin", srcs = [":gen"], main = "gen.py")', - ]) + self.ScratchFile( + 'BUILD', + [ + 'load("@r//:foo.bzl", "gen_py")', + 'load("@rules_python//python:py_binary.bzl", "py_binary")', + 'gen_py(name = "gen")', + 'py_binary(name = "bin", srcs = [":gen"], main = "gen.py")', + ], + ) _, stdout, _ = self.RunBazel(['run', '//:bin']) self.assertIn('hello!', os.linesep.join(stdout)) @@ -294,11 +291,9 @@ def setUpOtherRepoMyRepo(self): self.ScratchFile( 'my_repo/MODULE.bazel', [ - ( - 'local_repository =' - ' use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl",' - ' "local_repository")' - ), + 'local_repository = use_repo_rule(', + ' "@bazel_tools//tools/build_defs/repo:local.bzl",', + ' "local_repository")', 'local_repository(name = "other_repo", path="../other_repo")', ], ) diff --git a/src/test/py/bazel/launcher_test.py b/src/test/py/bazel/launcher_test.py index f11c9701d2d465..a2d3ad06c040e3 100644 --- a/src/test/py/bazel/launcher_test.py +++ b/src/test/py/bazel/launcher_test.py @@ -237,14 +237,21 @@ def _buildAndCheckArgumentPassing(self, package, target_name): self.assertEqual(stdout, arguments) def testJavaBinaryLauncher(self): - self.ScratchFile('foo/BUILD', [ - 'java_binary(', - ' name = "foo",', - ' srcs = ["Main.java"],', - ' main_class = "Main",', - ' data = ["//bar:bar.txt"],', - ')', - ]) + self.ScratchFile( + 'MODULE.bazel', ['bazel_dep(name = "rules_java", version = "8.11.0")'] + ) + self.ScratchFile( + 'foo/BUILD', + [ + 'load("@rules_java//java:java_binary.bzl", "java_binary")', + 'java_binary(', + ' name = "foo",', + ' srcs = ["Main.java"],', + ' main_class = "Main",', + ' data = ["//bar:bar.txt"],', + ')', + ], + ) self.ScratchFile('foo/Main.java', [ 'public class Main {', ' public static void main(String[] args) {' @@ -266,13 +273,20 @@ def testJavaBinaryLauncher(self): self._buildJavaTargets(bazel_bin, '.exe' if self.IsWindows() else '') def testJavaBinaryArgumentPassing(self): - self.ScratchFile('foo/BUILD', [ - 'java_binary(', - ' name = "bin",', - ' srcs = ["Main.java"],', - ' main_class = "Main",', - ')', - ]) + self.ScratchFile( + 'MODULE.bazel', ['bazel_dep(name = "rules_java", version = "8.11.0")'] + ) + self.ScratchFile( + 'foo/BUILD', + [ + 'load("@rules_java//java:java_binary.bzl", "java_binary")', + 'java_binary(', + ' name = "bin",', + ' srcs = ["Main.java"],', + ' main_class = "Main",', + ')', + ], + ) self.ScratchFile('foo/Main.java', [ 'public class Main {', ' public static void main(String[] args) {' @@ -286,6 +300,9 @@ def testJavaBinaryArgumentPassing(self): self._buildAndCheckArgumentPassing('foo', 'bin') def testShBinaryLauncher(self): + self.ScratchFile( + 'MODULE.bazel', ['bazel_dep(name = "rules_shell", version = "0.3.0")'] + ) self.ScratchFile( 'foo/BUILD', [ @@ -295,6 +312,7 @@ def testShBinaryLauncher(self): # On Windows, if the srcs's extension is one of ".exe", ".cmd", or # ".bat", then Bazel requires the rule's name has the same # extension, and the output file will be a copy of the source file. + 'load("@rules_shell//shell:sh_binary.bzl", "sh_binary")', 'sh_binary(', ' name = "bin1.sh",', ' srcs = ["foo.sh"],', @@ -310,7 +328,8 @@ def testShBinaryLauncher(self): ' srcs = ["foo.cmd"],', ' data = ["//bar:bar.txt"],', ')', - ]) + ], + ) foo_sh = self.ScratchFile('foo/foo.sh', [ '#!/bin/bash', 'echo hello shell', @@ -328,12 +347,19 @@ def testShBinaryLauncher(self): self._buildShBinaryTargets(bazel_bin, '.exe' if self.IsWindows() else '') def testShBinaryArgumentPassing(self): - self.ScratchFile('foo/BUILD', [ - 'sh_binary(', - ' name = "bin",', - ' srcs = ["bin.sh"],', - ')', - ]) + self.ScratchFile( + 'MODULE.bazel', ['bazel_dep(name = "rules_shell", version = "0.3.0")'] + ) + self.ScratchFile( + 'foo/BUILD', + [ + 'load("@rules_shell//shell:sh_binary.bzl", "sh_binary")', + 'sh_binary(', + ' name = "bin",', + ' srcs = ["bin.sh"],', + ')', + ], + ) foo_sh = self.ScratchFile('foo/bin.sh', [ '#!/bin/bash', '# Store arguments in a array', @@ -350,6 +376,9 @@ def testShBinaryArgumentPassing(self): self._buildAndCheckArgumentPassing('foo', 'bin') def testPyBinaryLauncher(self): + self.ScratchFile( + 'MODULE.bazel', ['bazel_dep(name = "rules_python", version = "0.40.0")'] + ) self.ScratchFile( 'foo/foo.bzl', [ @@ -372,12 +401,30 @@ def testPyBinaryLauncher(self): ')', ], ) - self.ScratchFile('foo/BUILD', [ - 'load(":foo.bzl", "helloworld")', '', 'py_binary(', ' name = "foo",', - ' srcs = ["foo.py"],', ' data = ["//bar:bar.txt"],', ')', '', - 'py_test(', ' name = "test",', ' srcs = ["test.py"],', ')', '', - 'helloworld(', ' name = "hello",', ' out = "hello.txt",', ')' - ]) + self.ScratchFile( + 'foo/BUILD', + [ + 'load("@rules_python//python:py_binary.bzl", "py_binary")', + 'load("@rules_python//python:py_test.bzl", "py_test")', + 'load(":foo.bzl", "helloworld")', + '', + 'py_binary(', + ' name = "foo",', + ' srcs = ["foo.py"],', + ' data = ["//bar:bar.txt"],', + ')', + '', + 'py_test(', + ' name = "test",', + ' srcs = ["test.py"],', + ')', + '', + 'helloworld(', + ' name = "hello",', + ' out = "hello.txt",', + ')', + ], + ) foo_py = self.ScratchFile('foo/foo.py', [ '#!/usr/bin/env python3', 'import sys', @@ -406,12 +453,19 @@ def testPyBinaryLauncher(self): self._buildPyTargets(bazel_bin, '.exe' if self.IsWindows() else '') def testPyBinaryArgumentPassing(self): - self.ScratchFile('foo/BUILD', [ - 'py_binary(', - ' name = "bin",', - ' srcs = ["bin.py"],', - ')', - ]) + self.ScratchFile( + 'MODULE.bazel', ['bazel_dep(name = "rules_python", version = "0.40.0")'] + ) + self.ScratchFile( + 'foo/BUILD', + [ + 'load("@rules_python//python:py_binary.bzl", "py_binary")', + 'py_binary(', + ' name = "bin",', + ' srcs = ["bin.py"],', + ')', + ], + ) self.ScratchFile('foo/bin.py', [ 'import sys', 'for arg in sys.argv[1:]:', @@ -422,12 +476,19 @@ def testPyBinaryArgumentPassing(self): def testPyBinaryLauncherWithDifferentArgv0(self): """Test for https://github.com/bazelbuild/bazel/issues/14343.""" - self.ScratchFile('foo/BUILD', [ - 'py_binary(', - ' name = "bin",', - ' srcs = ["bin.py"],', - ')', - ]) + self.ScratchFile( + 'MODULE.bazel', ['bazel_dep(name = "rules_python", version = "0.40.0")'] + ) + self.ScratchFile( + 'foo/BUILD', + [ + 'load("@rules_python//python:py_binary.bzl", "py_binary")', + 'py_binary(', + ' name = "bin",', + ' srcs = ["bin.py"],', + ')', + ], + ) self.ScratchFile('foo/bin.py', ['print("Hello world")']) _, stdout, _ = self.RunBazel(['info', 'bazel-bin']) @@ -447,15 +508,22 @@ def testWindowsJavaExeLauncher(self): # Skip this test on non-Windows platforms if not self.IsWindows(): return - self.ScratchFile('foo/BUILD', [ - 'java_binary(', - ' name = "foo",', - ' srcs = ["Main.java"],', - ' main_class = "Main",', - ' jvm_flags = ["--flag1", "--flag2"],', - ' data = ["advice-1.jar", "advice-2.jar"],', - ')', - ]) + self.ScratchFile( + 'MODULE.bazel', ['bazel_dep(name = "rules_java", version = "8.11.0")'] + ) + self.ScratchFile( + 'foo/BUILD', + [ + 'load("@rules_java//java:java_binary.bzl", "java_binary")', + 'java_binary(', + ' name = "foo",', + ' srcs = ["Main.java"],', + ' main_class = "Main",', + ' jvm_flags = ["--flag1", "--flag2"],', + ' data = ["advice-1.jar", "advice-2.jar"],', + ')', + ], + ) self.ScratchFile('foo/advice-1.jar') self.ScratchFile('foo/advice-2.jar') self.ScratchFile('foo/Main.java', [ @@ -569,17 +637,25 @@ def testWindowsJavaExeLauncher(self): def testWindowsNativeLauncherInNonEnglishPath(self): if not self.IsWindows(): return - self.ScratchFile('bin/BUILD', [ - 'java_binary(', - ' name = "bin_java",', - ' srcs = ["Main.java"],', - ' main_class = "Main",', - ')', - 'sh_binary(', - ' name = "bin_sh",', - ' srcs = ["main.sh"],', - ')', - ]) + self.ScratchFile( + 'MODULE.bazel', ['bazel_dep(name = "rules_java", version = "8.11.0")'] + ) + self.ScratchFile( + 'bin/BUILD', + [ + 'load("@rules_java//java:java_binary.bzl", "java_binary")', + 'load("@rules_shell//shell:sh_binary.bzl", "sh_binary")', + 'java_binary(', + ' name = "bin_java",', + ' srcs = ["Main.java"],', + ' main_class = "Main",', + ')', + 'sh_binary(', + ' name = "bin_sh",', + ' srcs = ["main.sh"],', + ')', + ], + ) self.ScratchFile('bin/Main.java', [ 'public class Main {', ' public static void main(String[] args) {' @@ -617,9 +693,15 @@ def testWindowsNativeLauncherInNonEnglishPath(self): def testWindowsNativeLauncherInLongPath(self): if not self.IsWindows(): return + self.ScratchFile( + 'MODULE.bazel', ['bazel_dep(name = "rules_java", version = "8.11.0")'] + ) self.ScratchFile( 'bin/BUILD', [ + 'load("@rules_java//java:java_binary.bzl", "java_binary")', + 'load("@rules_shell//shell:sh_binary.bzl", "sh_binary")', + 'load("@rules_python//python:py_binary.bzl", "py_binary")', 'java_binary(', ' name = "not_short_bin_java",', ' srcs = ["Main.java"],', @@ -713,9 +795,15 @@ def testWindowsNativeLauncherInLongPath(self): def testWindowsNativeLauncherInvalidArgv0(self): if not self.IsWindows(): return + self.ScratchFile( + 'MODULE.bazel', ['bazel_dep(name = "rules_java", version = "8.11.0")'] + ) self.ScratchFile( 'bin/BUILD', [ + 'load("@rules_java//java:java_binary.bzl", "java_binary")', + 'load("@rules_shell//shell:sh_binary.bzl", "sh_binary")', + 'load("@rules_python//python:py_binary.bzl", "py_binary")', 'java_binary(', ' name = "bin_java",', ' srcs = ["Main.java"],', @@ -787,11 +875,8 @@ def testBuildLaunchersWithClangClOnWindows(self): [ 'bazel_dep(name = "platforms", version = "0.0.9")', 'bazel_dep(name = "rules_cc", version = "0.0.12")', - ( - 'cc_configure =' - ' use_extension("@rules_cc//cc:extensions.bzl",' - ' "cc_configure_extension")' - ), + 'cc_configure = use_extension(', + ' "@rules_cc//cc:extensions.bzl", "cc_configure_extension")', 'use_repo(cc_configure, "local_config_cc")', # Register all cc toolchains for Windows 'register_toolchains("@local_config_cc//:all")', diff --git a/src/test/py/bazel/py_test.py b/src/test/py/bazel/py_test.py index 1c3f347ea77290..e3aba3c1c72d3e 100644 --- a/src/test/py/bazel/py_test.py +++ b/src/test/py/bazel/py_test.py @@ -26,6 +26,8 @@ def createSimpleFiles(self): self.ScratchFile( 'a/BUILD', [ + 'load("@rules_python//python:py_binary.bzl", "py_binary")', + 'load("@rules_python//python:py_library.bzl", "py_library")', 'py_binary(name="a", srcs=["a.py"], deps=[":b"])', 'py_library(name="b", srcs=["b.py"], imports=["."])', ], @@ -45,6 +47,12 @@ def createSimpleFiles(self): ' print("Hello, World")', ]) + def setUp(self): + test_base.TestBase.setUp(self) + self.ScratchFile( + 'MODULE.bazel', ['bazel_dep(name = "rules_python", version = "0.40.0")'] + ) + def testSmoke(self): self.createSimpleFiles() _, stdout, _ = self.RunBazel(['run', '//a:a']) @@ -68,13 +76,24 @@ def testRunfilesSymlinks(self): class TestInitPyFiles(test_base.TestBase): + def setUp(self): + test_base.TestBase.setUp(self) + self.ScratchFile( + 'MODULE.bazel', ['bazel_dep(name = "rules_python", version = "0.40.0")'] + ) + def createSimpleFiles(self, create_init=True): - self.ScratchFile('src/a/BUILD', [ - 'py_binary(name="a", srcs=["a.py"], deps=[":b"], legacy_create_init=%s)' - % create_init, - 'py_library(name="b", srcs=["b.py"])', - ]) + self.ScratchFile( + 'src/a/BUILD', + [ + 'load("@rules_python//python:py_library.bzl", "py_library")', + 'load("@rules_python//python:py_binary.bzl", "py_binary")', + 'py_binary(name="a", srcs=["a.py"], deps=[":b"],' + ' legacy_create_init=%s)' % create_init, + 'py_library(name="b", srcs=["b.py"])', + ], + ) self.ScratchFile('src/a/a.py', [ 'from src.a import b', @@ -116,13 +135,18 @@ def testInitPyFilesNotCreatedWhenLegacyCreateInitIsSet(self): # Regression test for https://github.com/bazelbuild/bazel/pull/10119 def testBuildingZipFileWithTargetNameWithDot(self): - self.ScratchFile('BUILD', [ - 'py_binary(', - ' name = "bin.v1", # .v1 should not be treated as extension and removed accidentally', - ' srcs = ["bin.py"],', - ' main = "bin.py",', - ')', - ]) + self.ScratchFile( + 'BUILD', + [ + 'load("@rules_python//python:py_binary.bzl", "py_binary")', + "'# .v1 shouldn't be treated as extension and removed accidentally", + 'py_binary(', + ' name = "bin.v1",', + ' srcs = ["bin.py"],', + ' main = "bin.py",', + ')', + ], + ) self.ScratchFile('bin.py', ['print("Hello, world")']) self.RunBazel(['build', '--build_python_zip', '//:bin.v1']) self.assertTrue(os.path.exists('bazel-bin/bin.v1.temp')) @@ -151,6 +175,9 @@ def _RunRemoteBazel(self, args): def setUp(self): test_base.TestBase.setUp(self) + self.ScratchFile( + 'MODULE.bazel', ['bazel_dep(name = "rules_python", version = "0.40.0")'] + ) self._worker_port = self.StartRemoteWorker() def tearDown(self): @@ -158,12 +185,16 @@ def tearDown(self): test_base.TestBase.tearDown(self) def testPyTestRunsRemotely(self): - self.ScratchFile('foo/BUILD', [ - 'py_test(', - ' name = "foo_test",', - ' srcs = ["foo_test.py"],', - ')', - ]) + self.ScratchFile( + 'foo/BUILD', + [ + 'load("@rules_python//python:py_test.bzl", "py_test")', + 'py_test(', + ' name = "foo_test",', + ' srcs = ["foo_test.py"],', + ')', + ], + ) self.ScratchFile('foo/foo_test.py', [ 'print("Test ran")', ]) @@ -176,17 +207,22 @@ def testPyTestRunsRemotely(self): # Regression test for https://github.com/bazelbuild/bazel/issues/9239 def testPyTestWithStdlibCollisionRunsRemotely(self): - self.ScratchFile('foo/BUILD', [ - 'py_library(', - ' name = "io",', - ' srcs = ["io.py"],', - ')', - 'py_test(', - ' name = "io_test",', - ' srcs = ["io_test.py"],', - ' deps = [":io"],', - ')', - ]) + self.ScratchFile( + 'foo/BUILD', + [ + 'load("@rules_python//python:py_library.bzl", "py_library")', + 'load("@rules_python//python:py_test.bzl", "py_test")', + 'py_library(', + ' name = "io",', + ' srcs = ["io.py"],', + ')', + 'py_test(', + ' name = "io_test",', + ' srcs = ["io_test.py"],', + ' deps = [":io"],', + ')', + ], + ) self.ScratchFile('foo/io.py', [ 'def my_func():', ' print("Test ran")', @@ -209,41 +245,46 @@ def testPyRunfilesLibraryCurrentRepository(self): self.ScratchFile( 'MODULE.bazel', [ - ( - 'local_repository =' - ' use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl",' - ' "local_repository")' - ), + 'bazel_dep(name = "rules_python", version = "0.40.0")', + 'local_repository = use_repo_rule(', + ' "@bazel_tools//tools/build_defs/repo:local.bzl",', + ' "local_repository")', 'local_repository(name = "other_repo", path = "other_repo_path")', ], ) - self.ScratchFile('pkg/BUILD.bazel', [ - 'py_library(', - ' name = "library",', - ' srcs = ["library.py"],', - ' visibility = ["//visibility:public"],', - ' deps = ["@bazel_tools//tools/python/runfiles"],', - ')', - '', - 'py_binary(', - ' name = "binary",', - ' srcs = ["binary.py"],', - ' deps = [', - ' ":library",', - ' "@bazel_tools//tools/python/runfiles",', - ' ],', - ')', - '', - 'py_test(', - ' name = "test",', - ' srcs = ["test.py"],', - ' deps = [', - ' ":library",', - ' "@bazel_tools//tools/python/runfiles",', - ' ],', - ')', - ]) + self.ScratchFile( + 'pkg/BUILD.bazel', + [ + 'load("@rules_python//python:py_library.bzl", "py_library")', + 'load("@rules_python//python:py_binary.bzl", "py_binary")', + 'load("@rules_python//python:py_test.bzl", "py_test")', + 'py_library(', + ' name = "library",', + ' srcs = ["library.py"],', + ' visibility = ["//visibility:public"],', + ' deps = ["@bazel_tools//tools/python/runfiles"],', + ')', + '', + 'py_binary(', + ' name = "binary",', + ' srcs = ["binary.py"],', + ' deps = [', + ' ":library",', + ' "@bazel_tools//tools/python/runfiles",', + ' ],', + ')', + '', + 'py_test(', + ' name = "test",', + ' srcs = ["test.py"],', + ' deps = [', + ' ":library",', + ' "@bazel_tools//tools/python/runfiles",', + ' ],', + ')', + ], + ) self.ScratchFile('pkg/library.py', [ 'from bazel_tools.tools.python.runfiles import runfiles', 'def print_repo_name():', @@ -266,6 +307,8 @@ def testPyRunfilesLibraryCurrentRepository(self): self.ScratchFile( 'other_repo_path/other_pkg/BUILD.bazel', [ + 'load("@rules_python//python:py_binary.bzl", "py_binary")', + 'load("@rules_python//python:py_test.bzl", "py_test")', 'py_binary(', ' name = "binary",', ' srcs = ["binary.py"],', diff --git a/src/test/py/bazel/query_test.py b/src/test/py/bazel/query_test.py index 57c484e392bd67..b5eeecab9ce170 100644 --- a/src/test/py/bazel/query_test.py +++ b/src/test/py/bazel/query_test.py @@ -43,10 +43,16 @@ def testSimpleQuery(self): def testQueryWithDifferentOutputBaseAfterBuilding(self): output_base = tempfile.mkdtemp(dir=os.getenv('TEST_TMPDIR')) - self.ScratchFile('MODULE.bazel') + self.ScratchFile( + 'MODULE.bazel', + [ + 'bazel_dep(name = "rules_python", version = "0.40.0")', + ], + ) self.ScratchFile( 'BUILD', [ + 'load("@rules_python//python:py_binary.bzl", "py_binary")', 'py_binary(name="a", srcs=["a.py"])', ], ) diff --git a/src/test/py/bazel/runfiles_test.py b/src/test/py/bazel/runfiles_test.py index 30d268bb251110..98fd734f2c8669 100644 --- a/src/test/py/bazel/runfiles_test.py +++ b/src/test/py/bazel/runfiles_test.py @@ -262,25 +262,35 @@ def testRunfilesLibrariesFindRlocationpathExpansion(self): self.ScratchFile("A/REPO.bazel") self.ScratchFile("A/p/BUILD", ["exports_files(['foo.txt'])"]) self.ScratchFile("A/p/foo.txt", ["Hello, World!"]) - self.ScratchFile("MODULE.bazel", [ - 'local_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")', # pylint: disable=line-too-long - 'local_repository(name = "A", path = "A")', - ]) - self.ScratchFile("pkg/BUILD", [ - "py_binary(", - " name = 'bin',", - " srcs = ['bin.py'],", - " args = [", - " '$(rlocationpath bar.txt)',", - " '$(rlocationpath @A//p:foo.txt)',", - " ],", - " data = [", - " 'bar.txt',", - " '@A//p:foo.txt'", - " ],", - " deps = ['@bazel_tools//tools/python/runfiles'],", - ")", - ]) + self.ScratchFile( + "MODULE.bazel", + [ + 'bazel_dep(name = "rules_python", version = "0.40.0")', + "local_repository = use_repo_rule(", + ' "@bazel_tools//tools/build_defs/repo:local.bzl",', + ' "local_repository")', + 'local_repository(name = "A", path = "A")', + ], + ) + self.ScratchFile( + "pkg/BUILD", + [ + 'load("@rules_python//python:py_binary.bzl", "py_binary")', + "py_binary(", + " name = 'bin',", + " srcs = ['bin.py'],", + " args = [", + " '$(rlocationpath bar.txt)',", + " '$(rlocationpath @A//p:foo.txt)',", + " ],", + " data = [", + " 'bar.txt',", + " '@A//p:foo.txt'", + " ],", + " deps = ['@bazel_tools//tools/python/runfiles'],", + ")", + ], + ) self.ScratchFile("pkg/bar.txt", ["Hello, Bazel!"]) self.ScratchFile("pkg/bin.py", [ "import sys", @@ -296,10 +306,13 @@ def testRunfilesLibrariesFindRlocationpathExpansion(self): self.assertEqual(stdout[1], "Hello, World!") def setUpRunfilesDirectoryIncrementalityTest(self): - self.ScratchFile("MODULE.bazel") + self.ScratchFile( + "MODULE.bazel", ['bazel_dep(name = "rules_shell", version = "0.3.0")'] + ) self.ScratchFile( "BUILD", [ + 'load("@rules_shell//shell:sh_test.bzl", "sh_test")', "sh_test(", " name = 'test',", " srcs = ['test.sh'],", @@ -418,10 +431,13 @@ def testRunfilesDirectoryIncrementalityNoBuildRunfileLinksEnableRunfilesFlippedO self.assertNotEqual(exit_code, 0) def testTestsRunWithNoBuildRunfileLinksAndNoEnableRunfiles(self): - self.ScratchFile("MODULE.bazel") + self.ScratchFile( + "MODULE.bazel", ['bazel_dep(name = "rules_shell", version = "0.3.0")'] + ) self.ScratchFile( "BUILD", [ + 'load("@rules_shell//shell:sh_test.bzl", "sh_test")', "sh_test(", " name = 'test',", " srcs = ['test.sh'],", @@ -436,10 +452,13 @@ def testTestsRunWithNoBuildRunfileLinksAndNoEnableRunfiles(self): def testWrappedShBinary(self): self.writeWrapperRule() - self.ScratchFile("MODULE.bazel") + self.ScratchFile( + "MODULE.bazel", ['bazel_dep(name = "rules_shell", version = "0.3.0")'] + ) self.ScratchFile( "BUILD", [ + 'load("@rules_shell//shell:sh_binary.bzl", "sh_binary")', "sh_binary(", " name = 'binary',", " srcs = ['binary.sh'],", @@ -466,6 +485,7 @@ def disabledWrappedPyBinary(self): self.ScratchFile( "BUILD", [ + 'load("@rules_python//python:py_binary.bzl", "py_binary")', "py_binary(", " name = 'binary',", " srcs = ['binary.py'],", @@ -485,10 +505,13 @@ def disabledWrappedPyBinary(self): def testWrappedJavaBinary(self): self.writeWrapperRule() - self.ScratchFile("MODULE.bazel") + self.ScratchFile( + "MODULE.bazel", ['bazel_dep(name = "rules_java", version = "8.11.0")'] + ) self.ScratchFile( "BUILD", [ + 'load("@rules_java//java:java_binary.bzl", "java_binary")', "java_binary(", " name = 'binary',", " srcs = ['Binary.java'],", @@ -518,26 +541,16 @@ def writeWrapperRule(self): [ "def _wrapper_impl(ctx):", " target = ctx.attr.target", - ( - " original_executable =" - " target[DefaultInfo].files_to_run.executable" - ), - ( - " executable =" - " ctx.actions.declare_file(original_executable.basename)" - ), - ( - " ctx.actions.symlink(output = executable, target_file =" - " original_executable)" - ), - ( - " data_runfiles =" - " ctx.runfiles([executable]).merge(target[DefaultInfo].data_runfiles)" - ), - ( - " default_runfiles =" - " ctx.runfiles([executable]).merge(target[DefaultInfo].default_runfiles)" - ), + " original_executable = (", + " target[DefaultInfo].files_to_run.executable)", + " executable = ctx.actions.declare_file(", + " original_executable.basename)", + " ctx.actions.symlink(output = executable,", + " target_file = original_executable)", + " data_runfiles = ctx.runfiles([executable]).merge(", + " target[DefaultInfo].data_runfiles)", + " default_runfiles = ctx.runfiles([executable]).merge(", + " target[DefaultInfo].default_runfiles)", " return [", " DefaultInfo(", " executable = executable,", diff --git a/src/test/shell/bazel/BUILD b/src/test/shell/bazel/BUILD index 53e331f398fc21..be42ada133b340 100644 --- a/src/test/shell/bazel/BUILD +++ b/src/test/shell/bazel/BUILD @@ -1,4 +1,6 @@ load("@bazel_skylib//rules:write_file.bzl", "write_file") +load("@rules_shell//shell:sh_library.bzl", "sh_library") +load("@rules_shell//shell:sh_test.bzl", "sh_test") load("//:workspace_deps.bzl", "gen_workspace_stanza") load("//src/tools/bzlmod:utils.bzl", "get_canonical_repo_name") diff --git a/src/test/shell/bazel/bazel_build_event_stream_test.sh b/src/test/shell/bazel/bazel_build_event_stream_test.sh index 9d026a34d07442..bea2d9ee68b2dd 100755 --- a/src/test/shell/bazel/bazel_build_event_stream_test.sh +++ b/src/test/shell/bazel/bazel_build_event_stream_test.sh @@ -185,8 +185,10 @@ EOF } function test_residue_in_run_bep(){ + add_rules_shell "MODULE.bazel" mkdir -p a cat > a/BUILD <<'EOF' +load("@rules_shell//shell:sh_binary.bzl", "sh_binary") sh_binary( name = 'arg', srcs = ['arg.sh'], @@ -221,8 +223,10 @@ EOF } function test_no_residue_in_run_bep(){ + add_rules_shell "MODULE.bazel" mkdir -p a cat > a/BUILD <<'EOF' +load("@rules_shell//shell:sh_binary.bzl", "sh_binary") sh_binary( name = 'arg', srcs = ['arg.sh'], @@ -261,8 +265,10 @@ EOF function test_residue_in_run_test_bep(){ + add_rules_shell "MODULE.bazel" mkdir -p a cat > a/BUILD <<'EOF' +load("@rules_shell//shell:sh_test.bzl", "sh_test") sh_test( name = 'arg', srcs = ['arg_test.sh'], @@ -297,8 +303,10 @@ EOF } function test_no_residue_in_run_test_bep(){ + add_rules_shell "MODULE.bazel" mkdir -p a cat > a/BUILD <<'EOF' +load("@rules_shell//shell:sh_test.bzl", "sh_test") sh_test( name = 'arg', srcs = ['arg_test.sh'], diff --git a/src/test/shell/bazel/bazel_coverage_cc_test_gcc.sh b/src/test/shell/bazel/bazel_coverage_cc_test_gcc.sh index 204c3cb951fefd..e46fcee68e1dc3 100755 --- a/src/test/shell/bazel/bazel_coverage_cc_test_gcc.sh +++ b/src/test/shell/bazel/bazel_coverage_cc_test_gcc.sh @@ -29,10 +29,17 @@ if [[ "${COVERAGE_GENERATOR_DIR}" != "released" ]]; then add_to_bazelrc "build --override_repository=remote_coverage_tools=${COVERAGE_GENERATOR_DIR}" fi +function set_up() { + add_rules_cc "MODULE.bazel" +} + # Writes the C++ source files and a corresponding BUILD file for which to # collect code coverage. The sources are a.cc, a.h and t.cc. function setup_a_cc_lib_and_t_cc_test() { cat << EOF > BUILD +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_test.bzl", "cc_test") + cc_library( name = "a", srcs = ["a.cc"], @@ -137,6 +144,9 @@ function test_cc_test_coverage_gcov_virtual_includes() { ########### Setup source files and BUILD file ########### mkdir -p examples/cpp cat << EOF > examples/cpp/BUILD +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_test.bzl", "cc_test") + cc_library( name = "a_header", hdrs = ["foo/bar/baz/a_header.h"], @@ -279,6 +289,9 @@ function test_cc_test_gcov_multiple_headers() { ############## Setting up the test sources and BUILD file ############## mkdir -p "coverage_srcs/" cat << EOF > BUILD +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_test.bzl", "cc_test") + cc_library( name = "a", srcs = ["coverage_srcs/a.cc"], @@ -383,6 +396,9 @@ function test_cc_test_gcov_multiple_headers_instrument_test_target() { ############## Setting up the test sources and BUILD file ############## mkdir -p "coverage_srcs/" cat << EOF > BUILD +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_test.bzl", "cc_test") + cc_library( name = "a", srcs = ["coverage_srcs/a.cc"], @@ -492,6 +508,9 @@ function test_cc_test_gcov_same_header_different_libs() { ############## Setting up the test sources and BUILD file ############## mkdir -p "coverage_srcs/" cat << EOF > BUILD +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_test.bzl", "cc_test") + cc_library( name = "a", srcs = ["coverage_srcs/a.cc"], @@ -654,6 +673,9 @@ function test_cc_test_gcov_same_header_different_libs_multiple_exec() { ############## Setting up the test sources and BUILD file ############## mkdir -p "coverage_srcs/" cat << EOF > BUILD +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_test.bzl", "cc_test") + cc_library( name = "a", srcs = ["coverage_srcs/a.cc"], @@ -845,6 +867,9 @@ function test_failed_coverage() { fi cat << EOF > BUILD +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_test.bzl", "cc_test") + cc_library( name = "a", srcs = ["a.cc"], @@ -924,6 +949,8 @@ function test_coverage_doesnt_fail_on_empty_output() { } EOF cat << EOF > empty_cov/BUILD +load("@rules_cc//cc:cc_test.bzl", "cc_test") + cc_test( name = "empty-cov-test", srcs = ["t.cc"] @@ -943,8 +970,11 @@ local_repository( path = "other_repo", ) EOF + add_rules_cc "MODULE.bazel" cat > BUILD <<'EOF' +load("@rules_cc//cc:cc_library.bzl", "cc_library") + cc_library( name = "b", srcs = ["b.cc"], @@ -971,6 +1001,9 @@ EOF touch other_repo/REPO.bazel cat > other_repo/BUILD <<'EOF' +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_test.bzl", "cc_test") + cc_library( name = "a", srcs = ["a.cc"], diff --git a/src/test/shell/bazel/bazel_coverage_cc_test_llvm.sh b/src/test/shell/bazel/bazel_coverage_cc_test_llvm.sh index 43489ca1e0c636..8d9e5a2566307a 100755 --- a/src/test/shell/bazel/bazel_coverage_cc_test_llvm.sh +++ b/src/test/shell/bazel/bazel_coverage_cc_test_llvm.sh @@ -29,6 +29,10 @@ if [[ "${COVERAGE_GENERATOR_DIR}" != "released" ]]; then add_to_bazelrc "build --override_repository=remote_coverage_tools=${COVERAGE_GENERATOR_DIR}" fi +function set_up() { + add_rules_cc "MODULE.bazel" +} + # Configures Bazel to emit coverage using LLVM tools, returning a non-zero exit # code if the tools are not available. function setup_llvm_coverage_tools_for_lcov() { @@ -67,6 +71,9 @@ function setup_llvm_coverage_tools_for_lcov() { # collect code coverage. The sources are a.cc, a.h and t.cc. function setup_a_cc_lib_and_t_cc_test() { cat << EOF > BUILD +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_test.bzl", "cc_test") + cc_library( name = "a", srcs = ["a.cc"], @@ -201,8 +208,13 @@ end_of_record" function test_cc_test_with_runtime_objects_not_in_runfiles() { setup_llvm_coverage_tools_for_lcov || return 0 + add_rules_java "MODULE.bazel" cat << EOF > BUILD +load("@rules_java//java:java_binary.bzl", "java_binary") +load("@rules_cc//cc:cc_binary.bzl", "cc_binary") +load("@rules_cc//cc:cc_library.bzl", "cc_library") + cc_test( name = "main", srcs = ["main.cpp"], @@ -265,8 +277,11 @@ local_repository( path = "other_repo", ) EOF + add_rules_cc "MODULE.bazel" cat > BUILD <<'EOF' +load("@rules_cc//cc:cc_library.bzl", "cc_library") + cc_library( name = "b", srcs = ["b.cc"], @@ -424,6 +439,9 @@ function test_coverage_with_tmp_in_path() { mkdir -p foo/tmp cat > foo/tmp/BUILD <<'EOF' +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_test.bzl", "cc_test") + cc_library( name = "a", srcs = ["a.cc"], @@ -494,6 +512,9 @@ function test_coverage_for_header() { setup_llvm_coverage_tools_for_lcov || return 0 cat << EOF > BUILD +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_test.bzl", "cc_test") + cc_library( name = "foo", srcs = ["foo.cc"], diff --git a/src/test/shell/bazel/bazel_coverage_java_test.sh b/src/test/shell/bazel/bazel_coverage_java_test.sh index 65facbacd9ad6b..4152c83367481f 100755 --- a/src/test/shell/bazel/bazel_coverage_java_test.sh +++ b/src/test/shell/bazel/bazel_coverage_java_test.sh @@ -42,9 +42,15 @@ if [[ $# -gt 0 ]]; then add_to_bazelrc "build --tool_java_runtime_version=${JAVA_RUNTIME_VERSION}" fi +function set_up() { + add_rules_java "MODULE.bazel" +} + function test_java_test_coverage() { cat < BUILD load("@bazel_tools//tools/jdk:default_java_toolchain.bzl", "default_java_toolchain") +load("@rules_java//java:java_test.bzl", "java_test") +load("@rules_java//java:java_library.bzl", "java_library") java_test( name = "test", @@ -139,6 +145,9 @@ end_of_record" function test_java_test_coverage_combined_report() { cat < BUILD +load("@rules_java//java:java_library.bzl", "java_library") +load("@rules_java//java:java_test.bzl", "java_test") + java_test( name = "test", srcs = glob(["src/test/**/*.java"]), @@ -228,6 +237,10 @@ end_of_record" function test_java_test_java_import_coverage() { cat < BUILD +load("@rules_java//java:java_test.bzl", "java_test") +load("@rules_java//java:java_import.bzl", "java_import") +load("@rules_java//java:java_library.bzl", "java_library") + java_test( name = "test", srcs = glob(["src/test/**/*.java"]), @@ -319,6 +332,8 @@ function test_run_jar_in_subprocess_empty_env() { mkdir -p java/cov mkdir -p javatests/cov cat >java/cov/BUILD <javatests/cov/BUILD <java/cov/BUILD <javatests/cov/BUILD <java/cov/BUILD <javatests/cov/BUILD < BUILD +load("@rules_java//java:java_library.bzl", "java_library") +load("@rules_java//java:java_test.bzl", "java_test") + java_library( name = "lib", srcs = ["src/main/java/lib/Lib.java"], @@ -686,6 +714,10 @@ LF:2" function test_java_coverage_with_classpath_and_data_jar() { cat < BUILD +load("@rules_java//java:java_binary.bzl", "java_binary") +load("@rules_java//java:java_test.bzl", "java_test") +load("@rules_java//java:java_library.bzl", "java_library") + java_binary( name = "foo", srcs = ["src/main/java/foo/Foo.java"], @@ -784,6 +816,9 @@ function test_java_string_switch_coverage() { # (because a switch on String::hashCode is made first) - these branches should # be filtered. cat < BUILD +load("@rules_java//java:java_test.bzl", "java_test") +load("@rules_java//java:java_library.bzl", "java_library") + java_test( name = "test", srcs = glob(["src/test/**/*.java"]), @@ -876,6 +911,9 @@ function test_finally_block_branch_coverage() { # may enter them (e.g. via an exception handler or when no exception is # thrown). cat < BUILD +load("@rules_java//java:java_test.bzl", "java_test") +load("@rules_java//java:java_library.bzl", "java_library") + java_test( name = "test", srcs = glob(["src/test/**/*.java"]), @@ -1081,7 +1119,10 @@ function test_java_test_coverage_cc_binary() { fi ########### Setup source files and BUILD file ########### + add_rules_cc "MODULE.bazel" cat < BUILD +load("@rules_java//java:java_test.bzl", "java_test") + java_test( name = "NumJava", srcs = ["NumJava.java"], @@ -1103,6 +1144,9 @@ EOF mkdir -p examples/cpp cat < examples/cpp/BUILD +load("@rules_cc//cc:cc_binary.bzl", "cc_binary") +load("@rules_cc//cc:cc_library.bzl", "cc_library") + package(default_visibility = ["//visibility:public"]) cc_binary( @@ -1227,6 +1271,8 @@ local_repository( EOF cat > BUILD <<'EOF' +load("@rules_java//java:java_library.bzl", "java_library") + java_library( name = "math", srcs = ["src/main/com/example/Math.java"], @@ -1250,6 +1296,9 @@ EOF touch other_repo/REPO.bazel cat > other_repo/BUILD <<'EOF' +load("@rules_java//java:java_library.bzl", "java_library") +load("@rules_java//java:java_test.bzl", "java_test") + java_library( name = "collatz", srcs = ["src/main/com/example/Collatz.java"], diff --git a/src/test/shell/bazel/bazel_example_test.sh b/src/test/shell/bazel/bazel_example_test.sh index c787ad2b0f8bf4..39426b0ba64486 100755 --- a/src/test/shell/bazel/bazel_example_test.sh +++ b/src/test/shell/bazel/bazel_example_test.sh @@ -55,6 +55,8 @@ function set_up() { module(name="io_bazel") EOF add_rules_java "MODULE.bazel" + add_rules_python "MODULE.bazel" + add_rules_shell "MODULE.bazel" } # diff --git a/src/test/shell/bazel/bazel_hermetic_sandboxing_test.sh b/src/test/shell/bazel/bazel_hermetic_sandboxing_test.sh index 3c80da909a5437..d019abdcebd5b0 100755 --- a/src/test/shell/bazel/bazel_hermetic_sandboxing_test.sh +++ b/src/test/shell/bazel/bazel_hermetic_sandboxing_test.sh @@ -63,6 +63,7 @@ function set_up { sed -i.bak '/sandbox_tmpfs_path/d' $TEST_TMPDIR/bazelrc + add_rules_python "MODULE.bazel" mkdir -p examples/hermetic cat << 'EOF' > examples/hermetic/unknown_file.txt @@ -95,7 +96,7 @@ import import_module EOF cat << 'EOF' > examples/hermetic/BUILD - +load("@rules_python//python:py_test.bzl", "py_test") load( "test.bzl", "overwrite_via_symlink", diff --git a/src/test/shell/bazel/bazel_java_test.sh b/src/test/shell/bazel/bazel_java_test.sh index 3cb4b4e2c0d032..a59da78ec33ba2 100755 --- a/src/test/shell/bazel/bazel_java_test.sh +++ b/src/test/shell/bazel/bazel_java_test.sh @@ -94,6 +94,8 @@ function set_up() { function write_hello_library_files() { mkdir -p java/main cat >java/main/BUILD <java/hello_library/BUILD < java/com/google/sandwich/BUILD <java/main/BUILD <g/BUILD <<'EOF' +load("@rules_java//java:java_library.bzl", "java_library") + genrule( name = "stub", srcs = ["B.java"], @@ -623,6 +633,8 @@ public class HelloLibrary { EOF # Disable error-prone for this target, though. cat >java/hello_library/BUILD < java/testrunners/BUILD < java/com/google/sandwich/BUILD << EOF load(':java_custom_library.bzl', 'java_custom_library') +load("@rules_java//java:java_library.bzl", "java_library") +load("@rules_java//java:java_binary.bzl", "java_binary") java_binary( name = "Main", @@ -805,6 +822,8 @@ function test_java_binary_deps_java_sandwich() { cat > java/com/google/sandwich/BUILD << EOF load(':java_custom_library.bzl', 'java_custom_library') +load("@rules_java//java:java_binary.bzl", "java_binary") +load("@rules_java//java:java_library.bzl", "java_library") java_binary( name = "Main", @@ -868,6 +887,8 @@ function test_java_binary_runtime_deps_java_sandwich() { cat > java/com/google/sandwich/BUILD << EOF load(':java_custom_library.bzl', 'java_custom_library') +load("@rules_java//java:java_binary.bzl", "java_binary") +load("@rules_java//java:java_library.bzl", "java_library") java_binary( name = "Main", @@ -921,6 +942,8 @@ function test_java_test_java_sandwich() { cat > java/com/google/sandwich/BUILD << EOF load(':java_custom_library.bzl', 'java_custom_library') +load("@rules_java//java:java_library.bzl", "java_library") +load("@rules_java//java:java_test.bzl", "java_test") java_test( name = "MainTest", @@ -1016,6 +1039,8 @@ EOF # With explicit_java_test_deps, we fail without explicitly specifying the JUnit deps. cat > java/testrunners/BUILD < java/testrunners/BUILD < java/com/google/sandwich/BUILD << EOF load(':java_custom_library.bzl', 'java_custom_library') +load("@rules_java//java:java_binary.bzl", "java_binary") java_binary( name = "Main", @@ -1171,6 +1199,8 @@ function test_basic_java_sandwich_with_exports_and_java_library() { cat > java/com/google/sandwich/BUILD << EOF load(':java_custom_library.bzl', 'java_custom_library') +load("@rules_java//java:java_binary.bzl", "java_binary") +load("@rules_java//java:java_library.bzl", "java_library") java_binary( name = "Main", @@ -1268,6 +1298,8 @@ function test_basic_java_sandwich_with_transitive_deps_and_java_library_should_f cat > java/com/google/sandwich/BUILD << EOF load(':java_custom_library.bzl', 'java_custom_library') +load("@rules_java//java:java_library.bzl", "java_library") +load("@rules_java//java:java_binary.bzl", "java_binary") java_binary( name = "Main", @@ -1343,6 +1375,7 @@ function test_basic_java_sandwich_with_deps_should_fail() { cat > java/com/google/sandwich/BUILD << EOF load(':java_custom_library.bzl', 'java_custom_library') +load("@rules_java//java:java_binary.bzl", "java_binary") java_binary( name = "Main", @@ -1417,6 +1450,7 @@ function test_java_merge_outputs() { cat > java/com/google/sandwich/BUILD << EOF load(':java_custom_library.bzl', 'java_custom_library') +load("@rules_java//java:java_library.bzl", "java_library") java_custom_library( name = "custom", @@ -1562,6 +1596,8 @@ public class Hello { } EOF cat > BUILD <<'EOF' +load("@rules_java//java:java_binary.bzl", "java_binary") + java_binary( name = "a", srcs = ["Hello.java"], @@ -1593,12 +1629,15 @@ function test_current_host_java_runtime_runfiles() { if "$is_windows"; then echo "Skipping test on Windows" && return fi + add_rules_shell "MODULE.bazel" local -r pkg="${FUNCNAME[0]}" mkdir "${pkg}" || fail "Expected success" touch "${pkg}"/BUILD "${pkg}"/run.sh cat > "${pkg}"/BUILD < $repo/jni/BUILD < test/BUILD <java/main/BUILD < pkg/BUILD.bazel <<'EOF' +load("@rules_java//java:java_library.bzl", "java_library") +load("@rules_java//java:java_binary.bzl", "java_binary") +load("@rules_java//java:java_test.bzl", "java_test") + java_library( name = "library", srcs = ["Library.java"], @@ -1935,6 +1988,10 @@ EOF mkdir -p other_repo/pkg cat > other_repo/pkg/BUILD.bazel <<'EOF' +load("@rules_java//java:java_library.bzl", "java_library") +load("@rules_java//java:java_binary.bzl", "java_binary") +load("@rules_java//java:java_test.bzl", "java_test") + java_library( name = "library2", srcs = ["Library2.java"], @@ -2031,6 +2088,8 @@ EOF function test_header_compiler_direct_supports_release() { mkdir -p pkg cat << 'EOF' > pkg/BUILD +load("@rules_java//java:java_library.bzl", "java_library") + java_library(name = "a", srcs = ["A.java"], deps = [":b"]) java_library(name = "b", srcs = ["B.java"], javacopts = ["--release", "11"]) EOF @@ -2065,6 +2124,8 @@ function test_header_compiler_direct_supports_unicode() { local -r unicode="äöüÄÖÜß🌱" mkdir -p pkg cat << EOF > pkg/BUILD +load("@rules_java//java:java_library.bzl", "java_library") + java_library(name = "a", srcs = ["A.java"], deps = [":b"]) java_library(name = "b", srcs = ["${unicode}.java"]) EOF @@ -2081,7 +2142,9 @@ EOF function test_sandboxed_multiplexing() { mkdir -p pkg cat << 'EOF' > pkg/BUILD +load("@rules_java//java:java_library.bzl", "java_library") load("@bazel_tools//tools/jdk:default_java_toolchain.bzl", "default_java_toolchain") + default_java_toolchain( name = "java_toolchain", source_version = "17", @@ -2109,6 +2172,8 @@ function test_sandboxed_multiplexing_hermetic_paths_in_diagnostics() { mkdir -p pkg cat << 'EOF' > pkg/BUILD load("@bazel_tools//tools/jdk:default_java_toolchain.bzl", "default_java_toolchain") +load("@rules_java//java:java_library.bzl", "java_library") + default_java_toolchain( name = "java_toolchain", source_version = "17", @@ -2146,9 +2211,12 @@ local_path_override( path = "lib_c", ) EOF + add_rules_java "MODULE.bazel" mkdir -p pkg cat << 'EOF' > pkg/BUILD +load("@rules_java//java:java_library.bzl", "java_library") + java_library(name = "a", srcs = ["A.java"], deps = [":b"]) java_library(name = "b", srcs = ["B.java"], deps = ["@c"]) EOF @@ -2163,7 +2231,11 @@ EOF cat << 'EOF' > lib_c/MODULE.bazel module(name = "lib_c") EOF + add_rules_java "lib_c/MODULE.bazel" cat << 'EOF' > lib_c/BUILD +load("@rules_java//java:java_library.bzl", "java_library") +load("@rules_java//java:java_import.bzl", "java_import") + java_library(name = "c_pregen", srcs = ["C.java"]) java_import(name = "c", jars = ["libc_pregen.jar"], visibility = ["//visibility:public"]) EOF @@ -2186,9 +2258,13 @@ local_path_override( path = "lib_c", ) EOF + add_rules_java "MODULE.bazel" mkdir -p pkg cat << 'EOF' > pkg/BUILD +load("@rules_java//java:java_library.bzl", "java_library") +load("@rules_java//java:java_binary.bzl", "java_binary") + java_binary(name = "Main", srcs = ["Main.java"], deps = [":a"]) java_library(name = "a", srcs = ["A.java"], deps = [":b"]) java_library(name = "b", srcs = ["B.java"], deps = ["@c"]) @@ -2207,7 +2283,10 @@ EOF cat << 'EOF' > lib_c/MODULE.bazel module(name = "lib_c") EOF + add_rules_java lib_c/MODULE.bazel cat << 'EOF' > lib_c/BUILD +load("@rules_java//java:java_library.bzl", "java_library") + java_library(name = "c", srcs = ["C.java"], visibility = ["//visibility:public"]) EOF cat << 'EOF' > lib_c/C.java @@ -2229,9 +2308,12 @@ local_path_override( path = "lib_c", ) EOF + add_rules_java "MODULE.bazel" mkdir -p pkg cat << 'EOF' > pkg/BUILD +load("@rules_java//java:java_library.bzl", "java_library") + java_library(name = "a", srcs = ["A.java"], deps = [":b"]) java_library(name = "b", srcs = ["B.java"], deps = ["@c"]) EOF @@ -2250,7 +2332,10 @@ EOF cat << 'EOF' > lib_c/MODULE.bazel module(name = "lib_c") EOF + add_rules_java lib_c/MODULE.bazel cat << 'EOF' > lib_c/BUILD +load("@rules_java//java:java_library.bzl", "java_library") + java_library(name = "c", srcs = ["C.java"], visibility = ["//visibility:public"]) EOF cat << 'EOF' > lib_c/C.java @@ -2264,6 +2349,8 @@ EOF function test_one_version() { mkdir -p pkg cat << 'EOF' > pkg/BUILD +load("@rules_java//java:java_binary.bzl", "java_binary") + java_binary( name = "a", srcs = ["A.java"], @@ -2283,6 +2370,8 @@ public class A extends B { EOF mkdir -p pkg/b1 cat << 'EOF' > pkg/b1/BUILD +load("@rules_java//java:java_library.bzl", "java_library") + java_library( name = "b1", srcs = ["B.java"], @@ -2296,6 +2385,8 @@ public class B { EOF mkdir -p pkg/b2 cat << 'EOF' > pkg/b2/BUILD +load("@rules_java//java:java_library.bzl", "java_library") + java_library( name = "b2", srcs = ["B.java"], @@ -2320,6 +2411,7 @@ function test_one_version_allowlist() { mkdir -p pkg cat << 'EOF' > pkg/BUILD load("@bazel_tools//tools/jdk:default_java_toolchain.bzl", "default_java_toolchain") +load("@rules_java//java:java_binary.bzl", "java_binary") default_java_toolchain( name = "java_toolchain", @@ -2350,6 +2442,8 @@ public class A extends B { EOF mkdir -p pkg/b1 cat << 'EOF' > pkg/b1/BUILD +load("@rules_java//java:java_library.bzl", "java_library") + java_library( name = "b1", srcs = ["B.java"], @@ -2365,6 +2459,8 @@ public class B { EOF mkdir -p pkg/b2 cat << 'EOF' > pkg/b2/BUILD +load("@rules_java//java:java_library.bzl", "java_library") + java_library( name = "b2", srcs = ["B.java"], @@ -2402,6 +2498,8 @@ EOF function test_single_jar_does_not_create_empty_log4JPlugins_file() { mkdir -p pkg cat << 'EOF' > pkg/BUILD +load("@rules_java//java:java_library.bzl", "java_library") + java_library( name = "b", resources = ["foo.txt"], diff --git a/src/test/shell/bazel/bazel_java_test_defaults.sh b/src/test/shell/bazel/bazel_java_test_defaults.sh index 11c962d2d64763..3b30e0e9f87e7a 100755 --- a/src/test/shell/bazel/bazel_java_test_defaults.sh +++ b/src/test/shell/bazel/bazel_java_test_defaults.sh @@ -55,17 +55,17 @@ esac # Java source files version shall match --java_language_version_flag version. # Output class files shall be created in corresponding version (JDK 8, class version is 52). function test_default_java_toolchain_target_version() { + add_rules_java "MODULE.bazel" mkdir -p java/main cat >java/main/BUILD <java/main/BUILD <java/main/BUILD < pkg/BUILD.bazel <<'EOF' +load("@rules_java//java:java_binary.bzl", "java_binary") +load("@rules_cc//cc:cc_binary.bzl", "cc_binary") + constraint_setting( name = "exotic_constraint", ) @@ -307,8 +314,11 @@ EOF } function test_java_library_compiles_for_any_platform_with_local_jdk() { + add_rules_java "MODULE.bazel" mkdir -p pkg cat > pkg/BUILD.bazel <<'EOF' +load("@rules_java//java:java_library.bzl", "java_library") + platform(name = "exotic_platform") java_library( name = "foo", @@ -330,8 +340,11 @@ EOF } function test_java_library_compiles_for_any_platform_with_remote_jdk() { + add_rules_java "MODULE.bazel" mkdir -p pkg cat > pkg/BUILD.bazel <<'EOF' +load("@rules_java//java:java_library.bzl", "java_library") + platform(name = "exotic_platform") java_library( name = "foo", @@ -353,8 +366,10 @@ EOF } function test_non_executable_java_binary_compiles_for_any_platform_with_local_jdk() { + add_rules_java "MODULE.bazel" mkdir -p pkg cat > pkg/BUILD.bazel <<'EOF' +load("@rules_java//java:java_binary.bzl", "java_binary") platform(name = "exotic_platform") java_binary( name = "foo", @@ -379,8 +394,10 @@ EOF } function test_non_executable_java_binary_compiles_for_any_platform_with_remote_jdk() { + add_rules_java "MODULE.bazel" mkdir -p pkg cat > pkg/BUILD.bazel <<'EOF' +load("@rules_java//java:java_binary.bzl", "java_binary") platform(name = "exotic_platform") java_binary( name = "foo", @@ -406,8 +423,11 @@ EOF } function test_executable_java_binary_fails_without_runtime_with_local_jdk() { + add_rules_java "MODULE.bazel" mkdir -p pkg cat > pkg/BUILD.bazel <<'EOF' +load("@rules_java//java:java_binary.bzl", "java_binary") + platform(name = "exotic_platform") java_binary( name = "foo", @@ -437,8 +457,11 @@ EOF } function test_executable_java_binary_fails_without_runtime_with_remote_jdk() { + add_rules_java "MODULE.bazel" mkdir -p pkg cat > pkg/BUILD.bazel <<'EOF' +load("@rules_java//java:java_binary.bzl", "java_binary") + platform(name = "exotic_platform") java_binary( name = "foo", diff --git a/src/test/shell/bazel/bazel_localtest_test.sh b/src/test/shell/bazel/bazel_localtest_test.sh index 5a387d47f5854c..15071308e7afe7 100755 --- a/src/test/shell/bazel/bazel_localtest_test.sh +++ b/src/test/shell/bazel/bazel_localtest_test.sh @@ -22,6 +22,7 @@ source "${CURRENT_DIR}/../integration_test_setup.sh" \ || { echo "integration_test_setup.sh not found!" >&2; exit 1; } function test_run_local() { + add_rules_shell "MODULE.bazel" mkdir -p dir cat > emptyfile @@ -37,6 +38,8 @@ EOF chmod +x dir/test_local.sh cat < dir/BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") + sh_test( name = "localtest", srcs = [ "test_local.sh" ], diff --git a/src/test/shell/bazel/bazel_proto_library_test.sh b/src/test/shell/bazel/bazel_proto_library_test.sh index b3b9f55a3d0071..63d51a43b8d746 100755 --- a/src/test/shell/bazel/bazel_proto_library_test.sh +++ b/src/test/shell/bazel/bazel_proto_library_test.sh @@ -60,8 +60,8 @@ function write_setup() { fi cat > x/person/BUILD << EOF -package(default_visibility = ["//visibility:public"]) $include_macro +package(default_visibility = ["//visibility:public"]) $proto_library_name( name = "person_proto", srcs = ["person.proto"], @@ -304,6 +304,9 @@ function write_java_library() { # should depend on x/foo:foo mkdir -p java/com/google/src cat > java/com/google/src/BUILD << EOF +load("@com_google_protobuf//bazel:java_proto_library.bzl", "java_proto_library") +load("@rules_java//java:java_library.bzl", "java_library") + java_library( name = "top", srcs = ["A.java"], @@ -338,6 +341,8 @@ EOF function test_legacy_proto_library_include_well_known_protos() { mkdir -p a cat > a/BUILD < java/proto/BUILD << EOF load(':my_rule_with_aspect.bzl', 'my_rule_with_aspect') +load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library") +load("@com_google_protobuf//bazel:java_proto_library.bzl", "java_proto_library") + my_rule_with_aspect( name = 'my_rule', deps = [':my_java_proto'] @@ -441,13 +449,13 @@ EOF } function test_strip_import_prefix() { - write_setup "proto_library" "strip_import_prefix = '/x/person'" "" + write_setup "proto_library" "strip_import_prefix = '/x/person'" 'load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")' bazel build --verbose_failures //x/person:person_proto > "$TEST_log" || fail "Expected success" } function test_strip_import_prefix_fails() { # Don't specify the "strip_import_prefix" attribute and expect failure. - write_setup "proto_library" "" "" + write_setup "proto_library" "" 'load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")' bazel build //x/person:person_proto >& "$TEST_log" && fail "Expected failure" expect_log "phonenumber/phonenumber.proto: File not found." } @@ -461,7 +469,7 @@ function test_strip_import_prefix_macro() { # Fails with "IllegalArgumentException: external/lcocal_jdk in # DumpPlatformClassPath.dumpJDK9AndNewerBootClassPath.java:67 function DISABLED_test_strip_import_prefix_with_java_library() { - write_setup "proto_library" "strip_import_prefix = '/x/person'" "" + write_setup "proto_library" "strip_import_prefix = '/x/person'" 'load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")' write_java_library bazel build //java/com/google/src:top \ --strict_java_deps=off > "$TEST_log" || fail "Expected success" @@ -493,9 +501,13 @@ EOF } function test_cc_proto_library() { + add_rules_cc "MODULE.bazel" mkdir -p a cat > a/BUILD < a/BUILD < a/BUILD < h/BUILD < h/BUILD <"${pkg}/BUILD" < BUILD <<'EOF' +load("@rules_java//java:java_library.bzl", "java_library") + java_library( name = "math", srcs = ["src/main/com/example/Math.java"], @@ -72,7 +74,7 @@ EOF } function test_override_with_empty_java_tools_fails() { - + add_rules_java "MODULE.bazel" touch emptyfile zip -q "${RUNFILES_DIR}/empty.zip" emptyfile @@ -86,6 +88,7 @@ function test_override_with_empty_java_tools_fails() { } function test_build_without_override_succeeds() { + add_rules_java "MODULE.bazel" override_java_tools "${RULES_JAVA_REPO_NAME}" "released" "released" setup_java_library_target diff --git a/src/test/shell/bazel/bazel_rules_java_test.sh b/src/test/shell/bazel/bazel_rules_java_test.sh index 969260de662ccd..5f0154614710d2 100755 --- a/src/test/shell/bazel/bazel_rules_java_test.sh +++ b/src/test/shell/bazel/bazel_rules_java_test.sh @@ -68,6 +68,8 @@ function test_java_library_extension_support() { cat >java/java_library.bzl < a/BUILD < mypkg/BUILD < mypkg/BUILD < BUILD <pkg/BUILD +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_binary.bzl", "cc_binary") + cc_library( name = "a", srcs = ["a.cc"], @@ -323,10 +340,13 @@ local_repository( path = "other_repo", ) EOF + add_rules_shell "MODULE.bazel" mkdir other_repo && cd other_repo touch REPO.bazel mkdir package cat > package/BUILD < py/BUILD < pkg/BUILD.bazel <<'EOF' +load("@rules_shell//shell:sh_binary.bzl", "sh_binary") +load("@rules_shell//shell:sh_library.bzl", "sh_library") +load("@rules_shell//shell:sh_test.bzl", "sh_test") + sh_library( name = "library", srcs = ["library.sh"], @@ -748,6 +776,10 @@ EOF mkdir -p other_repo/pkg cat > other_repo/pkg/BUILD.bazel <<'EOF' +load("@rules_shell//shell:sh_library.bzl", "sh_library") +load("@rules_shell//shell:sh_test.bzl", "sh_test") +load("@rules_shell//shell:sh_binary.bzl", "sh_binary") + sh_library( name = "library2", srcs = ["library2.sh"], @@ -1004,9 +1036,12 @@ function test_bash_runfiles_current_repository_test_nobuild_runfile_links() { function test_bash_runfiles_current_repository_action_binary_main_repo() { setup_module_dot_bazel "MODULE.bazel" + add_rules_shell "MODULE.bazel" mkdir -p pkg cat > pkg/BUILD.bazel <<'EOF' +load("@rules_shell//shell:sh_binary.bzl", "sh_binary") + genrule( name = "gen", outs = ["out"], @@ -1047,9 +1082,12 @@ EOF function test_bash_runfiles_current_repository_action_generated_binary_main_repo() { setup_module_dot_bazel "MODULE.bazel" + add_rules_shell "MODULE.bazel" mkdir -p pkg cat > pkg/BUILD.bazel <<'EOF' +load("@rules_shell//shell:sh_binary.bzl", "sh_binary") + genrule( name = "gen", outs = ["out"], @@ -1103,6 +1141,7 @@ local_repository( path = "other_repo", ) EOF + add_rules_shell "MODULE.bazel" mkdir -p pkg cat > pkg/BUILD.bazel <<'EOF' @@ -1119,6 +1158,8 @@ EOF mkdir -p other_repo/pkg cat > other_repo/pkg/BUILD.bazel <<'EOF' +load("@rules_shell//shell:sh_binary.bzl", "sh_binary") + sh_binary( name = "binary", srcs = ["binary.sh"], @@ -1158,6 +1199,7 @@ local_repository( path = "other_repo", ) EOF + add_rules_shell "MODULE.bazel" mkdir -p pkg cat > pkg/BUILD.bazel <<'EOF' @@ -1174,6 +1216,8 @@ EOF mkdir -p other_repo/pkg cat > other_repo/pkg/BUILD.bazel <<'EOF' +load("@rules_shell//shell:sh_binary.bzl", "sh_binary") + genrule( name = "copy_binary", outs = ["gen_binary.sh"], diff --git a/src/test/shell/bazel/bazel_sandboxing_test.sh b/src/test/shell/bazel/bazel_sandboxing_test.sh index 02981ade9f3bc6..42e36bcf888eb8 100755 --- a/src/test/shell/bazel/bazel_sandboxing_test.sh +++ b/src/test/shell/bazel/bazel_sandboxing_test.sh @@ -132,11 +132,14 @@ function test_can_enable_pseudoterminals() { return 0 fi + add_rules_python "MODULE.bazel" cat > test.py <<'EOF' import pty pty.openpty() EOF cat > BUILD <<'EOF' +load("@rules_python//python:py_test.bzl", "py_test") + py_test( name = "test", srcs = ["test.py"], @@ -179,7 +182,7 @@ EOF } function test_sandbox_expands_tree_artifacts_in_runfiles_tree() { - + add_rules_shell "MODULE.bazel" cat > def.bzl <<'EOF' def _mkdata_impl(ctx): out = ctx.actions.declare_directory(ctx.label.name + ".d") @@ -217,6 +220,7 @@ EOF cat > BUILD <<'EOF' load("//:def.bzl", "mkdata") +load("@rules_shell//shell:sh_test.bzl", "sh_test") mkdata(name = "mkdata") @@ -325,8 +329,11 @@ EOF function setup_tmp_hermeticity_check() { local -r tmpdir=$1 + add_rules_cc "MODULE.bazel" mkdir -p test cat > test/BUILD <<'EOF' +load("@rules_cc//cc:cc_binary.bzl", "cc_binary") + cc_binary( name = "create_file", srcs = ["create_file.cc"], @@ -706,8 +713,11 @@ function test_hermetic_tmp_under_tmp { local_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository") local_repository(name="repo", path="${temp_dir}/repo") EOF + add_rules_shell "MODULE.bazel" cat > a/BUILD <<'EOF' +load("@rules_shell//shell:sh_binary.bzl", "sh_binary") + genrule( name = "g", outs = ["go"], diff --git a/src/test/shell/bazel/bazel_symlink_test.sh b/src/test/shell/bazel/bazel_symlink_test.sh index 42570e9bf736db..65b182aa04e9bc 100755 --- a/src/test/shell/bazel/bazel_symlink_test.sh +++ b/src/test/shell/bazel/bazel_symlink_test.sh @@ -70,6 +70,7 @@ function expect_symlink() { } function set_up() { + add_rules_python "MODULE.bazel" mkdir -p symlink touch symlink/BUILD cat > symlink/symlink.bzl < symlink_helper/BUILD < dir/test.sh @@ -55,6 +56,8 @@ EOF chmod +x dir/test.sh cat < dir/BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") + sh_test( name = "test", srcs = [ "test.sh" ], @@ -83,6 +86,7 @@ function test_3_local_jobs() { # TODO(#2228): Re-enable when the tmpdir creation is fixed. function DISABLED_test_tmpdir() { + add_rules_shell "MODULE.bazel" mkdir -p foo cat > foo/bar_test.sh <<'EOF' #!/bin/sh @@ -90,6 +94,8 @@ echo TEST_TMPDIR=$TEST_TMPDIR EOF chmod +x foo/bar_test.sh cat > foo/BUILD < foo/testenv.sh <<'EOF' #!/bin/sh @@ -128,6 +135,8 @@ echo "ws: $TEST_WORKSPACE" EOF chmod +x foo/testenv.sh cat > foo/BUILD < foo/testenv.sh <<'EOF' #!/bin/sh @@ -152,6 +162,7 @@ echo "ws: $TEST_WORKSPACE" EOF chmod +x foo/testenv.sh cat > foo/BUILD < foo/BUILD + cat > foo/BUILD <& "${TEST_log}" || fail "Test failed" @@ -228,6 +243,7 @@ EOF function test_run_under_external_label_with_options() { mkdir -p testing run || fail "mkdir testing run failed" cat < run/BUILD +load("@rules_shell//shell:sh_binary.bzl", "sh_binary") sh_binary( name='under', srcs=['under.sh'], visibility=["//visibility:public"], @@ -249,6 +265,7 @@ EOF chmod u+x testing/passing_test.sh cat < testing/BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") sh_test( name = "passing_test" , srcs = [ "passing_test.sh" ]) @@ -261,6 +278,7 @@ local_repository( path = "./run", ) EOF + add_rules_shell "MODULE.bazel" bazel test //testing:passing_test --run_under='@run//:under -c' \ --test_output=all >& $TEST_log || fail "Expected success" @@ -271,8 +289,10 @@ EOF } function test_run_under_label_with_options() { + add_rules_shell "MODULE.bazel" mkdir -p testing run || fail "mkdir testing run failed" cat < run/BUILD +load("@rules_shell//shell:sh_binary.bzl", "sh_binary") sh_binary( name='under', srcs=['under.sh'], visibility=["//visibility:public"], @@ -292,6 +312,7 @@ EOF chmod u+x testing/passing_test.sh cat < testing/BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") sh_test( name = "passing_test" , srcs = [ "passing_test.sh" ]) @@ -307,8 +328,12 @@ EOF # This test uses "--ignore_all_rc_files" since outside .bazelrc files can pollute # this environment. Just "--bazelrc=/dev/null" is not sufficient to fix. function test_run_under_path() { + add_rules_shell "MODULE.bazel" mkdir -p testing || fail "mkdir testing failed" - echo "sh_test(name='t1', srcs=['t1.sh'])" > testing/BUILD + cat > testing/BUILD < testing/t1.sh #!/bin/sh exit 0 @@ -372,10 +397,12 @@ local_repository( path = "../run", ) EOF + add_rules_shell "MODULE.bazel" mkdir -p testing || fail "mkdir testing failed" cat < testing/BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") sh_test( name = "passing_test" , srcs = [ "passing_test.sh" ]) @@ -396,6 +423,7 @@ EOF } function test_test_timeout() { + add_rules_shell "MODULE.bazel" mkdir -p dir cat < dir/test.sh @@ -408,6 +436,8 @@ EOF chmod +x dir/test.sh cat < dir/BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") + sh_test( name = "test", timeout = "short", @@ -430,6 +460,7 @@ function test_runs_per_test_detects_flakes() { # Directory for counters local COUNTER_DIR="${TEST_TMPDIR}/counter_dir" mkdir -p "${COUNTER_DIR}" + add_rules_shell "MODULE.bazel" for (( i = 1 ; i <= 5 ; i++ )); do @@ -448,6 +479,8 @@ exit \$((i != $i)) EOF chmod +x test$i.sh cat < BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") + sh_test(name = "test$i", srcs = [ "test$i.sh" ]) EOF bazel test --spawn_strategy=standalone \ @@ -462,7 +495,7 @@ EOF # Tests that the test.xml is extracted from the sandbox correctly. function test_xml_is_present() { mkdir -p dir - + add_rules_shell "MODULE.bazel" cat <<'EOF' > dir/test.sh #!/bin/sh echo HELLO > $XML_OUTPUT_FILE @@ -472,6 +505,8 @@ EOF chmod +x dir/test.sh cat <<'EOF' > dir/BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") + sh_test( name = "test", srcs = [ "test.sh" ], @@ -486,6 +521,7 @@ EOF function write_test_xml_timeout_files() { mkdir -p dir + add_rules_shell "MODULE.bazel" cat <<'EOF' > dir/test.sh #!/bin/bash @@ -504,6 +540,8 @@ EOF chmod +x dir/test.sh cat <<'EOF' > dir/BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") + sh_test( name = "test", srcs = [ "test.sh" ], @@ -560,6 +598,7 @@ function test_xml_is_present_when_timingout_split_xml() { # Tests that the test.xml and test.log are correct and the test does not # hang when the test launches a subprocess. function test_subprocess_non_timeout() { + add_rules_shell "MODULE.bazel" mkdir -p dir cat <<'EOF' > dir/test.sh @@ -572,6 +611,8 @@ EOF chmod +x dir/test.sh cat <<'EOF' > dir/BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") + sh_test( name = "test", timeout = "short", @@ -594,6 +635,7 @@ EOF # Check that fallback xml output is correctly generated for sharded tests. function test_xml_fallback_for_sharded_test() { + add_rules_shell "MODULE.bazel" mkdir -p dir cat <<'EOF' > dir/test.sh @@ -605,6 +647,8 @@ EOF chmod +x dir/test.sh cat < dir/BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") + sh_test( name = "test", srcs = [ "test.sh" ], @@ -649,6 +693,7 @@ EOF function test_always_xml_output() { mkdir -p dir + add_rules_shell "MODULE.bazel" cat < dir/success.sh #!/bin/sh @@ -662,6 +707,8 @@ EOF chmod +x dir/{success,fail}.sh cat < dir/BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") + sh_test( name = "success", srcs = [ "success.sh" ], @@ -731,7 +778,9 @@ function test_detailed_test_summary_for_passed_test() { # This test uses "--ignore_all_rc_files" since outside .bazelrc files can pollute # this environment. Just "--bazelrc=/dev/null" is not sufficient to fix. function test_flaky_test() { + add_rules_shell "MODULE.bazel" cat >BUILD < dir/test.sh #!/bin/bash @@ -829,6 +879,7 @@ EOF chmod +x dir/test.sh cat <<'EOF' > dir/BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") sh_test( name = "test", srcs = ["test.sh"], @@ -973,6 +1024,7 @@ function test_undeclared_outputs_unzipped_then_zipped() { function test_undeclared_outputs_annotations_are_added() { mkdir -p dir + add_rules_shell "MODULE.bazel" cat <<'EOF' > dir/test.sh #!/bin/sh @@ -985,6 +1037,8 @@ EOF chmod +x dir/test.sh cat <<'EOF' > dir/BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") + sh_test( name = "test", srcs = [ "test.sh" ], @@ -1009,6 +1063,7 @@ diff expected_annotations "$annotations" > d || fail "$annotations differs from function test_no_zip_annotation_manifest_when_no_undeclared_outputs() { mkdir -p dir + add_rules_shell "MODULE.bazel" cat <<'EOF' > dir/test.sh #!/bin/sh @@ -1019,6 +1074,8 @@ EOF chmod +x dir/test.sh cat <<'EOF' > dir/BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") + sh_test( name = "test", srcs = [ "test.sh" ], @@ -1038,10 +1095,12 @@ EOF function test_test_with_nobuild_runfile_manifests() { mkdir -p dir + add_rules_shell "MODULE.bazel" touch dir/test.sh chmod u+x dir/test.sh cat <<'EOF' > dir/BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") sh_test( name = 'test', srcs = ['test.sh'], @@ -1059,10 +1118,12 @@ local_repository( path = "./a", ) EOF + add_rules_python "MODULE.bazel" mkdir -p a touch a/REPO.bazel cat <<'EOF' > a/BUILD +load("@rules_python//python:py_test.bzl", "py_test") py_test( name = 'x', srcs = ['x.py'], @@ -1079,7 +1140,10 @@ EOF } function test_xml_output_format() { + add_rules_python "MODULE.bazel" + cat <<'EOF' > BUILD +load("@rules_python//python:py_test.bzl", "py_test") py_test( name = 'x', srcs = ['x.py'], @@ -1096,7 +1160,10 @@ EOF } function test_shard_status_file_checked() { + add_rules_shell "MODULE.bazel" cat <<'EOF' > BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") + sh_test( name = 'x', srcs = ['x.sh'], @@ -1118,7 +1185,9 @@ EOF } function test_premature_exit_file_checked() { + add_rules_shell "MODULE.bazel" cat <<'EOF' > BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") sh_test( name = 'x', srcs = ['x.sh'], diff --git a/src/test/shell/bazel/remote/remote_build_event_uploader_test.sh b/src/test/shell/bazel/remote/remote_build_event_uploader_test.sh index 21ef8cd2731399..8009c31049ac1f 100755 --- a/src/test/shell/bazel/remote/remote_build_event_uploader_test.sh +++ b/src/test/shell/bazel/remote/remote_build_event_uploader_test.sh @@ -425,8 +425,10 @@ EOF } function test_upload_minimal_upload_testlogs() { + add_rules_shell "MODULE.bazel" mkdir -p a cat > a/BUILD < a/BUILD < a/BUILD < a/BUILD < a/rule.bzl <<'EOF' def _gen_output_dir_impl(ctx): @@ -169,6 +175,7 @@ gen_output_dir = rule( ) EOF cat > a/BUILD <<'EOF' +load("@rules_shell//shell:sh_binary.bzl", "sh_binary") package(default_visibility = ["//visibility:public"]) load("//a:rule.bzl", "gen_output_dir") diff --git a/src/test/shell/bazel/remote/remote_execution_test.sh b/src/test/shell/bazel/remote/remote_execution_test.sh index 2de8cd6de97477..da810bf3d3a2cd 100755 --- a/src/test/shell/bazel/remote/remote_execution_test.sh +++ b/src/test/shell/bazel/remote/remote_execution_test.sh @@ -307,8 +307,10 @@ EOF } function test_cc_binary() { + add_rules_cc "MODULE.bazel" mkdir -p a cat > a/BUILD < a/BUILD < a/BUILD < a/BUILD < a/BUILD < a/BUILD < a/BUILD < a/BUILD < a/BUILD < a/BUILD < a/BUILD <<'EOF' +load("@rules_shell//shell:sh_test.bzl", "sh_test") sh_test( name = "sleep", timeout = "short", @@ -828,8 +850,10 @@ EOF } function test_passed_env_user() { + add_rules_shell "MODULE.bazel" mkdir -p a cat > a/BUILD <<'EOF' +load("@rules_shell//shell:sh_test.bzl", "sh_test") sh_test( name = "user_test", timeout = "short", @@ -885,8 +909,10 @@ EOF # For example, if the network connection to the remote executor fails it shouldn't be displayed as # a test error. function test_display_non_testerrors() { + add_rules_shell "MODULE.bazel" mkdir -p a cat > a/BUILD <<'EOF' +load("@rules_shell//shell:sh_test.bzl", "sh_test") sh_test( name = "test", timeout = "short", @@ -1221,7 +1247,7 @@ EOF function test_nobuild_runfile_links() { mkdir data && echo "hello" > data/hello && echo "world" > data/world - + add_rules_shell "MODULE.bazel" cat > test.sh <<'EOF' #!/bin/bash set -e @@ -1231,6 +1257,8 @@ exit 0 EOF chmod 755 test.sh cat > BUILD <<'EOF' +load("@rules_shell//shell:sh_test.bzl", "sh_test") + filegroup( name = "runfiles", srcs = ["data/hello", "data/world"], @@ -2043,6 +2071,7 @@ EOF } function setup_exclusive_test_case() { + add_rules_shell "MODULE.bazel" mkdir -p a cat > a/success.sh <<'EOF' #!/bin/sh @@ -2050,6 +2079,7 @@ exit 0 EOF chmod 755 a/success.sh cat > a/BUILD <<'EOF' +load("@rules_shell//shell:sh_test.bzl", "sh_test") sh_test( name = "success_test", srcs = ["success.sh"], @@ -2125,6 +2155,7 @@ function test_exclusive_test_wont_remote_exec() { # runfiles. The error we would see here without the flag would be "Cannot find # runfiles". See #4685. function test_java_rbe_coverage_produces_report() { + add_rules_java "MODULE.bazel" mkdir -p java/factorial JAVA_TOOLS_ZIP="released" @@ -2133,6 +2164,9 @@ function test_java_rbe_coverage_produces_report() { cd java/factorial cat > BUILD <<'EOF' +load("@rules_java//java:java_library.bzl", "java_library") +load("@rules_java//java:java_test.bzl", "java_test") + java_library( name = "fact", srcs = ["Factorial.java"], @@ -2412,10 +2446,14 @@ function test_cc_rbe_coverage_produces_report() { # Check to see if intermediate files are supported, otherwise skip. gcov --help | grep "\-i," || return 0 + add_rules_cc "MODULE.bazel" local test_dir="a/cc/coverage_test" mkdir -p $test_dir cat > "$test_dir"/BUILD <<'EOF' +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_test.bzl", "cc_test") + package(default_visibility = ["//visibility:public"]) cc_library( @@ -2547,10 +2585,15 @@ function test_cc_rbe_coverage_produces_report_with_llvm() { return 0 fi + add_rules_cc "MODULE.bazel" local test_dir="a/cc/coverage_test" mkdir -p $test_dir cat > "$test_dir"/BUILD <<'EOF' +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_binary.bzl", "cc_binary") +load("@rules_cc//cc:cc_test.bzl", "cc_test") + package(default_visibility = ["//visibility:public"]) cc_library( @@ -2681,8 +2724,11 @@ EOF } function test_async_upload_works_for_flaky_tests() { + add_rules_shell "MODULE.bazel" mkdir -p a cat > a/BUILD < a/BUILD < other_repo/lib/BUILD <<'EOF' +load("@rules_cc//cc:cc_library.bzl", "cc_library") cc_library( name = "lib", srcs = ["lib.cpp"], @@ -3046,6 +3096,7 @@ EOF mkdir -p other_repo/test cat > other_repo/test/BUILD <<'EOF' +load("@rules_cc//cc:cc_test.bzl", "cc_test") cc_test( name = "test", srcs = ["test.cpp"], @@ -3185,6 +3236,7 @@ local_repository( path = "other_repo", ) EOF + add_rules_cc "MODULE.bazel" mkdir -p $repo touch $repo/REPO.bazel @@ -3193,6 +3245,9 @@ EOF # Use a comma in the target name as that is known to be problematic whith -Wl, # which is commonly used to pass rpaths to the linker. cat > $repo/lib/BUILD <<'EOF' +load("@rules_cc//cc:cc_binary.bzl", "cc_binary") +load("@rules_cc//cc:cc_import.bzl", "cc_import") + cc_binary( name = "l,ib", srcs = ["lib.cpp"], @@ -3219,6 +3274,8 @@ EOF mkdir -p $repo/pkg cat > $repo/pkg/BUILD <<'EOF' +load("@rules_cc//cc:cc_binary.bzl", "cc_binary") + cc_binary( name = "tool", srcs = ["tool.cpp"], @@ -3275,7 +3332,9 @@ function test_external_cc_binary_tool_with_dynamic_deps_sibling_repository_layou } function test_shard_status_file_checked_remote_download_minimal() { + add_rules_shell "MODULE.bazel" cat <<'EOF' > BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") sh_test( name = 'x', srcs = ['x.sh'], @@ -3301,7 +3360,9 @@ EOF } function test_premature_exit_file_checked_remote_download_minimal() { + add_rules_shell "MODULE.bazel" cat <<'EOF' > BUILD +load("@rules_shell//shell:sh_test.bzl", "sh_test") sh_test( name = 'x', srcs = ['x.sh'], @@ -3555,6 +3616,7 @@ EOF } function setup_inlined_outputs() { + add_rules_shell "MODULE.bazel" mkdir -p a cat > a/input.txt <<'EOF' input @@ -3595,6 +3657,7 @@ my_rule = rule( EOF cat > a/BUILD <<'EOF' load("//a:defs.bzl", "my_rule") +load("@rules_shell//shell:sh_binary.bzl", "sh_binary") my_rule( name = "my_rule", diff --git a/src/test/shell/testenv.sh b/src/test/shell/testenv.sh index bec7644250a47a..5ff7965949b82a 100755 --- a/src/test/shell/testenv.sh +++ b/src/test/shell/testenv.sh @@ -476,6 +476,8 @@ function setup_javatest_support() { setup_javatest_common grep -q 'name = "junit4"' third_party/BUILD \ || cat <>third_party/BUILD +load("@rules_java//java:java_import.bzl", "java_import") + java_import( name = "junit4", jars = [