adding test for additional_resources in java_library wrapper macro
Change-Id: I74435c33d54a87426085dd46e7de7c5f4efef1f7
Test: b test //build/bazel/rules/java:all
diff --git a/rules/java/BUILD b/rules/java/BUILD
index 0ee1117..a282666 100644
--- a/rules/java/BUILD
+++ b/rules/java/BUILD
@@ -24,7 +24,7 @@
load(":java_aconfig_library_test.bzl", "java_aconfig_library_rt_test_suite", "java_aconfig_library_test_suite")
load(":java_system_modules_test.bzl", "java_system_modules_test_suite")
load(":java_xsd_config_library_test.bzl", "java_xsd_config_library_test_suite")
-load(":library_test.bzl", "java_library_test_suite")
+load(":library_test.bzl", "java_library_test_suite", "rt_java_library_test_suite")
load(":merged_txts_test.bzl", "merged_txts_test_suite")
load(":platform_compat_config_test.bzl", "platform_compat_config_test_suite")
load(":sdk_library_test.bzl", "java_sdk_library_test_suite")
@@ -44,6 +44,8 @@
java_library_test_suite(name = "java_library_tests")
+rt_java_library_test_suite(name = "rt_java_library_tests")
+
bootclasspath_test_suite(name = "bootclasspath_tests")
versions_test_suite(name = "versions_tests")
diff --git a/rules/java/library.bzl b/rules/java/library.bzl
index 5dcafc3..66e88c2 100644
--- a/rules/java/library.bzl
+++ b/rules/java/library.bzl
@@ -59,6 +59,8 @@
java_import(
name = res_import_name,
jars = additional_resources,
+ tags = tags + ["manual"],
+ visibility = ["//visibility:private"],
)
deps = deps + [":" + res_import_name]
diff --git a/rules/java/library_test.bzl b/rules/java/library_test.bzl
index 046bd6f..9623357 100644
--- a/rules/java/library_test.bzl
+++ b/rules/java/library_test.bzl
@@ -13,6 +13,10 @@
# limitations under the License.
load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts")
+load("@rules_testing//lib:analysis_test.bzl", rt_analysis_test = "analysis_test", rt_test_suite = "test_suite")
+load("@rules_testing//lib:truth.bzl", "matching", "subjects")
+load("@rules_testing//lib:util.bzl", rt_util = "util")
+load("//build/bazel/rules/java:java_resources.bzl", "java_resources")
load(":library.bzl", "java_library")
ActionArgsInfo = provider(
@@ -95,6 +99,42 @@
return test_name
+def _test_java_library_additional_resources_impl(env, target):
+ deps = env.expect.that_target(target).attr("deps", factory = subjects.collection)
+ target_name = target.label.name.removesuffix("_private")
+
+ expected_dep_name = target_name + "__additional_resources"
+
+ deps.contains_predicate(
+ matching.custom(
+ desc = expected_dep_name,
+ func = lambda dep: dep.label == Label(expected_dep_name),
+ ),
+ )
+
+def _test_java_library_additional_resources(name):
+ macro_wrapper_name = name + "_library_target"
+ java_resource_target_name = name + "java_res_target"
+ rt_util.helper_target(
+ java_library,
+ name = macro_wrapper_name,
+ srcs = ["foo.java"],
+ additional_resources = [java_resource_target_name],
+ )
+
+ rt_util.helper_target(
+ java_resources,
+ name = java_resource_target_name,
+ resources = ["res1.java"],
+ )
+
+ rt_analysis_test(
+ name = name,
+ impl = _test_java_library_additional_resources_impl,
+ # want to test the java_library target created by the java_library macro
+ target = macro_wrapper_name + "_private",
+ )
+
def java_library_test_suite(name):
native.test_suite(
name = name,
@@ -102,3 +142,11 @@
_host_java_library_has_correct_java_version(),
],
)
+
+def rt_java_library_test_suite(name):
+ rt_test_suite(
+ name = name,
+ tests = [
+ _test_java_library_additional_resources,
+ ],
+ )