Move javaToolchain_* tests to starlark.

PiperOrigin-RevId: 877391792
Change-Id: I4a260a12861387cf5cbc5f229fcd7294c1d4c824
diff --git a/test/java/toolchains/java_toolchain_tests.bzl b/test/java/toolchains/java_toolchain_tests.bzl
index 1beca09..3019a66 100644
--- a/test/java/toolchains/java_toolchain_tests.bzl
+++ b/test/java/toolchains/java_toolchain_tests.bzl
@@ -336,6 +336,85 @@
 def _test_reduced_classpath_incompatible_processors_impl(env, target):
     java_toolchain_info_subject.from_target(env, target).reduced_classpath_incompatible_processors().contains_exactly(["IncompatibleProc1", "IncompatibleProc2"])
 
+def _test_location_expansion_in_jvm_opts(name):
+    _declare_java_toolchain(
+        name = name,
+        tools = [name + "/jsr305.jar", name + "/javac"],
+        jvm_opts = [
+            "--patch-module=jdk.compiler=$(location " + name + "/javac)",
+            "--patch-module=java.xml.ws.annotation=$(location " + name + "/jsr305.jar)",
+        ],
+        javabuilder_jvm_opts = ["-Xshare:auto"],
+    )
+    util.helper_target(
+        java_library,
+        name = name + "/lib",
+        srcs = ["a.java"],
+    )
+
+    analysis_test(
+        name = name,
+        impl = _test_location_expansion_in_jvm_opts_impl,
+        target = name + "/lib",
+        config_settings = {
+            "//command_line_option:extra_toolchains": [Label(name + "/toolchain")],
+        },
+    )
+
+def _test_location_expansion_in_jvm_opts_impl(env, target):
+    assert_javac_action = env.expect.that_target(target).action_generating("{package}/lib{name}.jar")
+    assert_javac_action.argv().contains("--patch-module=jdk.compiler={package}/{test_name}/javac")
+    assert_javac_action.argv().contains("--patch-module=java.xml.ws.annotation={package}/{test_name}/jsr305.jar")
+    assert_javac_action.argv().contains("-Xshare:auto")
+    assert_javac_action.inputs().contains("{package}/{test_name}/jsr305.jar")
+
+def _test_location_expansion_with_multiple_artifacts_fails(name):
+    util.helper_target(
+        native.filegroup,
+        name = name + "/fg",
+        srcs = ["one", "two"],
+    )
+    _declare_java_toolchain(
+        name = name,
+        tools = [name + "/fg"],
+        javabuilder_jvm_opts = ["$(location " + name + "/fg)"],
+    )
+
+    analysis_test(
+        name = name,
+        impl = _test_location_expansion_with_multiple_artifacts_fails_impl,
+        target = name + "/java_toolchain",
+        expect_failure = True,
+    )
+
+def _test_location_expansion_with_multiple_artifacts_fails_impl(env, target):
+    env.expect.that_target(target).failures().contains_predicate(
+        matching.contains("$(location) expression expands to more than one file"),
+    )
+
+def _test_timezone_data_with_multiple_artifacts_fails(name):
+    util.helper_target(
+        native.filegroup,
+        name = name + "/fg",
+        srcs = ["one", "two"],
+    )
+    _declare_java_toolchain(
+        name = name,
+        timezone_data = name + "/fg",
+    )
+
+    analysis_test(
+        name = name,
+        impl = _test_timezone_data_with_multiple_artifacts_fails_impl,
+        target = name + "/java_toolchain",
+        expect_failure = True,
+    )
+
+def _test_timezone_data_with_multiple_artifacts_fails_impl(env, target):
+    env.expect.that_target(target).failures().contains_predicate(
+        matching.contains("must produce a single file"),
+    )
+
 def java_toolchain_tests(name):
     test_suite(
         name = name,
@@ -352,5 +431,8 @@
             _test_no_header_compiler_header_compilation_disabled_analyzes_successfully,
             _test_header_compiler_builtin_processors,
             _test_reduced_classpath_incompatible_processors,
+            _test_location_expansion_in_jvm_opts,
+            _test_location_expansion_with_multiple_artifacts_fails,
+            _test_timezone_data_with_multiple_artifacts_fails,
         ],
     )