Deduplicate mock `java_toolchain` declarations

Additionally:

 - Minimize the definitions and explicitly set the arguments asserted on in the test cases
 - Where possible, switch from asserting on the java_toolchain target explicitly and use the resolved toolchain via `java_toolchain_alias`

(ignore-relnotes)

PiperOrigin-RevId: 889084161
Change-Id: Ia89dac8f5ed9ed81f5366e3df3cb6d75aa4a310b
diff --git a/test/java/common/rules/deploy_archive_builder_tests.bzl b/test/java/common/rules/deploy_archive_builder_tests.bzl
index 32e75e9..727790f 100644
--- a/test/java/common/rules/deploy_archive_builder_tests.bzl
+++ b/test/java/common/rules/deploy_archive_builder_tests.bzl
@@ -4,58 +4,13 @@
 load("@rules_testing//lib:truth.bzl", "matching")
 load("@rules_testing//lib:util.bzl", "util")
 load("//java:java_binary.bzl", "java_binary")
-load("//java/common:java_semantics.bzl", "semantics")
-load("//java/toolchains:java_runtime.bzl", "java_runtime")
-load("//java/toolchains:java_toolchain.bzl", "java_toolchain")
-
-def _declare_java_toolchain(*, name, **kwargs):
-    java_runtime_name = name + "/runtime"
-    util.helper_target(
-        java_runtime,
-        name = java_runtime_name,
-    )
-    toolchain_attrs = {
-        "source_version": "6",
-        "target_version": "6",
-        "bootclasspath": ["rt.jar"],
-        "xlint": ["toto"],
-        "javacopts": ["-Xmaxerrs 500"],
-        "compatible_javacopts": {
-            "android": ["-XDandroidCompatible"],
-            "testonly": ["-XDtestOnly"],
-            "public_visibility": ["-XDpublicVisibility"],
-        },
-        "tools": [":javac_canary.jar"],
-        "javabuilder": ":JavaBuilder_deploy.jar",
-        "header_compiler": ":turbine_canary_deploy.jar",
-        "header_compiler_direct": ":turbine_direct",
-        "singlejar": "singlejar",
-        "ijar": "ijar",
-        "genclass": "GenClass_deploy.jar",
-        "timezone_data": "tzdata.jar",
-        "header_compiler_builtin_processors": ["BuiltinProc1", "BuiltinProc2"],
-        "reduced_classpath_incompatible_processors": [
-            "IncompatibleProc1",
-            "IncompatibleProc2",
-        ],
-        "java_runtime": java_runtime_name,
-    }
-    toolchain_attrs.update(kwargs)
-    util.helper_target(
-        java_toolchain,
-        name = name + "/java_toolchain",
-        **toolchain_attrs
-    )
-    util.helper_target(
-        native.toolchain,
-        name = name + "/toolchain",
-        toolchain = name + "/java_toolchain",
-        toolchain_type = semantics.JAVA_TOOLCHAIN_TYPE,
-    )
+load("//test/java/testutil:mock_java_toolchain.bzl", "mock_java_toolchain")
 
 def _test_custom_singlejar(name):
