Skip to content

Commit 2ffef4a

Browse files
hvadehrarules_java Copybara
authored andcommitted
Add another test for extending compile time jdeps
PiperOrigin-RevId: 729519090 Change-Id: I210dfb4cb0300eb0b4a42359f4c952a1d16cf248
1 parent 3bed9dc commit 2ffef4a

2 files changed

Lines changed: 64 additions & 0 deletions

File tree

java/test/common/java_common_tests.bzl

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,65 @@ def _test_compile_extend_compile_time_jdeps_impl(env, target):
102102
assert_that_after.contains_at_least(before)
103103
assert_that_after.contains_exactly(target[JavaInfo]._compile_time_java_dependencies)
104104

105+
def _test_compile_extend_compile_time_jdeps_rule_outputs(name):
106+
util.helper_target(
107+
custom_library_extended_jdeps,
108+
name = name + "/foo",
109+
srcs = ["Foo.java"],
110+
extra_jdeps = "Foo.jdeps",
111+
)
112+
util.helper_target(
113+
custom_library_extended_jdeps,
114+
name = name + "/bar",
115+
srcs = ["Bar.java"],
116+
extra_jdeps = "Bar.jdeps",
117+
deps = [name + "/foo"],
118+
)
119+
util.helper_target(
120+
custom_library_extended_jdeps,
121+
name = name + "/baz",
122+
srcs = ["Baz.java"],
123+
extra_jdeps = "Baz.jdeps",
124+
exports = [name + "/foo"],
125+
)
126+
127+
analysis_test(
128+
name = name,
129+
impl = _test_compile_extend_compile_time_jdeps_rule_outputs_impl,
130+
targets = {
131+
"foo": name + "/foo",
132+
"bar": name + "/bar",
133+
"baz": name + "/baz",
134+
},
135+
attr_values = {"tags": ["min_bazel_7"]},
136+
)
137+
138+
def _test_compile_extend_compile_time_jdeps_rule_outputs_impl(env, targets):
139+
foo = targets.foo
140+
compile_time_jdeps = foo[JavaInfo]._compile_time_java_dependencies
141+
env.expect.that_depset_of_files(compile_time_jdeps).contains_exactly([
142+
"{}/lib{}-hjar.jdeps".format(foo.label.package, foo.label.name),
143+
"{}/Foo.jdeps".format(foo.label.package),
144+
])
145+
146+
# foo's jdeps shouldn't appear in bar's
147+
bar = targets.bar
148+
compile_time_jdeps = bar[JavaInfo]._compile_time_java_dependencies
149+
env.expect.that_depset_of_files(compile_time_jdeps).contains_exactly([
150+
"{}/lib{}-hjar.jdeps".format(bar.label.package, bar.label.name),
151+
"{}/Bar.jdeps".format(bar.label.package),
152+
])
153+
154+
# baz exports foo, so we expect jdeps from both targets
155+
baz = targets.baz
156+
compile_time_jdeps = baz[JavaInfo]._compile_time_java_dependencies
157+
env.expect.that_depset_of_files(compile_time_jdeps).contains_exactly([
158+
"{}/lib{}-hjar.jdeps".format(foo.label.package, foo.label.name),
159+
"{}/Foo.jdeps".format(foo.label.package),
160+
"{}/lib{}-hjar.jdeps".format(baz.label.package, baz.label.name),
161+
"{}/Baz.jdeps".format(baz.label.package),
162+
])
163+
105164
def java_common_tests(name):
106165
test_suite(
107166
name = name,
@@ -111,5 +170,6 @@ def java_common_tests(name):
111170
_test_compile_exports_no_sources,
112171
_test_java_plugin_info,
113172
_test_compile_extend_compile_time_jdeps,
173+
_test_compile_extend_compile_time_jdeps_rule_outputs,
114174
],
115175
)

java/test/testutil/rules/custom_library_extended_compile_jdeps.bzl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ def _impl(ctx):
1515
ctx,
1616
source_files = ctx.files.srcs,
1717
output = output_jar,
18+
deps = [d[JavaInfo] for d in ctx.attr.deps],
19+
exports = [e[JavaInfo] for e in ctx.attr.exports],
1820
java_toolchain = semantics.find_java_toolchain(ctx),
1921
)
2022
jdeps_info = JavaInfo(
@@ -39,6 +41,8 @@ custom_library_extended_jdeps = rule(
3941
attrs = {
4042
"srcs": attr.label_list(allow_files = [".java"]),
4143
"extra_jdeps": attr.label(allow_single_file = True),
44+
"deps": attr.label_list(providers = [JavaInfo]),
45+
"exports": attr.label_list(providers = [JavaInfo]),
4246
},
4347
toolchains = [semantics.JAVA_TOOLCHAIN_TYPE],
4448
fragments = ["java"],

0 commit comments

Comments
 (0)