Creates _test_java_home_generated for java_runtime() in toolchains/java_runtime_tests.bzl

PiperOrigin-RevId: 872258802
Change-Id: I812815c2aa1c0b3671f7661f5fec358f2029a9c8
diff --git a/test/java/testutil/java_runtime_info_subject.bzl b/test/java/testutil/java_runtime_info_subject.bzl
index 37a477e..ad68fea 100644
--- a/test/java/testutil/java_runtime_info_subject.bzl
+++ b/test/java/testutil/java_runtime_info_subject.bzl
@@ -41,6 +41,7 @@
                 "name": target.label.name,
                 "package": target.label.package,
                 "bindir": target[TestingAspectInfo].bin_path,
+                "gendir": env.ctx.configuration.genfiles_dir.path,
             },
         ),
     )
diff --git a/test/java/toolchains/java_runtime_tests.bzl b/test/java/toolchains/java_runtime_tests.bzl
index 8efa5d2..5ec2a06 100644
--- a/test/java/toolchains/java_runtime_tests.bzl
+++ b/test/java/toolchains/java_runtime_tests.bzl
@@ -328,6 +328,31 @@
     assert_info.java_home().equals("/opt/jvm")
     assert_info.files().contains_exactly([])
 
+def _test_java_home_generated(name):
+    util.helper_target(
+        native.genrule,
+        name = name + "/gen",
+        outs = ["generated_java_home/bin/java"],
+        cmd = "touch $@",
+    )
+    util.helper_target(
+        java_runtime,
+        name = name + "/jvm",
+        java = "generated_java_home/bin/java",
+        java_home = "generated_java_home",
+    )
+
+    analysis_test(
+        name = name,
+        impl = _test_java_home_generated_impl,
+        target = name + "/jvm",
+    )
+
+def _test_java_home_generated_impl(env, target):
+    java_runtime_info_subject.from_target(env, target).java_home().equals(
+        "{gendir}/{package}/generated_java_home",
+    )
+
 def java_runtime_tests(name):
     test_suite(
         name = name,
@@ -345,5 +370,6 @@
             _test_java_home_with_invalid_make_variables,
             _test_make_variables,
             _test_no_srcs,
+            _test_java_home_generated,
         ],
     )