Migrate `JavaStarlarkApiTest.testPackSourcesWithExternalResourceArtifact` to Starlark The test is removed from Bazel and added to `@rules_java` PiperOrigin-RevId: 886915767 Change-Id: Ibaacab7d5241e21a1a0b1870c335e20c88135a85
diff --git a/MODULE.bazel b/MODULE.bazel index 769902b..38405ca 100644 --- a/MODULE.bazel +++ b/MODULE.bazel
@@ -130,4 +130,4 @@ ) test_repositories = use_extension("//test:repositories.bzl", "test_repositories_ext", dev_dependency = True) -use_repo(test_repositories, "guava", "truth") +use_repo(test_repositories, "guava", "other_repo", "truth")
diff --git a/test/java/bazel/common/BUILD.bazel b/test/java/bazel/common/BUILD.bazel new file mode 100644 index 0000000..18ab4f8 --- /dev/null +++ b/test/java/bazel/common/BUILD.bazel
@@ -0,0 +1,3 @@ +load(":java_common_tests.bzl", "java_common_tests") + +java_common_tests(name = "java_common_tests")
diff --git a/test/java/bazel/common/java_common_tests.bzl b/test/java/bazel/common/java_common_tests.bzl new file mode 100644 index 0000000..80fdf44 --- /dev/null +++ b/test/java/bazel/common/java_common_tests.bzl
@@ -0,0 +1,41 @@ +"""Bazel tests for java_common APIs""" + +load("@rules_testing//lib:analysis_test.bzl", "analysis_test", "test_suite") +load("@rules_testing//lib:util.bzl", "util") +load("//test/java/testutil:rules/custom_java_info_rule.bzl", "custom_java_info_rule") + +def _test_java_common_pack_sources_with_external_resource(name): + util.helper_target( + custom_java_info_rule, + name = name + "/custom", + output_jar = name + "/custom.jar", + sources = [ + ":InternalLib.java", + "@other_repo//:ExternalLib.java", + ], + pack_sources = True, + ) + + analysis_test( + name = name, + impl = _test_java_common_pack_sources_with_external_resource_impl, + target = name + "/custom", + # Bazel 7 names external repos differently + attr_values = {"tags": ["min_bazel_8"]}, + ) + +def _test_java_common_pack_sources_with_external_resource_impl(env, target): + assert_that_action = env.expect.that_target(target).action_generating("{package}/{name}-src.jar") + assert_that_action.argv().contains_at_least([ + "--resources", + "{package}/InternalLib.java:bazel/common/InternalLib.java", + "external/+test_repositories_ext+other_repo/ExternalLib.java:ExternalLib.java", + ]).in_order() + +def java_common_tests(name): + test_suite( + name = name, + tests = [ + _test_java_common_pack_sources_with_external_resource, + ], + )
diff --git a/test/repositories.bzl b/test/repositories.bzl index 5d4f568..0f0afd5 100644 --- a/test/repositories.bzl +++ b/test/repositories.bzl
@@ -5,6 +5,7 @@ # TODO: Use http_jar from //java:http_jar.bzl once it doesn't refert to cache.bzl from @bazel_tools # anymore, which isn't available in Bazel 6. load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file") +load("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository") def test_repositories(): http_file( @@ -19,5 +20,9 @@ integrity = "sha256-Ushs3a3DG8hFfB4VaJ/Gt14ul84qg9i1S3ldVW1In4w=", downloaded_file_path = "truth.jar", ) + local_repository( + name = "other_repo", + path = "test/testdata/other_repo", + ) test_repositories_ext = modules.as_extension(test_repositories)
diff --git a/test/testdata/other_repo/BUILD.bazel b/test/testdata/other_repo/BUILD.bazel new file mode 100644 index 0000000..fc25d5f --- /dev/null +++ b/test/testdata/other_repo/BUILD.bazel
@@ -0,0 +1 @@ +exports_files(["ExternalLib.java"])
diff --git a/test/testdata/other_repo/MODULE.bazel b/test/testdata/other_repo/MODULE.bazel new file mode 100644 index 0000000..f90d195 --- /dev/null +++ b/test/testdata/other_repo/MODULE.bazel
@@ -0,0 +1 @@ +module(name = "other_repo")