Update remaining PermittedSubclasses tests

Bug: b/434135087
Change-Id: I8545dc523a0e796b792f093683b9e839a2679c20
diff --git a/src/test/java/com/android/tools/r8/missingclasses/MissingClassReferencedFromPermittedSubclassesAttributeTest.java b/src/test/java/com/android/tools/r8/missingclasses/MissingClassReferencedFromPermittedSubclassesAttributeTest.java
index af6954b..07ba779 100644
--- a/src/test/java/com/android/tools/r8/missingclasses/MissingClassReferencedFromPermittedSubclassesAttributeTest.java
+++ b/src/test/java/com/android/tools/r8/missingclasses/MissingClassReferencedFromPermittedSubclassesAttributeTest.java
@@ -48,9 +48,11 @@
   }
 
   private void inspect(CodeInspector inspector) {
-    // Missing classes stays in the PermittedSubclasses attribute.
+    // Missing classes stays in the PermittedSubclasses attribute. This test does not validate
+    // the class file version, so for testing JDK's below 17 the PermittedSubclasses attributes is
+    // still present (the code will not run, but the tests does not run the code).
     assertEquals(
-        parameters.isCfRuntime()
+        hasSealedClassesSupport(parameters) || parameters.isCfRuntime()
             ? ImmutableList.of(
                 inspector.clazz(Sub.class).asTypeSubject(),
                 inspector.getTypeSubject(MissingSub.class.getTypeName()))
diff --git a/src/test/java17/com/android/tools/r8/jdk17/enum_sealed/SealedClassesEnumJdk17CompiledTest.java b/src/test/java17/com/android/tools/r8/jdk17/enum_sealed/SealedClassesEnumJdk17CompiledTest.java
index a6d1aed..9dba446 100644
--- a/src/test/java17/com/android/tools/r8/jdk17/enum_sealed/SealedClassesEnumJdk17CompiledTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/enum_sealed/SealedClassesEnumJdk17CompiledTest.java
@@ -79,7 +79,7 @@
     ClassSubject sub1 = inspector.clazz(Enum.B.getClass());
     assertThat(sub1, isPresentAndRenamed());
     assertEquals(
-        parameters.isCfRuntime() && keepPermittedSubclassesAttribute
+        hasSealedClassesSupport(parameters) && keepPermittedSubclassesAttribute
             ? ImmutableList.of(sub1.asTypeSubject())
             : ImmutableList.of(),
         clazz.getFinalPermittedSubclassAttributes());
@@ -88,6 +88,8 @@
   @Test
   public void testR8() throws Exception {
     parameters.assumeR8TestParameters();
+    assumeTrue(
+        parameters.isDexRuntime() || parameters.asCfRuntime().isNewerThanOrEqual(CfVm.JDK17));
     parameters.assumeNoPartialCompilation("TODO");
     testForR8(parameters.getBackend())
         .addInnerClassesAndStrippedOuter(getClass())
@@ -100,10 +102,7 @@
         .compile()
         .inspect(this::inspect)
         .run(parameters.getRuntime(), Main.class)
-        .applyIf(
-            parameters.isDexRuntime() || parameters.asCfRuntime().isNewerThanOrEqual(CfVm.JDK17),
-            r -> r.assertSuccessWithOutput(EXPECTED),
-            r -> r.assertFailureWithErrorThatThrows(UnsupportedClassVersionError.class));
+        .assertSuccessWithOutput(EXPECTED);
   }
 
   public enum Enum {
diff --git a/src/test/testbase/java/com/android/tools/r8/TestBase.java b/src/test/testbase/java/com/android/tools/r8/TestBase.java
index 23e0f00..aa40c91 100644
--- a/src/test/testbase/java/com/android/tools/r8/TestBase.java
+++ b/src/test/testbase/java/com/android/tools/r8/TestBase.java
@@ -1874,8 +1874,9 @@
   }
 
   public static boolean hasSealedClassesSupport(TestParameters parameters) {
-    return (parameters.isCfRuntime() && parameters.getCfRuntime().hasRecordsSupport())
-        || parameters.getApiLevel().isGreaterThanOrEqualTo(apiLevelWithSealedClassesSupport());
+    return (parameters.isCfRuntime() && parameters.getCfRuntime().hasSealedClassesSupport())
+        || (parameters.isDexRuntime()
+            && parameters.getApiLevel().isGreaterThanOrEqualTo(apiLevelWithSealedClassesSupport()));
   }
 
   public static boolean isRecordsFullyDesugaredForD8(TestParameters parameters) {