-    _declare_java_toolchain(name = name)
-
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
+    )
     util.helper_target(
         java_binary,
         name = name + "/binary",
diff --git a/test/java/testutil/mock_java_toolchain.bzl b/test/java/testutil/mock_java_toolchain.bzl
new file mode 100644
index 0000000..c0ca631
--- /dev/null
+++ b/test/java/testutil/mock_java_toolchain.bzl
@@ -0,0 +1,62 @@
+"""Fake java toolchains for testing"""
+
+load("//java/common:java_semantics.bzl", "semantics")
+load("//java/toolchains:java_runtime.bzl", _java_runtime_rule = "java_runtime")
+load("//java/toolchains:java_toolchain.bzl", "java_toolchain")
+
+# buildifier: disable=function-docstring
+def mock_java_toolchain(
+        *,
+        name,
+        singlejar = "singlejar",
+        javabuilder = "JavaBuilder_deploy.jar",
+        header_compiler = "turbine_canary_deploy.jar",
+        header_compiler_direct = "turbine_direct",
+        ijar = "ijar",
+        genclass = "genclass",
+        java_runtime = None,
+        tags = None,  # for util.helper_target
+        **kwargs):
+    if not java_runtime:
+        java_runtime = name + "_runtime"
+        _java_runtime_rule(name = java_runtime)
+    java_toolchain(
+        name = name + "_java",
+        javabuilder = javabuilder,
+        singlejar = singlejar,
+        header_compiler = header_compiler,
+        header_compiler_direct = header_compiler_direct,
+        ijar = ijar,
+        java_runtime = java_runtime,
+        genclass = genclass,
+        tags = tags,
+        **kwargs
+    )
+    native.toolchain(
+        name = name,
+        toolchain = name + "_java",
+        toolchain_type = semantics.JAVA_TOOLCHAIN_TYPE,
+        tags = tags,
+    )
+
+# buildifier: disable=function-docstring
+def mock_java_runtime_toolchain(
+        *,
+        name,
+        srcs = [],
+        java_home = None,
+        java = None,
+        **kwargs):
+    _java_runtime_rule(
+        name = name + "_runtime",
+        srcs = srcs,
+        java_home = java_home,
+        java = java,
+        **kwargs
+    )
+    native.toolchain(
+        name = name,
+        toolchain = name + "_runtime",
+        toolchain_type = semantics.JAVA_RUNTIME_TOOLCHAIN_TYPE,
+        **kwargs
+    )
diff --git a/test/java/toolchains/java_runtime_tests.bzl b/test/java/toolchains/java_runtime_tests.bzl
index 0112b17..94d067e 100644
--- a/test/java/toolchains/java_runtime_tests.bzl
+++ b/test/java/toolchains/java_runtime_tests.bzl
@@ -4,16 +4,16 @@
 load("@rules_testing//lib:analysis_test.bzl", "analysis_test", "test_suite")
 load("@rules_testing//lib:truth.bzl", "matching", "subjects")
 load("@rules_testing//lib:util.bzl", "util")
-load("//java/common:java_semantics.bzl", "semantics")
 load("//java/toolchains:java_runtime.bzl", "java_runtime")
 load("//test/java/testutil:java_runtime_info_subject.bzl", "java_runtime_info_subject")
+load("//test/java/testutil:mock_java_toolchain.bzl", "mock_java_runtime_toolchain")
 load("//test/java/testutil:rules/forward_java_runtime_info.bzl", "java_runtime_info_forwarding_rule")
 load("//toolchains:java_toolchain_alias.bzl", "java_runtime_alias")
 
 def _test_with_absolute_java_home(name):
     util.helper_target(
-        java_runtime,
-        name = name + "/jvm",
+        mock_java_runtime_toolchain,
+        name = name + "/java_runtime_toolchain",
         srcs = [],
         java_home = "/foo/bar",
     )
@@ -26,12 +26,6 @@
         name = name + "/r",
         java_runtime = name + "/alias",
     )
-    util.helper_target(
-        native.toolchain,
-        name = name + "/java_runtime_toolchain",
-        toolchain = name + "/jvm",
-        toolchain_type = semantics.JAVA_RUNTIME_TOOLCHAIN_TYPE,
-    )
 
     analysis_test(
         name = name,
@@ -52,8 +46,8 @@
 
 def _test_with_hermetic_java_home(name):
     util.helper_target(
-        java_runtime,
-        name = name + "/jvm",
+        mock_java_runtime_toolchain,
+        name = name + "/java_runtime_toolchain",
         srcs = [],
         java_home = "foo/bar",
     )
@@ -66,12 +60,6 @@
         name = name + "/r",
         java_runtime = name + "/alias",
     )
-    util.helper_target(
-        native.toolchain,
-        name = name + "/java_runtime_toolchain",
-        toolchain = name + "/jvm",
-        toolchain_type = semantics.JAVA_RUNTIME_TOOLCHAIN_TYPE,
-    )
 
     analysis_test(
         name = name,
@@ -99,8 +87,8 @@
         output_to_bindir = True,
     )
     util.helper_target(
-        java_runtime,
-        name = name + "/jvm",
+        mock_java_runtime_toolchain,
+        name = name + "/java_runtime_toolchain",
         srcs = [],
         java = "foo/bar/bin/java",
     )
