Use deploy.jar in java_test tradefed_test_suite
The benefits are:
1. We can have the full transitive dependencies.
2. We can use test_target.files_to_run.executable as
test_executable for Java too.
Bug: 292248629
Test: b test //platform_testing/tests/example/jarhosttest:HelloWorldHostTest
Test: atest-dev --roboleaf-mode=dev HelloWorldHostTest \
--bazel-arg=--config=bes_metrics --bazel-arg=--nocache_test_results
Test: result invocation ID: 54f1f3d0-1419-4692-96a7-482d88c5e264
Change-Id: I7e950d4a9b427365293a92b5df4fb8b8b4d256b5
diff --git a/rules/java/test.bzl b/rules/java/test.bzl
index 835ea1e..4d911ae 100644
--- a/rules/java/test.bzl
+++ b/rules/java/test.bzl
@@ -26,10 +26,11 @@
target_compatible_with = [],
**kwargs):
test_dep_name = name + TEST_DEP_SUFFIX
+ java_binary_name = name + "_jb"
- # tradefed_test_suite uses the .jar from this java_binary to execute tests.
+ # tradefed_test_suite uses the _deploy.jar from this java_binary to execute tests.
java_binary(
- name = test_dep_name,
+ name = java_binary_name,
srcs = srcs,
deps = deps,
create_executable = False,
@@ -38,6 +39,12 @@
target_compatible_with = target_compatible_with,
**kwargs
)
+
+ native.filegroup(
+ name = test_dep_name,
+ srcs = [java_binary_name + "_deploy.jar"],
+ )
+
tradefed_test_suite(
name = name,
test_dep = test_dep_name,
diff --git a/rules/tradefed/tradefed.bzl b/rules/tradefed/tradefed.bzl
index 6edfc2a..a18e930 100644
--- a/rules/tradefed/tradefed.bzl
+++ b/rules/tradefed/tradefed.bzl
@@ -217,10 +217,7 @@
# expanding tradefed_test_impl to accept more rule types, this could be
# turned into a provider, whether set by the rule or an aspect visiting the
# rule.
- if test_language == LANGUAGE_JAVA:
- test_executable = test_target.files.to_list()[0]
- else:
- test_executable = test_target.files_to_run.executable
+ test_executable = test_target.files_to_run.executable
test_basename = _normalize_test_name(test_executable.basename)
# Get or generate test config.