diff --git a/src/test/java/com/android/tools/r8/classmerging/vertical/VerticalClassMergerDebugTestRunner.java b/src/test/java/com/android/tools/r8/classmerging/vertical/VerticalClassMergerDebugTestRunner.java
index 5177efb..5ed531b 100644
--- a/src/test/java/com/android/tools/r8/classmerging/vertical/VerticalClassMergerDebugTestRunner.java
+++ b/src/test/java/com/android/tools/r8/classmerging/vertical/VerticalClassMergerDebugTestRunner.java
@@ -10,10 +10,11 @@
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import com.android.tools.r8.OutputMode;
+import com.android.tools.r8.TestRuntime;
 import com.android.tools.r8.debug.DebugTestBase;
 import com.android.tools.r8.debug.DebugTestBase.JUnit3Wrapper.Command;
 import com.android.tools.r8.debug.DebugTestBase.JUnit3Wrapper.DebuggeeState;
-import com.android.tools.r8.debug.DexDebugTestConfig;
+import com.android.tools.r8.debug.DebugTestConfig;
 import com.android.tools.r8.utils.AndroidApp;
 import java.io.File;
 import java.nio.file.Path;
@@ -31,11 +32,11 @@
     this.temp = temp;
   }
 
-  public void run(AndroidApp app, Path proguardMapPath) throws Throwable {
+  public void run(TestRuntime runtime, AndroidApp app, Path proguardMapPath) throws Throwable {
     Path appPath = File.createTempFile("app", ".zip", temp.getRoot()).toPath();
     app.writeToZipForTesting(appPath, OutputMode.DexIndexed);
 
-    DexDebugTestConfig config = new DexDebugTestConfig(appPath);
+    DebugTestConfig config = DebugTestConfig.create(runtime, appPath);
     config.allowUnprocessedCommands();
     config.setProguardMap(proguardMapPath);
 
diff --git a/src/test/java/com/android/tools/r8/classmerging/vertical/VerticalClassMergerTest.java b/src/test/java/com/android/tools/r8/classmerging/vertical/VerticalClassMergerTest.java
index d8b923b..3d2be09 100644
--- a/src/test/java/com/android/tools/r8/classmerging/vertical/VerticalClassMergerTest.java
+++ b/src/test/java/com/android/tools/r8/classmerging/vertical/VerticalClassMergerTest.java
@@ -1217,7 +1217,7 @@
     // Check that we never come across a method that has a name with "$classmerging$" in it during
     // debugging.
     if (debugTestRunner != null && parameters.isDexRuntime()) {
-      debugTestRunner.run(compileResult.app, proguardMapPath);
+      debugTestRunner.run(parameters.getRuntime(), compileResult.app, proguardMapPath);
     }
     return compileResult;
   }
diff --git a/src/test/java/com/android/tools/r8/classmerging/vertical/VerticalClassMergerTestBase.java b/src/test/java/com/android/tools/r8/classmerging/vertical/VerticalClassMergerTestBase.java
index e512b2b..b631cc8 100644
--- a/src/test/java/com/android/tools/r8/classmerging/vertical/VerticalClassMergerTestBase.java
+++ b/src/test/java/com/android/tools/r8/classmerging/vertical/VerticalClassMergerTestBase.java
@@ -21,6 +21,6 @@
   public void runDebugTest(Class<?> mainClass, R8TestCompileResult compileResult) throws Throwable {
     assertTrue(parameters.isDexRuntime());
     new VerticalClassMergerDebugTestRunner(mainClass.getTypeName(), temp)
-        .run(compileResult.app, compileResult.writeProguardMap());
+        .run(parameters.getRuntime(), compileResult.app, compileResult.writeProguardMap());
   }
 }
