diff --git a/test/java/common/rules/BUILD b/test/java/common/rules/BUILD
index cc2cd33..32870da 100644
--- a/test/java/common/rules/BUILD
+++ b/test/java/common/rules/BUILD
@@ -1,3 +1,4 @@
+load(":add_exports_tests.bzl", "add_exports_tests")
 load(":deploy_archive_builder_tests.bzl", "deploy_archive_builder_test_suite")
 load(":java_binary_tests.bzl", "java_binary_tests")
 load(":java_import_tests.bzl", "java_import_tests")
@@ -21,3 +22,5 @@
 java_import_tests(name = "java_import_tests")
 
 java_test_tests(name = "java_test_tests")
+
+add_exports_tests(name = "add_exports_tests")
diff --git a/test/java/common/rules/add_exports_tests.bzl b/test/java/common/rules/add_exports_tests.bzl
new file mode 100644
index 0000000..482e731
--- /dev/null
+++ b/test/java/common/rules/add_exports_tests.bzl
@@ -0,0 +1,39 @@
+"""Tests for the add_exports attribute"""
+
+load("@rules_testing//lib:analysis_test.bzl", "analysis_test", "test_suite")
+load("@rules_testing//lib:util.bzl", "util")
+load("//java:defs.bzl", "java_library")
+load("//test/java/testutil:java_info_subject.bzl", "java_info_subject")
+load("//test/java/testutil:rules/java_info_merge.bzl", "java_info_merge_rule")
+
+def _test_merge_add_exports(name):
+    util.helper_target(
+        java_info_merge_rule,
+        name = name + "/merge",
+        deps = [name + "/a"],
+    )
+    util.helper_target(
+        java_library,
+        name = name + "/a",
+        srcs = ["A.java"],
+        add_exports = ["java.base/java.lang"],
+    )
+
+    analysis_test(
+        name = name,
+        impl = _test_merge_add_exports_impl,
+        target = name + "/merge",
+    )
+
+def _test_merge_add_exports_impl(env, target):
+    java_info_subject.from_target(env, target).module_flags().add_exports().contains_exactly(
+        ["java.base/java.lang"],
+    )
+
+def add_exports_tests(name):
+    test_suite(
+        name = name,
+        tests = [
+            _test_merge_add_exports,
+        ],
+    )
diff --git a/test/java/common/rules/merge_attrs_tests.bzl b/test/java/common/rules/merge_attrs_tests.bzl
index 84b340e..bea71ad 100644
--- a/test/java/common/rules/merge_attrs_tests.bzl
+++ b/test/java/common/rules/merge_attrs_tests.bzl
@@ -1,4 +1,4 @@
-"""Tests for merge_attrsfunction"""
+"""Tests for merge_attrs function"""
 
 load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest")
 load(
diff --git a/test/java/testutil/cc_info_subject.bzl b/test/java/testutil/cc_info_subject.bzl
index 2d7dca1..b50ff2e 100644
--- a/test/java/testutil/cc_info_subject.bzl
+++ b/test/java/testutil/cc_info_subject.bzl
@@ -22,6 +22,7 @@
     public = struct(
         equals = lambda other: _cc_info_linking_context_equals(self.actual, other, self.meta),
         library_files = lambda: _new_library_files_subject(self.actual, self.meta),
+        static_library_files = lambda: _new_static_library_files_subject(self.actual, self.meta),
     )
     return public
 
@@ -43,6 +44,17 @@
         meta = meta.derive("library_files"),
     )
 
+def _new_static_library_files_subject(linking_context, meta):
+    static_libraries = []
+    for input in linking_context.linker_inputs.to_list():
+        for lib in input.libraries:
+            if lib.static_library:
+                static_libraries.append(lib.static_library)
+    return subjects.depset_file(
+        depset(static_libraries),
+        meta = meta.derive("static_library_files"),
+    )
+
 def _cc_info_linking_context_equals(actual, expected, meta):
     if actual == expected:
         return
@@ -87,6 +99,7 @@
     return seq[0]
 
 cc_info_subject = struct(
+    new_from_cc_info = _new_cc_info_subject,
     new_from_java_info = lambda java_info, meta: _new_cc_info_subject(java_info.cc_link_params_info, meta.derive("cc_link_params_info")),
     libraries_to_link = _new_cc_info_libraries_to_link_subject,
 )
diff --git a/test/java/testutil/java_runtime_info_subject.bzl b/test/java/testutil/java_runtime_info_subject.bzl
index ad68fea..bb6ae52 100644
--- a/test/java/testutil/java_runtime_info_subject.bzl
+++ b/test/java/testutil/java_runtime_info_subject.bzl
@@ -3,6 +3,7 @@
 load("@rules_testing//lib:truth.bzl", "subjects", "truth")
 load("@rules_testing//lib:util.bzl", "TestingAspectInfo")
 load("//java/common:java_common.bzl", "java_common")
