Migrate the `JavaStarlarkApiTest.apiGeneratingjavaPlugin_exposesPluginsToStarlark` test to Starlark The test is removed from Bazel and added in `@rules_java` PiperOrigin-RevId: 738463236 Change-Id: I94b0f783fd6ccc61bd70aadfa21c5372e218f84e
diff --git a/java/test/common/rules/java_plugin_tests.bzl b/java/test/common/rules/java_plugin_tests.bzl index af69e42..047917a 100644 --- a/java/test/common/rules/java_plugin_tests.bzl +++ b/java/test/common/rules/java_plugin_tests.bzl
@@ -4,6 +4,7 @@ load("@rules_testing//lib:util.bzl", "util") load("//java:java_library.bzl", "java_library") load("//java:java_plugin.bzl", "java_plugin") +load("//java/common:java_plugin_info.bzl", "JavaPluginInfo") load("//java/test/testutil:java_info_subject.bzl", "java_plugin_info_subject") def _test_exposes_plugins_to_starlark(name): @@ -40,10 +41,45 @@ java_plugin_info_subject.from_target(env, target).api_generating_plugins().is_empty() +def _test_exposes_api_generating_plugins_to_starlark(name): + target_name = name + "/plugin" + util.helper_target( + java_library, + name = target_name + "/plugin_dep", + srcs = ["ProcessorDep.java"], + data = ["depfile.dat"], + ) + util.helper_target( + java_plugin, + name = target_name, + srcs = ["AnnotationProcessor.java"], + data = ["pluginfile.dat"], + processor_class = "com.google.process.stuff", + deps = [target_name + "/plugin_dep"], + generates_api = True, + ) + + analysis_test( + name = name, + impl = _test_exposes_api_generating_plugins_to_starlark_impl, + target = target_name, + ) + +def _test_exposes_api_generating_plugins_to_starlark_impl(env, target): + assert_api_plugin_data = java_plugin_info_subject.from_target(env, target).api_generating_plugins() + assert_api_plugin_data.processor_classes().contains_exactly(["com.google.process.stuff"]) + assert_api_plugin_data.processor_jars().contains_exactly([ + "{package}/lib{name}.jar", + "{package}/lib{name}/plugin_dep.jar", + ]) + assert_api_plugin_data.processor_data().contains_exactly(["{package}/pluginfile.dat"]) + assert_api_plugin_data.equals(target[JavaPluginInfo].plugins) + def java_plugin_tests(name): test_suite( name = name, tests = [ _test_exposes_plugins_to_starlark, + _test_exposes_api_generating_plugins_to_starlark, ], )
diff --git a/java/test/testutil/java_info_subject.bzl b/java/test/testutil/java_info_subject.bzl index 5712a9a..b958097 100644 --- a/java/test/testutil/java_info_subject.bzl +++ b/java/test/testutil/java_info_subject.bzl
@@ -132,6 +132,7 @@ processor_classes = lambda: subjects.collection(java_plugin_data.processor_classes, meta = meta.derive("processor_classes")), processor_data = lambda: subjects.depset_file(java_plugin_data.processor_data, meta = meta.derive("processor_data")), is_empty = lambda: _check_plugin_data_empty(java_plugin_data, meta.derive("is_empty()")), + equals = lambda other: subjects.bool(java_plugin_data == other, meta.derive("equals({})".format(other))).equals(True), ) return public