@@ -113,12 +101,6 @@
         name = name + "/r",
         java_runtime = name + "/alias",
     )
-    util.helper_target(
-        native.toolchain,
-        name = name + "/java_runtime_toolchain",
-        toolchain = name + "/jvm",
-        toolchain_type = semantics.JAVA_RUNTIME_TOOLCHAIN_TYPE,
-    )
 
     analysis_test(
         name = name,
diff --git a/test/java/toolchains/java_toolchain_tests.bzl b/test/java/toolchains/java_toolchain_tests.bzl
index 372b999..793de8e 100644
--- a/test/java/toolchains/java_toolchain_tests.bzl
+++ b/test/java/toolchains/java_toolchain_tests.bzl
@@ -7,58 +7,24 @@
 load("//java:java_library.bzl", "java_library")
 load("//java:java_plugin.bzl", "java_plugin")
 load("//java/common:java_common.bzl", "java_common")
-load("//java/common:java_semantics.bzl", "semantics")
-load("//java/toolchains:java_runtime.bzl", "java_runtime")
-load("//java/toolchains:java_toolchain.bzl", "java_toolchain")
 load("//test/java/testutil:java_info_subject.bzl", "java_info_subject")
 load("//test/java/testutil:java_toolchain_info_subject.bzl", "java_toolchain_info_subject")
 load("//test/java/testutil:javac_action_subject.bzl", "javac_action_subject")
+load("//test/java/testutil:mock_java_toolchain.bzl", "mock_java_toolchain")
 load("//toolchains:java_toolchain_alias.bzl", "java_toolchain_alias")
 
-def _declare_java_toolchain(*, name, **kwargs):
-    java_runtime_name = name + "/runtime"
-    java_runtime(name = java_runtime_name)
-    toolchain_attrs = {
-        "source_version": "6",
-        "target_version": "6",
-        "bootclasspath": ["rt.jar"],
-        "xlint": ["toto"],
-        "javacopts": ["-Xmaxerrs 500"],
-        "compatible_javacopts": {
-            "android": ["-XDandroidCompatible"],
-            "testonly": ["-XDtestOnly"],
-            "public_visibility": ["-XDpublicVisibility"],
-        },
-        "tools": [":javac_canary.jar"],
-        "javabuilder": ":JavaBuilder_deploy.jar",
-        "header_compiler": ":turbine_canary_deploy.jar",
-        "header_compiler_direct": ":turbine_direct",
-        "singlejar": "singlejar",
-        "ijar": "ijar",
-        "genclass": "GenClass_deploy.jar",
-        "timezone_data": "tzdata.jar",
-        "header_compiler_builtin_processors": ["BuiltinProc1", "BuiltinProc2"],
-        "reduced_classpath_incompatible_processors": [
-            "IncompatibleProc1",
-            "IncompatibleProc2",
-        ],
-        "java_runtime": java_runtime_name,
-    }
-    toolchain_attrs.update(kwargs)
-    util.helper_target(
-        java_toolchain,
-        name = name + "/java_toolchain",
-        **toolchain_attrs
-    )
-    util.helper_target(
-        native.toolchain,
-        name = name + "/toolchain",
-        toolchain = name + "/java_toolchain",
-        toolchain_type = semantics.JAVA_TOOLCHAIN_TYPE,
-    )
-
 def _test_javac_gets_options(name):
-    _declare_java_toolchain(name = name)
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
+        javabuilder = name + "/JavaBuilder_deploy.jar",
+        header_compiler_direct = name + "/turbine_direct",
+        bootclasspath = [name + "/rt.jar"],
+        source_version = "6",
+        target_version = "6",
+        xlint = ["toto"],
+        javacopts = ["-Xmaxerrs 500"],
+    )
     util.helper_target(
         java_library,
         name = name + "/b",
@@ -95,24 +61,31 @@
         "-Xmaxerrs",
         "500",
     ])
