diff --git a/src/test/java/com/android/tools/r8/dump/CompilerDumpTest.java b/src/test/java/com/android/tools/r8/dump/CompilerDumpTest.java
index 9f4ff3c..7640ac9 100644
--- a/src/test/java/com/android/tools/r8/dump/CompilerDumpTest.java
+++ b/src/test/java/com/android/tools/r8/dump/CompilerDumpTest.java
@@ -88,7 +88,7 @@
 
   @Test
   public void testR8Partial() throws Exception {
-    parameters.assumeR8PartialTestParameters();
+    parameters.assumeCanUseR8Partial();
     // Create an R8 partial dump.
     Path dumpDirectory = temp.newFolder().toPath();
     DumpInputFlags dumpInputFlags = DumpInputFlags.dumpToDirectory(dumpDirectory);
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBuilder.java b/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBuilder.java
index 1c65221..908af65 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBuilder.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBuilder.java
@@ -57,7 +57,7 @@
       case R8_PARTIAL_DIRECT:
       case R8_PARTIAL_NORMALIZED:
       case R8_PARTIAL_RULES:
-        params.parameters().assumeR8PartialTestParameters();
+        params.parameters().assumeCanUseR8Partial();
         return new R8PartialNativeBuilder(params, keepAnnotationLibrary, temp);
       case R8_LEGACY:
         return new R8LegacyBuilder(params, keepAnnotationLibrary, temp);
diff --git a/src/test/java/com/android/tools/r8/naming/sourcefile/SourceFileTemplateTest.java b/src/test/java/com/android/tools/r8/naming/sourcefile/SourceFileTemplateTest.java
index 61c8264..107b443 100644
--- a/src/test/java/com/android/tools/r8/naming/sourcefile/SourceFileTemplateTest.java
+++ b/src/test/java/com/android/tools/r8/naming/sourcefile/SourceFileTemplateTest.java
@@ -137,7 +137,7 @@
       String template, ThrowingConsumer<CodeInspector, E> inspection) throws Exception {
     R8TestBuilder<?, ?, ?> builder;
     if (enablePartialCompilation) {
-      parameters.assumeR8PartialTestParameters();
+      parameters.assumeCanUseR8Partial();
       builder = testForR8Partial(parameters.getBackend()).addR8IncludedClasses(TestClass.class);
     } else {
       builder = testForR8(parameters.getBackend()).addProgramClasses(TestClass.class);
diff --git a/src/test/java/com/android/tools/r8/partial/PartialCompilationD8LineNumberTest.java b/src/test/java/com/android/tools/r8/partial/PartialCompilationD8LineNumberTest.java
index 57a67db..7d90ba2 100644
--- a/src/test/java/com/android/tools/r8/partial/PartialCompilationD8LineNumberTest.java
+++ b/src/test/java/com/android/tools/r8/partial/PartialCompilationD8LineNumberTest.java
@@ -57,7 +57,7 @@
 
   @Test
   public void test() throws Throwable {
-    parameters.assumeR8PartialTestParameters();
+    parameters.assumeCanUseR8Partial();
     R8PartialTestCompileResult compileResult =
         testForR8Partial(parameters.getBackend())
             .addR8IncludedClasses(IncludedClass.class)
diff --git a/src/test/java/com/android/tools/r8/partial/PartialCompilationFeatureSplitWithSyntheticsTest.java b/src/test/java/com/android/tools/r8/partial/PartialCompilationFeatureSplitWithSyntheticsTest.java
index d866b0a..2b9ba85 100644
--- a/src/test/java/com/android/tools/r8/partial/PartialCompilationFeatureSplitWithSyntheticsTest.java
+++ b/src/test/java/com/android/tools/r8/partial/PartialCompilationFeatureSplitWithSyntheticsTest.java
@@ -30,7 +30,7 @@
 
   @Test
   public void test() throws Exception {
-    parameters.assumeR8PartialTestParameters();
+    parameters.assumeCanUseR8Partial();
     testForR8Partial(parameters.getBackend())
         .addProgramClasses(Main.class, IncludedBaseClass.class, ExcludedBaseClass.class)
         .addKeepRules("-keepclassmembers class * { java.lang.Runnable createRunnable(); }")
diff --git a/src/test/java/com/android/tools/r8/partial/PartialCompilationIfD8ClassPresentTest.java b/src/test/java/com/android/tools/r8/partial/PartialCompilationIfD8ClassPresentTest.java
index aae826f..e183bc4 100644
--- a/src/test/java/com/android/tools/r8/partial/PartialCompilationIfD8ClassPresentTest.java
+++ b/src/test/java/com/android/tools/r8/partial/PartialCompilationIfD8ClassPresentTest.java
@@ -25,7 +25,7 @@
 
   @Test
   public void test() throws Exception {
-    parameters.assumeR8PartialTestParameters();
+    parameters.assumeCanUseR8Partial();
     testForR8Partial(parameters.getBackend())
         .addR8IncludedClasses(Main.class)
         .addR8ExcludedClasses(ExcludedClass.class)
diff --git a/src/test/java/com/android/tools/r8/partial/PartialCompilationKeepAllowObfuscationBoundaryTest.java b/src/test/java/com/android/tools/r8/partial/PartialCompilationKeepAllowObfuscationBoundaryTest.java
index 30bafec..106ba99 100644
--- a/src/test/java/com/android/tools/r8/partial/PartialCompilationKeepAllowObfuscationBoundaryTest.java
+++ b/src/test/java/com/android/tools/r8/partial/PartialCompilationKeepAllowObfuscationBoundaryTest.java
@@ -30,7 +30,7 @@
 
   @Test
   public void test() throws Exception {
-    parameters.assumeR8PartialTestParameters();
+    parameters.assumeCanUseR8Partial();
     testForR8Partial(parameters.getBackend())
         .addR8IncludedClasses(IncludedClass.class)
         .addR8ExcludedClasses(Main.class)
diff --git a/src/test/testbase/java/com/android/tools/r8/TestParameters.java b/src/test/testbase/java/com/android/tools/r8/TestParameters.java
index 3eaa3c1..9f3a57b 100644
--- a/src/test/testbase/java/com/android/tools/r8/TestParameters.java
+++ b/src/test/testbase/java/com/android/tools/r8/TestParameters.java
@@ -303,12 +303,12 @@
     return (isDexRuntime() || representativeApiLevelForRuntime) && !isNoneRuntime();
   }
 
-  public TestParameters assumeR8PartialTestParameters() {
-    assumeTrue(isR8PartialTestParameters());
+  public TestParameters assumeCanUseR8Partial() {
+    assumeTrue(canUseR8Partial());
     return this;
   }
 
-  public boolean isR8PartialTestParameters() {
+  public boolean canUseR8Partial() {
     return isDexRuntime() && apiLevel.isGreaterThanOrEqualTo(AndroidApiLevel.L);
   }
 
diff --git a/src/test/testbase/java/com/android/tools/r8/TestParametersBuilder.java b/src/test/testbase/java/com/android/tools/r8/TestParametersBuilder.java
index 36ecb2f..33fa64a 100644
--- a/src/test/testbase/java/com/android/tools/r8/TestParametersBuilder.java
+++ b/src/test/testbase/java/com/android/tools/r8/TestParametersBuilder.java
@@ -269,7 +269,7 @@
   }
 
   private Stream<TestParameters> createPartialCompilationTestParameters(TestParameters parameters) {
-    if (!parameters.isR8PartialTestParameters()) {
+    if (!parameters.canUseR8Partial()) {
       return Stream.of(parameters);
     }
     assert parameters.getPartialCompilationTestParameters().isNone();
diff --git a/src/test/testbase/java/com/android/tools/r8/desugar/desugaredlibrary/test/DesugaredLibraryTestBuilder.java b/src/test/testbase/java/com/android/tools/r8/desugar/desugaredlibrary/test/DesugaredLibraryTestBuilder.java
index 77c4421..3ef85b4 100644
--- a/src/test/testbase/java/com/android/tools/r8/desugar/desugaredlibrary/test/DesugaredLibraryTestBuilder.java
+++ b/src/test/testbase/java/com/android/tools/r8/desugar/desugaredlibrary/test/DesugaredLibraryTestBuilder.java
@@ -101,7 +101,7 @@
     parameters.assumeDexRuntime();
     if (compilationSpecification.isProgramShrink()) {
       if (compilationSpecification == CompilationSpecification.R8_PARTIAL_INCLUDE_L8SHRINK) {
-        parameters.assumeR8PartialTestParameters();
+        parameters.assumeCanUseR8Partial();
         return test.testForR8Partial(parameters.getBackend())
             .setR8PartialConfiguration(Builder::includeAll);
       } else {
@@ -109,7 +109,7 @@
       }
     } else {
       if (compilationSpecification == CompilationSpecification.R8_PARTIAL_EXCLUDE_L8SHRINK) {
-        parameters.assumeR8PartialTestParameters();
+        parameters.assumeCanUseR8Partial();
         return test.testForR8Partial(parameters.getBackend())
             .setR8PartialConfiguration(Builder::excludeAll);
       } else {
