Revert "Move desugared lib test method"

This reverts commit 54e85e9ec48375a519e89434c1a2854ede14098d.

Reason for revert: Breaks MergingWithDesugaredLibraryTest

Change-Id: Id0b7c36902525c962b6e0a89f6d7182c56cb765a
diff --git a/src/test/java/com/android/tools/r8/benchmarks/desugaredlib/L8Benchmark.java b/src/test/java/com/android/tools/r8/benchmarks/desugaredlib/L8Benchmark.java
index 46f8916..147d601 100644
--- a/src/test/java/com/android/tools/r8/benchmarks/desugaredlib/L8Benchmark.java
+++ b/src/test/java/com/android/tools/r8/benchmarks/desugaredlib/L8Benchmark.java
@@ -64,7 +64,6 @@
             ImmutableSet.of(undesugarJdkLib),
             Paths.get("src/library_desugar/jdk11/desugar_jdk_libs.json"),
             ImmutableSet.of(androidJar.getRoot(environment).resolve("android.jar")),
-            LibraryDesugaringSpecification.JDK11_DESCRIPTOR,
             "");
     runner(environment.getConfig())
         .setWarmupIterations(1)
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionTest.java
index 6b61085..4681e27 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionTest.java
@@ -68,7 +68,7 @@
   }
 
   private void assertResultCorrect(String stdOut) {
-    if (libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters)
+    if (requiresEmulatedInterfaceCoreLibDesugaring(parameters)
         && !compilationSpecification.isL8Shrink()) {
       // When shrinking the class names are not printed correctly anymore due to minification.
       // Expected output is emulated interfaces expected output.
@@ -81,7 +81,8 @@
       return;
     }
     MethodSubject direct = inspector.clazz(Executor.class).uniqueMethodWithName("directTypes");
-    if (libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters)) {
+    System.out.println(direct);
+    if (requiresEmulatedInterfaceCoreLibDesugaring(parameters)) {
       assertTrue(
           direct
               .streamInstructions()
@@ -96,7 +97,7 @@
     }
     MethodSubject inherited =
         inspector.clazz(Executor.class).uniqueMethodWithName("inheritedTypes");
-    if (!libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters)) {
+    if (!requiresEmulatedInterfaceCoreLibDesugaring(parameters)) {
       assertTrue(
           inherited.streamInstructions().noneMatch(instr -> instr.toString().contains("$-EL")));
       return;
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DateTimeFormatterTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DateTimeFormatterTest.java
index 16021f7..8f725ba 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DateTimeFormatterTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DateTimeFormatterTest.java
@@ -5,6 +5,7 @@
 package com.android.tools.r8.desugar.desugaredlibrary;
 
 import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.DEFAULT_SPECIFICATIONS;
+import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK8;
 import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8Jdk11;
 
 import com.android.tools.r8.SingleTestRunResult;
@@ -60,7 +61,7 @@
             .addKeepMainRule(TestClass.class)
             .run(parameters.getRuntime(), TestClass.class)
             .assertSuccess();
-    if (libraryDesugaringSpecification.hasTimeDesugaring(parameters)) {
+    if (requiresTimeDesugaring(parameters, libraryDesugaringSpecification != JDK8)) {
       run.assertSuccessWithOutput(expectedOutputDesugaredLib);
     } else {
       run.assertSuccessWithOutput(expectedOutput);
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredGenericSignatureTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredGenericSignatureTest.java
index 7ba2614..02e844e 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredGenericSignatureTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredGenericSignatureTest.java
@@ -75,7 +75,7 @@
   }
 
   private void checkRewrittenSignature(CodeInspector inspector) {
-    if (!libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters)) {
+    if (!requiresEmulatedInterfaceCoreLibDesugaring(parameters)) {
       return;
     }
     ClassSubject javaTimeBox = inspector.clazz(JavaTimeDateBox.class);
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryContentTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryContentTest.java
index 36e343e..716e073 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryContentTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryContentTest.java
@@ -61,7 +61,9 @@
 
   @Test
   public void testDesugaredLibraryContent() throws Exception {
-    Assume.assumeTrue(libraryDesugaringSpecification.hasAnyDesugaring(parameters));
+    Assume.assumeTrue(
+        requiresAnyCoreLibDesugaring(
+            parameters.getApiLevel(), libraryDesugaringSpecification != JDK8));
     testForL8(parameters.getApiLevel())
         .apply(libraryDesugaringSpecification::configureL8TestBuilder)
         .compile()
@@ -70,7 +72,9 @@
 
   @Test
   public void testDesugaredLibraryContentWithCoreLambdaStubsAsProgram() throws Exception {
-    Assume.assumeTrue(libraryDesugaringSpecification.hasAnyDesugaring(parameters));
+    Assume.assumeTrue(
+        requiresAnyCoreLibDesugaring(
+            parameters.getApiLevel(), libraryDesugaringSpecification != JDK8));
     ArrayList<Path> coreLambdaStubs = new ArrayList<>();
     coreLambdaStubs.add(ToolHelper.getCoreLambdaStubs());
     testForL8(parameters.getApiLevel())
@@ -82,7 +86,9 @@
 
   @Test
   public void testDesugaredLibraryContentWithCoreLambdaStubsAsLibrary() throws Exception {
-    Assume.assumeTrue(libraryDesugaringSpecification.hasAnyDesugaring(parameters));
+    Assume.assumeTrue(
+        requiresAnyCoreLibDesugaring(
+            parameters.getApiLevel(), libraryDesugaringSpecification != JDK8));
     testForL8(parameters.getApiLevel())
         .apply(libraryDesugaringSpecification::configureL8TestBuilder)
         .addLibraryFiles(ToolHelper.getCoreLambdaStubs())
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDeterminismTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDeterminismTest.java
index 8245517..810f1d0 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDeterminismTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDeterminismTest.java
@@ -4,6 +4,7 @@
 package com.android.tools.r8.desugar.desugaredlibrary;
 
 import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.D8_L8DEBUG;
+import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK8;
 import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8Jdk11;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -60,7 +61,9 @@
     Set<String> contextsRoundOne = ConcurrentHashMap.newKeySet();
     Set<String> contextsRoundTwo = ConcurrentHashMap.newKeySet();
     Path determinismLogDir = temp.newFolder().toPath();
-    Assume.assumeTrue(libraryDesugaringSpecification.hasAnyDesugaring(parameters));
+    Assume.assumeTrue(
+        requiresAnyCoreLibDesugaring(
+            parameters.getApiLevel(), libraryDesugaringSpecification != JDK8));
 
     Path libDexFile1 =
         testForL8(parameters.getApiLevel())
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDumpInputsTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDumpInputsTest.java
index 6200ec5..4a9b0a0 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDumpInputsTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDumpInputsTest.java
@@ -4,6 +4,7 @@
 package com.android.tools.r8.desugar.desugaredlibrary;
 
 import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.DEFAULT_SPECIFICATIONS;
+import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK8;
 import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8Jdk11;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.junit.Assert.assertEquals;
@@ -53,7 +54,9 @@
 
   @Test
   public void testDumpToDirectory() throws Exception {
-    Assume.assumeTrue(libraryDesugaringSpecification.hasAnyDesugaring(parameters));
+    Assume.assumeTrue(
+        requiresAnyCoreLibDesugaring(
+            parameters.getApiLevel(), libraryDesugaringSpecification != JDK8));
     Path dumpDir = temp.newFolder().toPath();
     testForDesugaredLibrary(parameters, libraryDesugaringSpecification, compilationSpecification)
         .addProgramClasses(TestClass.class)
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryInvalidTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryInvalidTest.java
index 6a169bf..d31aa91 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryInvalidTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryInvalidTest.java
@@ -39,15 +39,13 @@
             "JDK8_INVALID_LIB",
             DESUGARED_JDK_8_LIB_JAR,
             "desugar_jdk_libs.json",
-            AndroidApiLevel.L,
-            LibraryDesugaringSpecification.JDK8_DESCRIPTOR);
+            AndroidApiLevel.L);
     LibraryDesugaringSpecification jdk11InvalidLib =
         new LibraryDesugaringSpecification(
             "JDK11_INVALID_LIB",
             ToolHelper.getUndesugaredJdk11LibJarForTesting(),
             "jdk11/desugar_jdk_libs.json",
-            AndroidApiLevel.L,
-            LibraryDesugaringSpecification.JDK11_DESCRIPTOR);
+            AndroidApiLevel.L);
     return buildParameters(
         getTestParameters().withAllRuntimes().withAllApiLevelsAlsoForCf().build(),
         ImmutableList.of(jdk8InvalidLib, jdk11InvalidLib),
@@ -65,7 +63,9 @@
 
   @Test
   public void testInvalidLibrary() throws IOException {
-    Assume.assumeTrue(libraryDesugaringSpecification.hasAnyDesugaring(parameters));
+    Assume.assumeTrue(
+        requiresAnyCoreLibDesugaring(
+            parameters.getApiLevel(), !libraryDesugaringSpecification.toString().contains("JDK8")));
     DesugaredLibraryTestBuilder<?> testBuilder =
         testForDesugaredLibrary(
                 parameters, libraryDesugaringSpecification, compilationSpecification)
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryMismatchTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryMismatchTest.java
index 71026ba..1f4d9c1 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryMismatchTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryMismatchTest.java
@@ -7,6 +7,7 @@
 import static com.android.tools.r8.DiagnosticsMatcher.diagnosticMessage;
 import static com.android.tools.r8.DiagnosticsMatcher.diagnosticType;
 import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.D8_L8DEBUG;
+import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK8;
 import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8Jdk11;
 import static org.hamcrest.CoreMatchers.allOf;
 import static org.hamcrest.CoreMatchers.containsString;
@@ -75,7 +76,8 @@
           .addProgramClasses(TestRunner.class)
           .compileWithExpectedDiagnostics(
               diagnostics -> {
-                if (libraryDesugaringSpecification.hasAnyDesugaring(parameters)) {
+                if (requiresAnyCoreLibDesugaring(
+                    parameters.getApiLevel(), libraryDesugaringSpecification != JDK8)) {
                   diagnostics.assertNoInfos();
                   diagnostics.assertAllWarningsMatch(
                       diagnosticMessage(
@@ -156,7 +158,8 @@
           .setMinApi(parameters.getApiLevel())
           .compileWithExpectedDiagnostics(
               diagnostics -> {
-                if (libraryDesugaringSpecification.hasAnyDesugaring(parameters)) {
+                if (requiresAnyCoreLibDesugaring(
+                    parameters.getApiLevel(), libraryDesugaringSpecification != JDK8)) {
                   diagnostics.assertOnlyErrors();
                   diagnostics.assertErrorsMatch(
                       diagnosticType(DesugaredLibraryMismatchDiagnostic.class));
@@ -193,7 +196,8 @@
           .setMinApi(parameters.getApiLevel())
           .compileWithExpectedDiagnostics(
               diagnostics -> {
-                if (libraryDesugaringSpecification.hasAnyDesugaring(parameters)) {
+                if (requiresAnyCoreLibDesugaring(
+                    parameters.getApiLevel(), libraryDesugaringSpecification != JDK8)) {
                   diagnostics.assertOnlyErrors();
                   diagnostics.assertErrorsMatch(
                       diagnosticType(DesugaredLibraryMismatchDiagnostic.class));
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryTestBase.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryTestBase.java
index 4f1b017..4c05352 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryTestBase.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryTestBase.java
@@ -45,6 +45,20 @@
     throw new Error("Unsupported conversion parameters");
   }
 
+  protected boolean requiresEmulatedInterfaceCoreLibDesugaring(TestParameters parameters) {
+    return parameters.getApiLevel().isLessThan(apiLevelWithDefaultInterfaceMethodsSupport());
+  }
+
+  protected boolean requiresTimeDesugaring(TestParameters parameters, boolean isJDK11) {
+    return parameters.getApiLevel().getLevel()
+        < (isJDK11 ? AndroidApiLevel.S.getLevel() : AndroidApiLevel.O.getLevel());
+  }
+
+  protected boolean requiresAnyCoreLibDesugaring(AndroidApiLevel apiLevel, boolean isJDK11) {
+    return apiLevel.getLevel()
+        <= (isJDK11 ? AndroidApiLevel.R.getLevel() : AndroidApiLevel.N_MR1.getLevel());
+  }
+
   protected DesugaredLibraryTestBuilder<?> testForDesugaredLibrary(
       TestParameters parameters,
       LibraryDesugaringSpecification libraryDesugaringSpecification,
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLocalDateReflectedTypePassedToStaticType.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLocalDateReflectedTypePassedToStaticType.java
index c4af0ff..2505e7f 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLocalDateReflectedTypePassedToStaticType.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLocalDateReflectedTypePassedToStaticType.java
@@ -5,6 +5,7 @@
 package com.android.tools.r8.desugar.desugaredlibrary;
 
 import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.DEFAULT_SPECIFICATIONS;
+import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK8;
 import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8Jdk11;
 import static org.hamcrest.core.StringContains.containsString;
 
@@ -55,7 +56,7 @@
             .addKeepMainRule(Main.class)
             .run(parameters.getRuntime(), Main.class);
     if (compilationSpecification.isL8Shrink()
-        && libraryDesugaringSpecification.hasTimeDesugaring(parameters)) {
+        && requiresTimeDesugaring(parameters, libraryDesugaringSpecification != JDK8)) {
       run.assertFailureWithErrorThatMatches(containsString("java.lang.NoSuchMethodException"));
     } else {
       run.assertSuccessWithOutput(EXPECTED);
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredReflectedDesugaredTypePassedToStaticTypeTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredReflectedDesugaredTypePassedToStaticTypeTest.java
index 4466e5d..6c1f23f 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredReflectedDesugaredTypePassedToStaticTypeTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredReflectedDesugaredTypePassedToStaticTypeTest.java
@@ -5,6 +5,7 @@
 package com.android.tools.r8.desugar.desugaredlibrary;
 
 import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.DEFAULT_SPECIFICATIONS;
+import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK8;
 import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8Jdk11;
 import static org.hamcrest.core.StringContains.containsString;
 
@@ -54,7 +55,7 @@
             .addInnerClasses(getClass())
             .addKeepMainRule(Main.class)
             .run(parameters.getRuntime(), Main.class);
-    if (!libraryDesugaringSpecification.hasTimeDesugaring(parameters)) {
+    if (!requiresTimeDesugaring(parameters, libraryDesugaringSpecification != JDK8)) {
       runResult.assertFailureWithErrorThatMatches(
           containsString("java.lang.ClassNotFoundException: j$.time.LocalDate"));
     } else {
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DontKeepBootstrapClassesTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DontKeepBootstrapClassesTest.java
index 0de7cf2..70554a0 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DontKeepBootstrapClassesTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DontKeepBootstrapClassesTest.java
@@ -54,7 +54,7 @@
         .compile()
         .inspectKeepRules(
             keepRule -> {
-              if (libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters)) {
+              if (requiresEmulatedInterfaceCoreLibDesugaring(parameters)) {
                 assertTrue(
                     keepRule.stream()
                         .anyMatch(kr -> kr.contains("-keep class j$.util.function.Consumer")));
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/EmptyDesugaredLibrary.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/EmptyDesugaredLibrary.java
index 9a5ac53..f744809 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/EmptyDesugaredLibrary.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/EmptyDesugaredLibrary.java
@@ -5,6 +5,7 @@
 package com.android.tools.r8.desugar.desugaredlibrary;
 
 import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.D8_L8DEBUG;
+import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK8;
 import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8Jdk11;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -74,7 +75,7 @@
   }
 
   private boolean expectsEmptyDesugaredLibrary(AndroidApiLevel apiLevel) {
-    return !libraryDesugaringSpecification.hasAnyDesugaring(apiLevel);
+    return !requiresAnyCoreLibDesugaring(apiLevel, libraryDesugaringSpecification != JDK8);
   }
 
   @Test
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/EmulatedInterfacesTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/EmulatedInterfacesTest.java
index 2a185ea..1ca61c5 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/EmulatedInterfacesTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/EmulatedInterfacesTest.java
@@ -59,7 +59,7 @@
 
   @Test
   public void testEmulatedInterface() throws Exception {
-    Assume.assumeTrue(libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters));
+    Assume.assumeTrue(requiresEmulatedInterfaceCoreLibDesugaring(parameters));
     CodeInspector inspector =
         testForL8(parameters.getApiLevel())
             .apply(
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/J$ExtensionTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/J$ExtensionTest.java
index 7d4a771..dd036e2 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/J$ExtensionTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/J$ExtensionTest.java
@@ -5,6 +5,7 @@
 package com.android.tools.r8.desugar.desugaredlibrary;
 
 import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.D8_L8DEBUG;
+import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK8;
 import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8Jdk11;
 import static junit.framework.TestCase.assertTrue;
 
@@ -151,7 +152,7 @@
   @Test
   public void testJ$ExtensionDesugaring() throws Throwable {
     Assume.assumeFalse(parameters.isCfRuntime());
-    Assume.assumeTrue(libraryDesugaringSpecification.hasTimeDesugaring(parameters));
+    Assume.assumeTrue(requiresTimeDesugaring(parameters, libraryDesugaringSpecification != JDK8));
     String stdErr =
         testForDesugaredLibrary(
                 parameters, libraryDesugaringSpecification, compilationSpecification)
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaTimeTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaTimeTest.java
index 8d8f669..4b7a485 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaTimeTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaTimeTest.java
@@ -5,6 +5,7 @@
 package com.android.tools.r8.desugar.desugaredlibrary;
 
 import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.SPECIFICATIONS_WITH_CF2CF;
+import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK8;
 import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8Jdk11;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.CoreMatchers.not;
@@ -97,7 +98,7 @@
     Set<String> expectedCatchGuards;
     Set<String> expectedCheckCastType;
     String expectedInstanceOfTypes;
-    if (!libraryDesugaringSpecification.hasTimeDesugaring(parameters)) {
+    if (!requiresTimeDesugaring(parameters, libraryDesugaringSpecification != JDK8)) {
       expectedInvokeHolders =
           SetUtils.newHashSet("java.time.Clock", "java.time.LocalDate", "java.time.ZoneId");
       if (!isR8) {
@@ -150,7 +151,7 @@
             .isGreaterThanOrEqualTo(TestBase.apiLevelWithDefaultInterfaceMethodsSupport())
         && isR8) {
       String holder =
-          libraryDesugaringSpecification.hasTimeDesugaring(parameters)
+          requiresTimeDesugaring(parameters, libraryDesugaringSpecification != JDK8)
               ? "j$.time.temporal.TemporalAccessor"
               : "java.time.temporal.TemporalAccessor";
       assertThat(
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaUtilFunctionTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaUtilFunctionTest.java
index 7196215..d14b845 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaUtilFunctionTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaUtilFunctionTest.java
@@ -57,7 +57,7 @@
   }
 
   private void checkRewrittenArguments(CodeInspector inspector) {
-    if (!libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters)) {
+    if (!requiresEmulatedInterfaceCoreLibDesugaring(parameters)) {
       return;
     }
     ClassSubject classSubject = inspector.clazz(TestClass.class);
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaUtilOptionalTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaUtilOptionalTest.java
index 23a13b6..7c98967 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaUtilOptionalTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaUtilOptionalTest.java
@@ -58,7 +58,7 @@
   }
 
   private void checkRewrittenInvokes(CodeInspector inspector) {
-    if (!libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters)) {
+    if (!requiresEmulatedInterfaceCoreLibDesugaring(parameters)) {
       return;
     }
     ClassSubject classSubject = inspector.clazz(TestClass.class);
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/LibraryEmptySubclassInterfaceTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/LibraryEmptySubclassInterfaceTest.java
index fe5364c..0b048b4 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/LibraryEmptySubclassInterfaceTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/LibraryEmptySubclassInterfaceTest.java
@@ -56,7 +56,7 @@
   }
 
   private void assertExpectedKeepRules(List<String> keepRuleList) {
-    if (!libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters)) {
+    if (!requiresEmulatedInterfaceCoreLibDesugaring(parameters)) {
       return;
     }
     StringBuilder keepRules = new StringBuilder();
@@ -68,7 +68,7 @@
   }
 
   private String getResult() {
-    return libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters)
+    return requiresEmulatedInterfaceCoreLibDesugaring(parameters)
         ? "class j$.util.concurrent.ConcurrentHashMap"
         : "class java.util.concurrent.ConcurrentHashMap";
   }
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/MergingWithDesugaredLibraryTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/MergingWithDesugaredLibraryTest.java
index 9e8ce7b..ca676d3 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/MergingWithDesugaredLibraryTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/MergingWithDesugaredLibraryTest.java
@@ -11,6 +11,7 @@
 import static com.android.tools.r8.MarkerMatcher.markerIsDesugared;
 import static com.android.tools.r8.MarkerMatcher.markerMinApi;
 import static com.android.tools.r8.MarkerMatcher.markerTool;
+import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK8;
 import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8Jdk11;
 import static org.hamcrest.CoreMatchers.allOf;
 import static org.hamcrest.CoreMatchers.not;
@@ -134,7 +135,8 @@
             markerTool(Tool.D8),
             markerIsDesugared(),
             markerHasDesugaredLibraryIdentifier(
-                !libraryDesugaringSpecification.hasAnyDesugaring(parameters)));
+                requiresAnyCoreLibDesugaring(
+                    parameters.getApiLevel(), libraryDesugaringSpecification != JDK8)));
     assertMarkersMatch(
         ExtractMarker.extractMarkerFromDexFile(app), ImmutableList.of(libraryMatcher, d8Matcher));
   }
@@ -220,7 +222,8 @@
   }
 
   private boolean someLibraryDesugaringRequired() {
-    return !libraryDesugaringSpecification.hasAnyDesugaring(parameters);
+    return requiresAnyCoreLibDesugaring(
+        parameters.getApiLevel(), libraryDesugaringSpecification != JDK8);
   }
 
   @Test
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/MonthTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/MonthTest.java
index 0fbcc8c..943c7a9 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/MonthTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/MonthTest.java
@@ -5,6 +5,7 @@
 package com.android.tools.r8.desugar.desugaredlibrary;
 
 import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.DEFAULT_SPECIFICATIONS;
+import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK8;
 import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8Jdk11;
 
 import com.android.tools.r8.TestParameters;
@@ -56,7 +57,7 @@
       return EXPECTED_JAVA_8_OUTPUT;
     }
     assert parameters.isDexRuntime();
-    if (libraryDesugaringSpecification.hasTimeDesugaring(parameters)) {
+    if (requiresTimeDesugaring(parameters, libraryDesugaringSpecification != JDK8)) {
       return EXPECTED_JAVA_8_OUTPUT;
     }
     return EXPECTED_JAVA_9_OUTPUT;
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/NoDesugaredLibraryDexFileTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/NoDesugaredLibraryDexFileTest.java
index a3f36be..5ddc567 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/NoDesugaredLibraryDexFileTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/NoDesugaredLibraryDexFileTest.java
@@ -52,7 +52,7 @@
 
   @Test
   public void testNoDesugaredLibraryDexFile() throws Throwable {
-    Assume.assumeTrue(libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters));
+    Assume.assumeTrue(requiresEmulatedInterfaceCoreLibDesugaring(parameters));
     testForDesugaredLibrary(parameters, libraryDesugaringSpecification, compilationSpecification)
         .addInnerClasses(getClass())
         .addKeepClassAndMembersRules(Executor.class)
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ObjectsTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ObjectsTest.java
index 6c02f88..f5717d8 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ObjectsTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ObjectsTest.java
@@ -72,18 +72,13 @@
   public static List<Object[]> data() {
     LibraryDesugaringSpecification jdk8MaxCompileSdk =
         new LibraryDesugaringSpecification(
-            "JDK8_MAX",
-            DESUGARED_JDK_8_LIB_JAR,
-            "desugar_jdk_libs.json",
-            AndroidApiLevel.LATEST,
-            LibraryDesugaringSpecification.JDK8_DESCRIPTOR);
+            "JDK8_MAX", DESUGARED_JDK_8_LIB_JAR, "desugar_jdk_libs.json", AndroidApiLevel.LATEST);
     LibraryDesugaringSpecification jdk11MaxCompileSdk =
         new LibraryDesugaringSpecification(
             "JDK11_MAX",
             ToolHelper.getUndesugaredJdk11LibJarForTesting(),
             "jdk11/desugar_jdk_libs.json",
-            AndroidApiLevel.LATEST,
-            LibraryDesugaringSpecification.JDK11_DESCRIPTOR);
+            AndroidApiLevel.LATEST);
     return buildParameters(
         getTestParameters().withAllRuntimes().withAllApiLevelsAlsoForCf().build(),
         ImmutableList.of(JDK8, JDK11, jdk8MaxCompileSdk, jdk11MaxCompileSdk),
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ProgramRewritingTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ProgramRewritingTest.java
index f597070..492964e 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ProgramRewritingTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ProgramRewritingTest.java
@@ -56,7 +56,6 @@
                 ToolHelper.getCoreLambdaStubs()),
             JDK8.getSpecification(),
             ImmutableSet.of(ToolHelper.getAndroidJar(AndroidApiLevel.O)),
-            LibraryDesugaringSpecification.JDK8_DESCRIPTOR,
             "");
     LibraryDesugaringSpecification jdk11CoreLambdaStubs =
         new LibraryDesugaringSpecification(
@@ -67,7 +66,6 @@
                 ToolHelper.getCoreLambdaStubs()),
             JDK11.getSpecification(),
             ImmutableSet.of(ToolHelper.getAndroidJar(AndroidApiLevel.R)),
-            LibraryDesugaringSpecification.JDK11_DESCRIPTOR,
             "");
     return buildParameters(
         getTestParameters().withDexRuntimes().withAllApiLevels().build(),
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/SimpleStreamTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/SimpleStreamTest.java
index 78a082c..3cdfedb 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/SimpleStreamTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/SimpleStreamTest.java
@@ -48,7 +48,7 @@
 
   @Test
   public void testSimpleStream() throws Throwable {
-    Assume.assumeTrue(libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters));
+    Assume.assumeTrue(requiresEmulatedInterfaceCoreLibDesugaring(parameters));
     testForDesugaredLibrary(parameters, libraryDesugaringSpecification, compilationSpecification)
         .addInnerClasses(getClass())
         .addKeepMainRule(Executor.class)
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/SpliteratorTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/SpliteratorTest.java
index 3839d19..7b45541 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/SpliteratorTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/SpliteratorTest.java
@@ -64,7 +64,7 @@
 
   @Test
   public void testSpliterator() throws Throwable {
-    Assume.assumeTrue(libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters));
+    Assume.assumeTrue(requiresEmulatedInterfaceCoreLibDesugaring(parameters));
     testForDesugaredLibrary(parameters, libraryDesugaringSpecification, compilationSpecification)
         .addInnerClasses(getClass())
         .compile()
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/ConversionsPresentTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/ConversionsPresentTest.java
index 42fbe70..69b83bf 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/ConversionsPresentTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/ConversionsPresentTest.java
@@ -4,6 +4,7 @@
 
 package com.android.tools.r8.desugar.desugaredlibrary.conversiontests;
 
+import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK8;
 import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8Jdk11;
 import static junit.framework.TestCase.assertEquals;
 import static junit.framework.TestCase.assertTrue;
@@ -57,14 +58,14 @@
                     c.getOriginalName().contains(".util.")
                         || c.getOriginalName().contains(".time."))
             .collect(Collectors.toList());
-    if (libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters)) {
+    if (requiresEmulatedInterfaceCoreLibDesugaring(parameters)) {
       assertEquals(5, conversionsClasses.size());
       assertTrue(inspector.clazz("j$.util.OptionalConversions").isPresent());
       assertTrue(inspector.clazz("j$.time.TimeConversions").isPresent());
       assertTrue(inspector.clazz("j$.util.LongSummaryStatisticsConversions").isPresent());
       assertTrue(inspector.clazz("j$.util.IntSummaryStatisticsConversions").isPresent());
       assertTrue(inspector.clazz("j$.util.DoubleSummaryStatisticsConversions").isPresent());
-    } else if (libraryDesugaringSpecification.hasTimeDesugaring(parameters)) {
+    } else if (requiresTimeDesugaring(parameters, libraryDesugaringSpecification != JDK8)) {
       assertEquals(1, conversionsClasses.size());
       assertTrue(inspector.clazz("j$.time.TimeConversions").isPresent());
     } else {
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonAllMapsTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonAllMapsTest.java
index e7421fe..f66418a 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonAllMapsTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonAllMapsTest.java
@@ -48,7 +48,7 @@
 
   @Test
   public void testGsonAllMaps() throws Exception {
-    Assume.assumeTrue(libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters));
+    Assume.assumeTrue(requiresEmulatedInterfaceCoreLibDesugaring(parameters));
     testForDesugaredLibrary(parameters, libraryDesugaringSpecification, compilationSpecification)
         .addProgramClassesAndInnerClasses(AllMapsTestClass.class)
         .addProgramFiles(GSON_2_8_1_JAR)
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonEnumTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonEnumTest.java
index 716e3da..09f6bcf 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonEnumTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonEnumTest.java
@@ -49,7 +49,7 @@
 
   @Test
   public void testEnum() throws Exception {
-    Assume.assumeTrue(libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters));
+    Assume.assumeTrue(requiresEmulatedInterfaceCoreLibDesugaring(parameters));
     testForDesugaredLibrary(parameters, libraryDesugaringSpecification, compilationSpecification)
         .addInnerClasses(GsonEnumTest.class)
         .addKeepMainRule(Executor.class)
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonOptionalTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonOptionalTest.java
index d42473c..5c033ce 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonOptionalTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonOptionalTest.java
@@ -45,7 +45,7 @@
 
   @Test
   public void testGson() throws Exception {
-    Assume.assumeTrue(libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters));
+    Assume.assumeTrue(requiresEmulatedInterfaceCoreLibDesugaring(parameters));
     testForDesugaredLibrary(parameters, libraryDesugaringSpecification, compilationSpecification)
         .addProgramClassesAndInnerClasses(OptionalTestClass.class)
         .addProgramFiles(GSON_2_8_1_JAR)
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11AtomicTests.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11AtomicTests.java
index ddeddc0..7d09ee0 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11AtomicTests.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11AtomicTests.java
@@ -94,8 +94,7 @@
             ATOMIC_COMPILED_TESTS_FOLDER.resolve(ATOMIC_REFERENCE_TEST + CLASS_EXTENSION))
         .addProgramFiles(testNGSupportProgramFiles())
         .applyIf(
-            !libraryDesugaringSpecification.hasNioFileDesugaring(parameters),
-            b -> b.addProgramFiles(getPathsFiles()))
+            libraryDesugaringSpecification != JDK11_PATH, b -> b.addProgramFiles(getPathsFiles()))
         .compile()
         .withArt6Plus64BitsLib()
         .run(parameters.getRuntime(), "TestNGMainRunner", verbosity, ATOMIC_REFERENCE_TEST)
@@ -111,8 +110,7 @@
             getAllFilesWithSuffixInDirectory(ATOMIC_COMPILED_TESTS_FOLDER, CLASS_EXTENSION))
         .addProgramFiles(testNGSupportProgramFiles())
         .applyIf(
-            !libraryDesugaringSpecification.hasNioFileDesugaring(parameters),
-            b -> b.addProgramFiles(getPathsFiles()))
+            libraryDesugaringSpecification != JDK11_PATH, b -> b.addProgramFiles(getPathsFiles()))
         .compile()
         .withArt6Plus64BitsLib()
         .run(parameters.getRuntime(), "TestNGMainRunner", verbosity, ATOMIC_UPDATERS)
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11ConcurrentMapTests.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11ConcurrentMapTests.java
index f4b8b17..a3641d6 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11ConcurrentMapTests.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11ConcurrentMapTests.java
@@ -119,8 +119,7 @@
         .addProgramFiles(CONCURRENT_COMPILED_TESTS_FILES)
         .addProgramFiles(testNGSupportProgramFiles())
         .applyIf(
-            !libraryDesugaringSpecification.hasNioFileDesugaring(parameters),
-            b -> b.addProgramFiles(getPathsFiles()))
+            libraryDesugaringSpecification != JDK11_PATH, b -> b.addProgramFiles(getPathsFiles()))
         .compile()
         .withArt6Plus64BitsLib()
         .run(parameters.getRuntime(), "TestNGMainRunner", verbosity, "ConcurrentModification")
@@ -169,7 +168,7 @@
             .addProgramFiles(concurrentHashTestToCompile())
             .addProgramFiles(testNGSupportProgramFiles())
             .applyIf(
-                !libraryDesugaringSpecification.hasNioFileDesugaring(parameters),
+                libraryDesugaringSpecification != JDK11_PATH,
                 b -> b.addProgramFiles(getPathsFiles()))
             .compile()
             .withArt6Plus64BitsLib();
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11StreamAbstractTests.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11StreamAbstractTests.java
index ad2644b..94b9162 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11StreamAbstractTests.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11StreamAbstractTests.java
@@ -307,7 +307,7 @@
             parameters, libraryDesugaringSpecification, compilationSpecification)
         .addProgramFiles(filesToCompile)
         .applyIf(
-            !libraryDesugaringSpecification.hasNioFileDesugaring(parameters),
+            libraryDesugaringSpecification != JDK11_PATH_JAVA_BASE_EXT,
             b -> b.addProgramFiles(getPathsFiles()))
         .addProgramFiles(getSafeVarArgsFile())
         .addProgramFiles(testNGSupportProgramFiles())
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11TestLibraryDesugaringSpecification.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11TestLibraryDesugaringSpecification.java
index 7a2760a..6249cf1 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11TestLibraryDesugaringSpecification.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11TestLibraryDesugaringSpecification.java
@@ -73,12 +73,7 @@
     Set<Path> libFiles = new HashSet<>(template.getLibraryFiles());
     libFiles.add(EXTENSION_PATH);
     return new LibraryDesugaringSpecification(
-        name,
-        desugaredJDKLibFiles,
-        template.getSpecification(),
-        libFiles,
-        template.getDescriptor(),
-        getTestNGKeepRules());
+        name, desugaredJDKLibFiles, template.getSpecification(), libFiles, getTestNGKeepRules());
   }
 
   private static synchronized void ensureJavaBaseExtensionsCompiled() throws Exception {
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11TimeAbstractTests.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11TimeAbstractTests.java
index 3e0dc37..ee4cad8 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11TimeAbstractTests.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11TimeAbstractTests.java
@@ -219,7 +219,7 @@
             .addProgramFiles(JDK_11_TIME_TEST_COMPILED_FILES)
             .addProgramFiles(testNGSupportProgramFiles())
             .applyIf(
-                !libraryDesugaringSpecification.hasNioFileDesugaring(parameters),
+                libraryDesugaringSpecification != JDK11_PATH,
                 b -> b.addProgramFiles(getPathsFiles()))
             .compile()
             .withArt6Plus64BitsLib();
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/kotlin/KotlinMetadataTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/kotlin/KotlinMetadataTest.java
index 8c572cf..3458390 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/kotlin/KotlinMetadataTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/kotlin/KotlinMetadataTest.java
@@ -7,6 +7,7 @@
 import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_3_72;
 import static com.android.tools.r8.KotlinTestBase.getCompileMemoizer;
 import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.DEFAULT_SPECIFICATIONS;
+import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK8;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.hamcrest.CoreMatchers.not;
@@ -102,7 +103,7 @@
         .compile()
         .inspect(
             i -> {
-              if (libraryDesugaringSpecification.hasTimeDesugaring(parameters)) {
+              if (requiresTimeDesugaring(parameters, libraryDesugaringSpecification != JDK8)) {
                 inspectRewrittenMetadata(i);
               }
             })
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/r8ondex/HelloWorldCompiledOnArtTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/r8ondex/HelloWorldCompiledOnArtTest.java
index c1224a8..9567481 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/r8ondex/HelloWorldCompiledOnArtTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/r8ondex/HelloWorldCompiledOnArtTest.java
@@ -139,7 +139,7 @@
         .addProgramFiles(ToolHelper.R8_WITH_RELOCATED_DEPS_JAR)
         .applyIf(
             parameters.getApiLevel().getLevel() < AndroidApiLevel.O.getLevel()
-                && !libraryDesugaringSpecification.hasNioFileDesugaring(parameters),
+                && libraryDesugaringSpecification != JDK11_PATH,
             b -> b.addProgramFiles(pathBackport))
         .addOptionsModification(
             options -> {
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/test/LibraryDesugaringSpecification.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/test/LibraryDesugaringSpecification.java
index 0dbdb1f..edff04e 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/test/LibraryDesugaringSpecification.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/test/LibraryDesugaringSpecification.java
@@ -9,7 +9,6 @@
 import static com.android.tools.r8.ToolHelper.getUndesugaredJdk11LibJarForTesting;
 
 import com.android.tools.r8.L8TestBuilder;
-import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.google.common.collect.ImmutableList;
@@ -21,79 +20,28 @@
 
 public class LibraryDesugaringSpecification {
 
-  public static Descriptor JDK8_DESCRIPTOR = new Descriptor(24, 26, -1, 26);
-  public static Descriptor JDK11_DESCRIPTOR = new Descriptor(24, 30, -1, 30);
-  public static Descriptor EMPTY_DESCRIPTOR_24 = new Descriptor(-1, -1, -1, 24);
-  public static Descriptor JDK11_PATH_DESCRIPTOR = new Descriptor(24, 30, 26, 32);
-  public static Descriptor JDK11_LEGACY_DESCRIPTOR = new Descriptor(24, 10000, -1, 10000);
-
-  private static class Descriptor {
-    // Above this level emulated interface are not *entirely* desugared.
-    private final int emulatedInterfaceDesugaring;
-    // Above this level java.time is not *entirely* desugared.
-    private final int timeDesugaring;
-    // Above this level java.nio.file is not *entirely* desugared.
-    private final int nioFileDesugaring;
-    // Above this level no desugaring is required.
-    private final int anyDesugaring;
-
-    private Descriptor(
-        int emulatedInterfaceDesugaring,
-        int timeDesugaring,
-        int nioFileDesugaring,
-        int anyDesugaring) {
-      this.emulatedInterfaceDesugaring = emulatedInterfaceDesugaring;
-      this.timeDesugaring = timeDesugaring;
-      this.nioFileDesugaring = nioFileDesugaring;
-      this.anyDesugaring = anyDesugaring;
-    }
-
-    public int getEmulatedInterfaceDesugaring() {
-      return emulatedInterfaceDesugaring;
-    }
-
-    public int getTimeDesugaring() {
-      return timeDesugaring;
-    }
-
-    public int getNioFileDesugaring() {
-      return nioFileDesugaring;
-    }
-
-    public int getAnyDesugaring() {
-      return anyDesugaring;
-    }
-  }
-
   // Main head specifications.
   public static LibraryDesugaringSpecification JDK8 =
       new LibraryDesugaringSpecification(
-          "JDK8",
-          DESUGARED_JDK_8_LIB_JAR,
-          "desugar_jdk_libs.json",
-          AndroidApiLevel.P,
-          JDK8_DESCRIPTOR);
+          "JDK8", DESUGARED_JDK_8_LIB_JAR, "desugar_jdk_libs.json", AndroidApiLevel.P);
   public static LibraryDesugaringSpecification JDK11 =
       new LibraryDesugaringSpecification(
           "JDK11",
           getUndesugaredJdk11LibJarForTesting(),
           "jdk11/desugar_jdk_libs.json",
-          AndroidApiLevel.R,
-          JDK11_DESCRIPTOR);
+          AndroidApiLevel.R);
   public static LibraryDesugaringSpecification JDK11_MINIMAL =
       new LibraryDesugaringSpecification(
           "JDK11_MINIMAL",
           getUndesugaredJdk11LibJarForTesting(),
           "jdk11/desugar_jdk_libs_minimal.json",
-          AndroidApiLevel.R,
-          EMPTY_DESCRIPTOR_24);
+          AndroidApiLevel.R);
   public static LibraryDesugaringSpecification JDK11_PATH =
       new LibraryDesugaringSpecification(
           "JDK11_PATH",
           getUndesugaredJdk11LibJarForTesting(),
           "jdk11/desugar_jdk_libs_path.json",
-          AndroidApiLevel.R,
-          JDK11_PATH_DESCRIPTOR);
+          AndroidApiLevel.R);
 
   // Legacy specifications.
   public static LibraryDesugaringSpecification JDK11_PATH_ALTERNATIVE_3 =
@@ -101,23 +49,20 @@
           "JDK11_PATH_ALTERNATIVE_3",
           getUndesugaredJdk11LibJarForTesting(),
           "jdk11/desugar_jdk_libs_path_alternative_3.json",
-          AndroidApiLevel.R,
-          JDK11_PATH_DESCRIPTOR);
+          AndroidApiLevel.R);
   public static LibraryDesugaringSpecification JDK11_CHM_ONLY =
       new LibraryDesugaringSpecification(
           "JDK11_CHM_ONLY",
           getUndesugaredJdk11LibJarForTesting(),
           "jdk11/chm_only_desugar_jdk_libs.json",
-          AndroidApiLevel.R,
-          EMPTY_DESCRIPTOR_24);
+          AndroidApiLevel.R);
   public static LibraryDesugaringSpecification JDK11_LEGACY =
       new LibraryDesugaringSpecification(
           "JDK11_LEGACY",
           // The legacy specification is not using the undesugared JAR.
           DESUGARED_JDK_11_LIB_JAR,
           "jdk11/desugar_jdk_libs_legacy.json",
-          AndroidApiLevel.R,
-          JDK11_LEGACY_DESCRIPTOR);
+          AndroidApiLevel.R);
   public static final LibraryDesugaringSpecification RELEASED_1_0_9 =
       new LibraryDesugaringSpecification("1.0.9", AndroidApiLevel.P);
   public static final LibraryDesugaringSpecification RELEASED_1_0_10 =
@@ -133,21 +78,15 @@
   private final Set<Path> desugarJdkLibs;
   private final Path specification;
   private final Set<Path> libraryFiles;
-  private final Descriptor descriptor;
   private final String extraKeepRules;
 
   public LibraryDesugaringSpecification(
-      String name,
-      Path desugarJdkLibs,
-      String specificationPath,
-      AndroidApiLevel androidJarLevel,
-      Descriptor descriptor) {
+      String name, Path desugarJdkLibs, String specificationPath, AndroidApiLevel androidJarLevel) {
     this(
         name,
         ImmutableSet.of(desugarJdkLibs, ToolHelper.DESUGAR_LIB_CONVERSIONS),
         Paths.get("src/library_desugar/" + specificationPath),
         ImmutableSet.of(ToolHelper.getAndroidJar(androidJarLevel)),
-        descriptor,
         "");
   }
 
@@ -157,13 +96,11 @@
       Set<Path> desugarJdkLibs,
       Path specification,
       Set<Path> libraryFiles,
-      Descriptor descriptor,
       String extraKeepRules) {
     this.name = name;
     this.desugarJdkLibs = desugarJdkLibs;
     this.specification = specification;
     this.libraryFiles = libraryFiles;
-    this.descriptor = descriptor;
     this.extraKeepRules = extraKeepRules;
   }
 
@@ -175,7 +112,6 @@
             Paths.get(DESUGARED_LIB_RELEASES_DIR, version, "desugar_jdk_libs_configuration.jar")),
         Paths.get(DESUGARED_LIB_RELEASES_DIR, version, "desugar.json"),
         ImmutableSet.of(ToolHelper.getAndroidJar(androidJarLevel)),
-        JDK8_DESCRIPTOR,
         "");
   }
 
@@ -196,10 +132,6 @@
     return libraryFiles;
   }
 
-  public Descriptor getDescriptor() {
-    return descriptor;
-  }
-
   public String getExtraKeepRules() {
     return extraKeepRules;
   }
@@ -233,24 +165,4 @@
   public static List<LibraryDesugaringSpecification> getJdk8Jdk11() {
     return ImmutableList.of(JDK8, JDK11);
   }
-
-  public boolean hasEmulatedInterfaceDesugaring(TestParameters parameters) {
-    return parameters.getApiLevel().getLevel() < descriptor.getEmulatedInterfaceDesugaring();
-  }
-
-  public boolean hasTimeDesugaring(TestParameters parameters) {
-    return parameters.getApiLevel().getLevel() < descriptor.getTimeDesugaring();
-  }
-
-  public boolean hasNioFileDesugaring(TestParameters parameters) {
-    return parameters.getApiLevel().getLevel() < descriptor.getNioFileDesugaring();
-  }
-
-  public boolean hasAnyDesugaring(TestParameters parameters) {
-    return hasAnyDesugaring(parameters.getApiLevel());
-  }
-
-  public boolean hasAnyDesugaring(AndroidApiLevel apiLevel) {
-    return apiLevel.getLevel() < descriptor.getAnyDesugaring();
-  }
 }