-    assert_javac_action.jar().contains_exactly(["{package}/JavaBuilder_deploy.jar"])
-    assert_javac_action.inputs().contains("{package}/rt.jar")
+    assert_javac_action.jar().contains_exactly(["{package}/{test_name}/JavaBuilder_deploy.jar"])
+    assert_javac_action.inputs().contains("{package}/{test_name}/rt.jar")
 
     assert_javac_action.javacopts().not_contains("-g")
 
     assert_header_action = javac_action_subject.of(env, targets.b, "{package}/lib{name}-hjar.jar")
-    assert_header_action.argv().contains("{package}/turbine_direct")
+    assert_header_action.argv().contains("{package}/{test_name}/turbine_direct")
 
 def _test_jacocorunner(name):
-    _declare_java_toolchain(
-        name = name,
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
         jacocorunner = "myjacocorunner.jar",
     )
-
+    util.helper_target(
+        java_toolchain_alias,
+        name = name + "/alias",
+    )
     analysis_test(
         name = name,
         impl = _test_jacocorunner_impl,
-        target = name + "/java_toolchain",
+        target = name + "/alias",
+        config_settings = {
+            "//command_line_option:extra_toolchains": [Label(name + "/toolchain")],
+        },
     )
 
 def _test_jacocorunner_impl(env, target):
@@ -121,7 +94,10 @@
     assert_toolchain.jacocorunner().short_path_equals("{package}/myjacocorunner.jar")
 
 def _test_singlejar_get_command_line(name):
-    _declare_java_toolchain(name = name)
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
+    )
     util.helper_target(
         java_binary,
         name = name + "/a",
@@ -144,7 +120,11 @@
     assert_javac_action.executable_file_name().equals(target.label.package + "/singlejar")
 
 def _test_genclass_get_command_line(name):
-    _declare_java_toolchain(name = name)
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
+        genclass = name + "/GenClass_deploy.jar",
+    )
     util.helper_target(
         java_library,
         name = name + "/a",
@@ -164,15 +144,26 @@
 def _test_genclass_get_command_line_impl(env, target):
     assert_javac_action = javac_action_subject.of(env, target, "{package}/lib{name}-gen.jar")
 
-    assert_javac_action.jar().contains_exactly(["{package}/GenClass_deploy.jar"])
+    assert_javac_action.jar().contains_exactly(["{package}/{test_name}/GenClass_deploy.jar"])
 
 def _test_timezone_data_is_correct(name):
-    _declare_java_toolchain(name = name)
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
+        timezone_data = "tzdata.jar",
+    )
+    util.helper_target(
+        java_toolchain_alias,
+        name = name + "/alias",
+    )
 
     analysis_test(
         name = name,
         impl = _test_timezone_data_is_correct_impl,
-        target = name + "/java_toolchain",
+        target = name + "/alias",
+        config_settings = {
+            "//command_line_option:extra_toolchains": [Label(name + "/toolchain")],
+        },
     )
 
 def _test_timezone_data_is_correct_impl(env, target):
@@ -181,7 +172,11 @@
     )
 
 def _test_java_binary_uses_timezone_data(name):
-    _declare_java_toolchain(name = name)
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
+        timezone_data = name + "/tzdata.jar",
+    )
     util.helper_target(
         java_binary,
         name = name + "/a",
@@ -199,11 +194,14 @@
 
 def _test_java_binary_uses_timezone_data_impl(env, target):
     assert_action = javac_action_subject.of(env, target, "{package}/{name}.jar")
-    assert_action.sources().contains("{package}/tzdata.jar")
+    assert_action.sources().contains("{package}/{test_name}/tzdata.jar")
     assert_action.inputs().contains_predicate(matching.file_basename_equals("tzdata.jar"))
 
 def _test_ijar_get_command_line(name):
-    _declare_java_toolchain(name = name)
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
+    )
     util.helper_target(
         java_library,
         name = name + "/a",
@@ -227,8 +225,9 @@
     )
 
 def _test_no_header_compiler_header_compilation_enabled_fails(name):
