Add a test for `java_binary` runtime_deps with native deps (ignore-relnotes) PiperOrigin-RevId: 985173670 Change-Id: Iaba271f8d8fbf2b79a5ca674fa0caf8c950a00fc
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 449e483..c1e0128 100644 --- a/test/java/common/rules/common_launcher_java_binary_tests.bzl +++ b/test/java/common/rules/common_launcher_java_binary_tests.bzl
@@ -545,6 +545,43 @@ "{workspace}/{package}/{test_name}/langtools.jar", ) +def _test_java_binary_runtime_deps_with_native_libraries(name): + util.helper_target( + java_binary, + name = name + "/bin", + srcs = ["Bin.java"], + runtime_deps = [name + "/lib"], + ) + util.helper_target( + java_library, + name = name + "/lib", + srcs = ["Foo.java"], + deps = [name + "/jni.so"], + ) + util.helper_target( + cc_binary, + name = name + "/jni.so", + srcs = ["lib1.so"], + deps = [name + "/helper_library"], + ) + util.helper_target( + cc_library, + name = name + "/helper_library", + srcs = ["lib2.so"], + ) + + analysis_test( + name = name, + impl = _test_java_binary_runtime_deps_with_native_libraries_impl, + target = name + "/bin", + ) + +def _test_java_binary_runtime_deps_with_native_libraries_impl(env, target): + env.expect.that_target(target).runfiles().paths().transform( + desc = "basenames", + map_each = lambda f: reversed(f.rsplit("/"))[0], + ).contains_at_least(["lib1.so", "lib2.so"]) + def java_binary_launcher_tests(name): test_suite( name = name, @@ -565,5 +602,6 @@ _test_java_binary_runtime_deps_transitivity, _test_java_binary_runtime_deps_with_transitive_data, _test_java_binary_runtime_deps_with_genrule, + _test_java_binary_runtime_deps_with_native_libraries, ], )