Add a test for `java_binary` with a transitive dep on `java_library` (ignore-relnotes) PiperOrigin-RevId: 940357802 Change-Id: I7d16dc44fb992908d1f04ec693426d120fdd2948
diff --git a/test/java/common/rules/common_launcher_java_binary_tests.bzl b/test/java/common/rules/common_launcher_java_binary_tests.bzl index 595b348..122d26c 100644 --- a/test/java/common/rules/common_launcher_java_binary_tests.bzl +++ b/test/java/common/rules/common_launcher_java_binary_tests.bzl
@@ -97,6 +97,39 @@ assert_that_action = env.expect.that_target(target).action_generating("{package}/{name}_deploy.jar") assert_that_action.argv().contains("Coverage-Main-Class: com.google.app") +def _test_java_binary_transitive_dependency_from_java_library(name): + util.helper_target( + java_binary, + name = name + "/Binary", + srcs = ["Binary.java"], + deps = [name + "/somedep"], + ) + util.helper_target( + java_library, + name = name + "/somedep", + srcs = ["Dependency.java"], + deps = [name + "/otherdep"], + ) + util.helper_target( + java_library, + name = name + "/otherdep", + srcs = ["OtherDependency.java"], + ) + + analysis_test( + name = name, + extra_target_under_test_aspects = [artifact_closure.aspect], + impl = _test_java_binary_transitive_dependency_from_java_library_impl, + target = name + "/Binary", + ) + +def _test_java_binary_transitive_dependency_from_java_library_impl(env, target): + artifact_closure.of_target(env, target, extensions = ["java"]).contains_exactly([ + "{package}/Binary.java", + "{package}/Dependency.java", + "{package}/OtherDependency.java", + ]) + def java_binary_launcher_tests(name): test_suite( name = name, @@ -104,5 +137,6 @@ _test_java_binary_non_executable_rule_outputs, _test_java_binary_resources_only, _test_java_binary_deploy_jar_coverage_setup, + _test_java_binary_transitive_dependency_from_java_library, ], )