@@ -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+
105164def 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 )
0 commit comments