-    _declare_java_toolchain(
-        name = name,
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
         header_compiler = None,
     )
     util.helper_target(
@@ -255,8 +254,9 @@
     )
 
 def _test_no_header_compiler_direct_header_compilation_enabled_fails(name):
-    _declare_java_toolchain(
-        name = name,
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
         header_compiler_direct = None,
     )
     util.helper_target(
@@ -283,8 +283,9 @@
     )
 
 def _test_no_header_compiler_header_compilation_disabled_analyzes_successfully(name):
-    _declare_java_toolchain(
-        name = name,
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
         header_compiler = None,
     )
     util.helper_target(
@@ -311,41 +312,60 @@
 
 def _test_header_compiler_builtin_processors(name):
     util.helper_target(
-        java_toolchain,
-        name = name + "/java_toolchain",
+        mock_java_toolchain,
+        name = name + "/toolchain",
         header_compiler_builtin_processors = ["BuiltinProc1", "BuiltinProc2"],
-        singlejar = "singlejar",
+    )
+    util.helper_target(
+        java_toolchain_alias,
+        name = name + "/alias",
     )
 
     analysis_test(
         name = name,
         impl = _test_header_compiler_builtin_processors_impl,
-        target = name + "/java_toolchain",
+        target = name + "/alias",
+        config_settings = {
+            "//command_line_option:extra_toolchains": [Label(name + "/toolchain")],
+        },
     )
 
 def _test_header_compiler_builtin_processors_impl(env, target):
-    java_toolchain_info_subject.from_target(env, target).header_compiler_builtin_processors().contains_exactly(["BuiltinProc1", "BuiltinProc2"])
+    java_toolchain_info_subject.from_target(env, target).header_compiler_builtin_processors().contains_exactly([
+        "BuiltinProc1",
+        "BuiltinProc2",
+    ])
 
 def _test_reduced_classpath_incompatible_processors(name):
     util.helper_target(
-        java_toolchain,
-        name = name + "/java_toolchain",
+        mock_java_toolchain,
+        name = name + "/toolchain",
         reduced_classpath_incompatible_processors = ["IncompatibleProc1", "IncompatibleProc2"],
-        singlejar = "singlejar",
+    )
+    util.helper_target(
+        java_toolchain_alias,
+        name = name + "/alias",
     )
 
     analysis_test(
         name = name,
         impl = _test_reduced_classpath_incompatible_processors_impl,
-        target = name + "/java_toolchain",
+        target = name + "/alias",
+        config_settings = {
+            "//command_line_option:extra_toolchains": [Label(name + "/toolchain")],
+        },
     )
 
 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"])
+    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,
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
         tools = [name + "/jsr305.jar", name + "/javac"],
         jvm_opts = [
             "--patch-module=jdk.compiler=$(location " + name + "/javac)",
@@ -381,8 +401,9 @@
         name = name + "/fg",
         srcs = ["one", "two"],
     )
-    _declare_java_toolchain(
-        name = name,
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
         tools = [name + "/fg"],
         javabuilder_jvm_opts = ["$(location " + name + "/fg)"],
     )
@@ -390,7 +411,7 @@
     analysis_test(
         name = name,
         impl = _test_location_expansion_with_multiple_artifacts_fails_impl,
-        target = name + "/java_toolchain",
+        target = name + "/toolchain_java",  # the underlying java_toolchain
         expect_failure = True,
     )
 
@@ -405,15 +426,16 @@
         name = name + "/fg",
         srcs = ["one", "two"],
     )
-    _declare_java_toolchain(
-        name = name,
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
         timezone_data = name + "/fg",
     )
 
     analysis_test(
         name = name,
         impl = _test_timezone_data_with_multiple_artifacts_fails_impl,
-        target = name + "/java_toolchain",
+        target = name + "/toolchain_java",  # the underlying java_toolchain
         expect_failure = True,
     )
 
@@ -423,8 +445,12 @@
     )
 
 def _test_java_compile_action_target_gets_javacopts_from_toolchain(name):
