Fix jdk21 switch on enum with extra cases

Bug: b/336510513
Change-Id: Ie0661b9f28467730786cd7fa6ca3739fb617df17
diff --git a/src/test/examplesJava21/switchpatternmatching/EnumSwitchTest.java b/src/test/examplesJava21/switchpatternmatching/EnumSwitchTest.java
index b2c99cb..85eadfc 100644
--- a/src/test/examplesJava21/switchpatternmatching/EnumSwitchTest.java
+++ b/src/test/examplesJava21/switchpatternmatching/EnumSwitchTest.java
@@ -3,8 +3,9 @@
 // BSD-style license that can be found in the LICENSE file.
 package switchpatternmatching;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assume.assumeTrue;
+import static switchpatternmatching.SwitchTestHelper.hasJdk21TypeSwitch;
 
 import com.android.tools.r8.JdkClassFileProvider;
 import com.android.tools.r8.TestBase;
@@ -15,14 +16,12 @@
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.utils.StringUtils;
 import com.android.tools.r8.utils.codeinspector.CodeInspector;
-import com.android.tools.r8.utils.codeinspector.InstructionSubject;
 import org.junit.Assume;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameter;
 import org.junit.runners.Parameterized.Parameters;
-import switchpatternmatching.StringSwitchTest.Main;
 
 @RunWith(Parameterized.class)
 public class EnumSwitchTest extends TestBase {
@@ -41,33 +40,8 @@
   public void testJvm() throws Exception {
     assumeTrue(parameters.isCfRuntime());
     CodeInspector inspector = new CodeInspector(ToolHelper.getClassFileForTestClass(Main.class));
-    // javac generated an invokedynamic using bootstrap method
-    // java.lang.runtime.SwitchBootstraps.typeSwitch.
-    assertEquals(
-        1,
-        inspector
-            .clazz(Main.class)
-            .uniqueMethodWithOriginalName("enumSwitch")
-            .streamInstructions()
-            .filter(InstructionSubject::isInvokeDynamic)
-            .map(
-                instruction ->
-                    instruction
-                        .asCfInstruction()
-                        .getInstruction()
-                        .asInvokeDynamic()
-                        .getCallSite()
-                        .getBootstrapMethod()
-                        .member
-                        .asDexMethod())
-            .filter(
-                method ->
-                    method
-                        .getHolderType()
-                        .toString()
-                        .contains("java.lang.runtime.SwitchBootstraps"))
-            .filter(method -> method.toString().contains("typeSwitch"))
-            .count());
+    assertTrue(
+        hasJdk21TypeSwitch(inspector.clazz(Main.class).uniqueMethodWithOriginalName("enumSwitch")));
 
     parameters.assumeJvmTestParameters();
     testForJvm(parameters)