Migrate the `JavaInfoStarlarkApiTest.buildHelperCreateJavaInfoWithJdeps_javaRuleOutputJarsProvider` test to Starlark The test is removed from Bazel and added in rules_java PiperOrigin-RevId: 734631344 Change-Id: I6b2d5254144a38620cf036d37aa3f0620824d1e3
diff --git a/java/test/common/java_info_tests.bzl b/java/test/common/java_info_tests.bzl index 53f647d..d29bda4 100644 --- a/java/test/common/java_info_tests.bzl +++ b/java/test/common/java_info_tests.bzl
@@ -735,6 +735,29 @@ assert_compilation_args.transitive_runtime_jars().contains_exactly(["{package}/{name}/my_starlark_rule_lib.jar"]) assert_compilation_args.transitive_compile_time_jars().contains_exactly(["{package}/{name}/my_starlark_rule_lib-stamped.jar"]) +def _with_jdeps_test(name): + target_name = name + "/my_starlark_rule" + util.helper_target( + custom_java_info_rule, + name = target_name, + jdeps = "my_jdeps.pb", + output_jar = target_name + "/my_starlark_rule_lib.jar", + source_jars = ["my_starlark_rule_src.jar"], + ) + + analysis_test( + name = name, + impl = _with_jdeps_test_impl, + target = target_name, + ) + +def _with_jdeps_test_impl(env, target): + assert_outputs = java_info_subject.from_target(env, target).outputs() + + assert_outputs.class_output_jars().contains_exactly(["{package}/{name}/my_starlark_rule_lib.jar"]) + assert_outputs.source_output_jars().contains_exactly(["{package}/my_starlark_rule_src.jar"]) + assert_outputs.jdeps().contains_exactly(["{package}/my_jdeps.pb"]) + def java_info_tests(name): test_suite( name = name, @@ -760,5 +783,6 @@ _with_plugins_via_exports_test, _with_plugins_test, _with_stamped_jar_test, + _with_jdeps_test, ], )
diff --git a/java/test/testutil/java_info_subject.bzl b/java/test/testutil/java_info_subject.bzl index 66a2256..f111999 100644 --- a/java/test/testutil/java_info_subject.bzl +++ b/java/test/testutil/java_info_subject.bzl
@@ -43,6 +43,7 @@ jars = lambda: _new_java_outputs_collection_subject(actual.jars, self.meta.derive("jars")), class_output_jars = lambda: subjects.depset_file(depset([o.class_jar for o in actual.jars]), self.meta.derive("class_output_jars")), source_output_jars = lambda: subjects.depset_file(source_jars_depset, self.meta.derive("source_output_jars")), + jdeps = lambda: subjects.depset_file(depset([o.jdeps for o in actual.jars]), self.meta.derive("jdeps")), ) return public
diff --git a/java/test/testutil/rules/custom_java_info_rule.bzl b/java/test/testutil/rules/custom_java_info_rule.bzl index 1cd2b06..547693a 100644 --- a/java/test/testutil/rules/custom_java_info_rule.bzl +++ b/java/test/testutil/rules/custom_java_info_rule.bzl
@@ -48,6 +48,7 @@ exported_plugins = dp_exported_plugins, native_libraries = dp_libs, neverlink = ctx.attr.neverlink, + jdeps = ctx.file.jdeps, ), ] @@ -62,6 +63,7 @@ "dep_exports": attr.label_list(), "dep_exported_plugins": attr.label_list(), "cc_dep": attr.label_list(), + "jdeps": attr.label(allow_single_file = True), "use_ijar": attr.bool(default = False), "neverlink": attr.bool(default = False), "pack_sources": attr.bool(default = False),