-    _declare_java_toolchain(
-        name = name,
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
+        source_version = "6",
+        target_version = "6",
+        xlint = ["toto"],
         javacopts = ["-XDtoolchainJavacFlag"],
     )
     util.helper_target(
@@ -456,8 +482,12 @@
     ])
 
 def _test_java_compile_action_exec_gets_javacopts_from_toolchain(name):
-    _declare_java_toolchain(
-        name = name,
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
+        source_version = "6",
+        target_version = "6",
+        xlint = ["toto"],
         javacopts = ["-XDtoolchainJavacFlag"],
     )
     util.helper_target(
@@ -495,8 +525,9 @@
     ])
 
 def _test_java_compile_action_uses_tool_specific_jvm_opts(name):
-    _declare_java_toolchain(
-        name = name,
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
         jvm_opts = ["-Xbase"],
         javabuilder_jvm_opts = ["-DjavabuilderFlag=1"],
         turbine_jvm_opts = ["-DturbineFlag=1"],
@@ -540,19 +571,27 @@
         name = name + "/fg2",
         srcs = ["c", "d"],
     )
-    _declare_java_toolchain(
-        name = name,
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
         javabuilder_data = [name + "/fg1", name + "/fg2"],
         javabuilder_jvm_opts = [
             "$(locations " + name + "/fg1)",
             "$(locations " + name + "/fg2)",
         ],
     )
+    util.helper_target(
+        java_toolchain_alias,
+        name = name + "/alias",
+    )
 
     analysis_test(
         name = name,
         impl = _test_javabuilder_location_expansion_with_multiple_artifacts_impl,
-        target = name + "/java_toolchain",
+        target = name + "/alias",
+        config_settings = {
+            "//command_line_option:extra_toolchains": [Label(name + "/toolchain")],
+        },
     )
 
 def _test_javabuilder_location_expansion_with_multiple_artifacts_impl(env, target):
@@ -621,7 +660,10 @@
     )
 
 def _test_java_toolchain_flag_set(name):
-    _declare_java_toolchain(name = name)
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
+    )
     util.helper_target(
         java_toolchain_alias,
         name = name + "/toolchain_alias",
@@ -632,7 +674,7 @@
         impl = _test_java_toolchain_flag_set_impl,
         targets = {
             "alias": name + "/toolchain_alias",
-            "toolchain": name + "/java_toolchain",
+            "toolchain": name + "/toolchain_java",  # the underlying java_toolchain
         },
         config_settings = {
             "//command_line_option:extra_toolchains": [Label(name + "/toolchain")],
@@ -644,13 +686,27 @@
     assert_toolchain.label().equals(targets.toolchain.label)
 
 def _test_default_javac_opts_depset(name):
-    _declare_java_toolchain(name = name)
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
+        source_version = "6",
+        target_version = "6",
+        xlint = ["toto"],
+        javacopts = ["-Xmaxerrs 500"],
+    )
+    util.helper_target(
+        java_toolchain_alias,
+        name = name + "/alias",
+    )
 
     analysis_test(
         name = name,
         impl = _test_default_javac_opts_depset_impl,
-        target = name + "/java_toolchain",
+        target = name + "/alias",
         attr_values = {"tags": ["min_bazel_8"]},
+        config_settings = {
+            "//command_line_option:extra_toolchains": [Label(name + "/toolchain")],
+        },
     )
 
 def _test_default_javac_opts_depset_impl(env, target):
@@ -659,12 +715,24 @@
     )
 
 def _test_default_javac_opts(name):
-    _declare_java_toolchain(name = name)
+    util.helper_target(
+        mock_java_toolchain,
+        name = name + "/toolchain",
+        source_version = "6",
+        target_version = "6",
+    )
+    util.helper_target(
+        java_toolchain_alias,
+        name = name + "/alias",
+    )
 
     analysis_test(
         name = name,
         impl = _test_default_javac_opts_impl,
-        target = name + "/java_toolchain",
+        target = name + "/alias",
+        config_settings = {
+            "//command_line_option:extra_toolchains": [Label(name + "/toolchain")],
+        },
         attr_values = {"tags": ["min_bazel_8"]},
     )