+load(":cc_info_subject.bzl", "cc_info_subject")
 
 def _new_java_runtime_info_subject(java_runtime_info, meta):
     self = struct(
@@ -10,11 +11,19 @@
         meta = meta.derive("JavaRuntimeInfo"),
     )
     public = struct(
+        hermetic_static_libs = lambda: _new_hermetic_static_libs_subject(self.actual.hermetic_static_libs, self.meta.derive("hermetic_static_libs")),
         java_home = lambda: _new_path_string_subject(self.actual.java_home, self.meta.derive("java_home")),
         java_home_runfiles_path = lambda: _new_path_string_subject(self.actual.java_home_runfiles_path, self.meta.derive("java_home_runfiles_path")),
         java_executable_exec_path = lambda: _new_path_string_subject(self.actual.java_executable_exec_path, self.meta.derive("java_executable_exec_path")),
         java_executable_runfiles_path = lambda: _new_path_string_subject(self.actual.java_executable_runfiles_path, self.meta.derive("java_executable_runfiles_path")),
         files = lambda: subjects.depset_file(self.actual.files, self.meta.derive("files")),
+        lib_ct_sym = lambda: subjects.file(self.actual.lib_ct_sym, self.meta.derive("lib_ct_sym")),
+    )
+    return public
+
+def _new_hermetic_static_libs_subject(hermetic_static_libs, meta):
+    public = struct(
+        singleton = lambda: cc_info_subject.new_from_cc_info(_get_singleton(hermetic_static_libs), meta.derive("cc_info")),
     )
     return public
 
@@ -46,6 +55,11 @@
         ),
     )
 
+def _get_singleton(seq):
+    if len(seq) != 1:
+        fail("expected singleton, got:", seq)
+    return seq[0]
+
 java_runtime_info_subject = struct(
     new = _new_java_runtime_info_subject,
     from_target = _from_target,
diff --git a/test/java/toolchains/java_runtime_tests.bzl b/test/java/toolchains/java_runtime_tests.bzl
index 5ec2a06..0112b17 100644
--- a/test/java/toolchains/java_runtime_tests.bzl
+++ b/test/java/toolchains/java_runtime_tests.bzl
@@ -1,5 +1,6 @@
 """Tests for the java_runtime rule"""
 
+load("@rules_cc//cc:defs.bzl", "cc_import")
 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")
@@ -353,6 +354,71 @@
         "{gendir}/{package}/generated_java_home",
     )
 
+def _test_hermetic_static_libs(name):
+    util.helper_target(
+        cc_import,
+        name = name + "/libs",
+        static_library = "libStatic.a",
+    )
+    util.helper_target(
+        java_runtime,
+        name = name + "/jvm",
+        lib_modules = name + "/gen_lib_modules",
+        hermetic_srcs = [name + "/hermetic.properties"],
+        hermetic_static_libs = [name + "/libs"],
+    )
+
+    analysis_test(
+        name = name,
+        impl = _test_hermetic_static_libs_impl,
+        target = name + "/jvm",
+    )
+
+def _test_hermetic_static_libs_impl(env, target):
+    cc_info = java_runtime_info_subject.from_target(env, target).hermetic_static_libs().singleton()
+    cc_info.linking_context().static_library_files().contains_exactly(["{package}/libStatic.a"])
+
+def _test_implicit_lib_ct_sym(name):
+    util.helper_target(
+        java_runtime,
+        name = name + "/jvm",
+        srcs = [
+            name + "/java",
+            name + "/jvm/implicit/lib/ct.sym",
+        ],
+    )
+    analysis_test(
+        name = name,
+        impl = _test_implicit_lib_ct_sym_impl,
+        target = name + "/jvm",
+    )
+
+def _test_implicit_lib_ct_sym_impl(env, target):
+    java_runtime_info_subject.from_target(env, target).lib_ct_sym().short_path_equals(
+        "{package}/{name}/implicit/lib/ct.sym",
+    )
+
+def _test_explicit_lib_ct_sym(name):
+    util.helper_target(
+        java_runtime,
+        name = name + "/jvm",
+        srcs = [
+            name + "/java",
+            name + "/jvm/implicit/lib/ct.sym",
+        ],
+        lib_ct_sym = name + "/jvm/explicit/lib/ct.sym",
+    )
+    analysis_test(
+        name = name,
+        impl = _test_explicit_lib_ct_sym_impl,
+        target = name + "/jvm",
+    )
+
+def _test_explicit_lib_ct_sym_impl(env, target):
+    java_runtime_info_subject.from_target(env, target).lib_ct_sym().short_path_equals(
+        "{package}/{name}/explicit/lib/ct.sym",
+    )
+
 def java_runtime_tests(name):
     test_suite(
         name = name,
@@ -371,5 +437,8 @@
             _test_make_variables,
             _test_no_srcs,
             _test_java_home_generated,
+            _test_hermetic_static_libs,
+            _test_implicit_lib_ct_sym,
+            _test_explicit_lib_ct_sym,
         ],
     )
