Migrate the `JavaInfoStarlarkApiTest.buildHelperCreateJavaInfoWithPlugins` test to Starlark The test is removed from Bazel and added in rules_java PiperOrigin-RevId: 734610281 Change-Id: If41a8e2793d0a983538a892d4fe2ca0f4aa168c4
diff --git a/java/test/common/java_info_tests.bzl b/java/test/common/java_info_tests.bzl index fbe5b93..224d763 100644 --- a/java/test/common/java_info_tests.bzl +++ b/java/test/common/java_info_tests.bzl
@@ -679,6 +679,38 @@ assert_java_info.plugins().processor_classes().contains_exactly(["com.google.process.stuff"]) +def _with_plugins_test(name): + target_name = name + "/my_starlark_rule" + util.helper_target( + java_library, + name = target_name + "/plugin_dep", + srcs = ["ProcessorDep.java"], + ) + util.helper_target( + java_plugin, + name = target_name + "/plugin", + srcs = ["AnnotationProcessor.java"], + processor_class = "com.google.process.stuff", + deps = [target_name + "/plugin_dep"], + ) + util.helper_target( + custom_java_info_rule, + name = target_name, + dep_exported_plugins = [target_name + "/plugin"], + output_jar = target_name + "/my_starlark_rule_lib.jar", + ) + + analysis_test( + name = name, + impl = _with_plugins_test_impl, + target = target_name, + ) + +def _with_plugins_test_impl(env, target): + assert_java_info = java_info_subject.from_target(env, target) + + assert_java_info.plugins().processor_classes().contains_exactly(["com.google.process.stuff"]) + def java_info_tests(name): test_suite( name = name, @@ -702,5 +734,6 @@ _with_transitive_exports_test, _with_transitive_deps_and_exports_test, _with_plugins_via_exports_test, + _with_plugins_test, ], )
diff --git a/java/test/testutil/rules/custom_java_info_rule.bzl b/java/test/testutil/rules/custom_java_info_rule.bzl index 215c935..c8138d2 100644 --- a/java/test/testutil/rules/custom_java_info_rule.bzl +++ b/java/test/testutil/rules/custom_java_info_rule.bzl
@@ -3,6 +3,7 @@ load("@rules_cc//cc/common:cc_info.bzl", "CcInfo") load("//java/common:java_common.bzl", "java_common") load("//java/common:java_info.bzl", "JavaInfo") +load("//java/common:java_plugin_info.bzl", "JavaPluginInfo") load("//java/common:java_semantics.bzl", "semantics") def _impl(ctx): @@ -10,6 +11,7 @@ dp = [dep[JavaInfo] for dep in ctx.attr.dep] dp_runtime = [dep[JavaInfo] for dep in ctx.attr.dep_runtime] dp_exports = [dep[java_common.provider] for dep in ctx.attr.dep_exports] + dp_exported_plugins = [dep[JavaPluginInfo] for dep in ctx.attr.dep_exported_plugins] source_jar = java_common.pack_sources( ctx.actions, output_source_jar = ctx.actions.declare_file(ctx.outputs.output_jar.basename[:-4] + "-src.jar", sibling = ctx.outputs.output_jar), @@ -34,6 +36,7 @@ deps = dp, runtime_deps = dp_runtime, exports = dp_exports, + exported_plugins = dp_exported_plugins, native_libraries = dp_libs, neverlink = ctx.attr.neverlink, ), @@ -48,6 +51,7 @@ "dep": attr.label_list(), "dep_runtime": attr.label_list(), "dep_exports": attr.label_list(), + "dep_exported_plugins": attr.label_list(), "cc_dep": attr.label_list(), "use_ijar": attr.bool(default = False), "neverlink": attr.bool(default = False),