Add master build of next Art version (Android T)

Built from commit e208b04cc2efaf707390d7acbe8f978142701d72.

Bug: 217158412
Change-Id: Ic9c473cd6b7d0032b4b8299938ca42294a210b43
diff --git a/build.gradle b/build.gradle
index 7f4bcb1..02f53e1 100644
--- a/build.gradle
+++ b/build.gradle
@@ -387,6 +387,7 @@
                 "linux/art-9.0.0",
                 "linux/art-10.0.0",
                 "linux/host/art-12.0.0-beta4",
+                "linux/host/art-13-master",
                 "linux/dalvik",
                 "linux/dalvik-4.0.4",
                 "${osString}/dx",
diff --git a/src/test/java/com/android/tools/r8/CompileWithJdkClassFileProviderTest.java b/src/test/java/com/android/tools/r8/CompileWithJdkClassFileProviderTest.java
index accc8af..318b3c2 100644
--- a/src/test/java/com/android/tools/r8/CompileWithJdkClassFileProviderTest.java
+++ b/src/test/java/com/android/tools/r8/CompileWithJdkClassFileProviderTest.java
@@ -9,6 +9,7 @@
 
 import com.android.tools.r8.TestRuntime.CfRuntime;
 import com.android.tools.r8.TestRuntime.CfVm;
+import com.android.tools.r8.ToolHelper.DexVm;
 import com.android.tools.r8.diagnostic.MissingDefinitionsDiagnostic;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import java.util.List;
@@ -109,23 +110,28 @@
         // java.util.concurrent.Flow$Subscriber is not present on Android.
         testBuilder
             .run(parameters.getRuntime(), "MySubscriber")
-            .assertFailureWithErrorThatMatches(
-                anyOf(
-                    // Dalvik 4.0.4
-                    containsString("java.lang.NoClassDefFoundError: MySubscriber"),
-                    // Other Dalviks.
-                    containsString(
-                        "java.lang.ClassNotFoundException: Didn't find class \"MySubscriber\""),
-                    // Art.
-                    containsString(
-                        "java.lang.NoClassDefFoundError: "
-                            + "Failed resolution of: Ljava/util/concurrent/Flow$Subscriber;"),
-                    // Art 10.
-                    containsString("java.lang.ClassNotFoundException: MySubscriber"),
-                    // Art 11+.
-                    containsString(
-                        "java.lang.ClassNotFoundException: "
-                            + "java.util.concurrent.SubmissionPublisher")));
+            .applyIf(
+                parameters.asDexRuntime().getVersion().isOlderThan(DexVm.Version.V13_MASTER),
+                b ->
+                    b.assertFailureWithErrorThatMatches(
+                        anyOf(
+                            // Dalvik 4.0.4
+                            containsString("java.lang.NoClassDefFoundError: MySubscriber"),
+                            // Other Dalviks.
+                            containsString(
+                                "java.lang.ClassNotFoundException: Didn't find class"
+                                    + " \"MySubscriber\""),
+                            // Art.
+                            containsString(
+                                "java.lang.NoClassDefFoundError: Failed resolution of:"
+                                    + " Ljava/util/concurrent/Flow$Subscriber;"),
+                            // Art 10.
+                            containsString("java.lang.ClassNotFoundException: MySubscriber"),
+                            // Art 11+.
+                            containsString(
+                                "java.lang.ClassNotFoundException: "
+                                    + "java.util.concurrent.SubmissionPublisher"))),
+                b -> b.assertSuccessWithOutputLines("Got : 1", "Got : 2", "Got : 3", "Done"));
       } else {
         if (parameters.getRuntime().asCf().getVm() == CfVm.JDK8) {
           // java.util.concurrent.Flow$Subscriber not present in JDK8.
diff --git a/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java b/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
index ccdd0ca..5b735b1 100644
--- a/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
+++ b/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
@@ -107,7 +107,8 @@
           DexVm.Version.V8_1_0,
           DexVm.Version.V9_0_0,
           DexVm.Version.V10_0_0,
-          DexVm.Version.V12_0_0);
+          DexVm.Version.V12_0_0,
+          DexVm.Version.V13_MASTER);
 
   // Input jar for jctf tests.
   private static final String JCTF_COMMON_JAR = "build/libs/jctfCommon.jar";
@@ -195,12 +196,16 @@
               TestCondition.match(TestCondition.runtimes(DexVm.Version.V12_0_0)))
           // TODO(b/197078746): Triage - fails with "java.lang.NoSuchMethodException:
           //  org.apache.harmony.dalvik.ddmc.DdmVmInternal.enableRecentAllocations [boolean]"
-          .put("098-ddmc", TestCondition.match(TestCondition.runtimes(DexVm.Version.V12_0_0)))
+          .put(
+              "098-ddmc",
+              TestCondition.match(
+                  TestCondition.runtimes(DexVm.Version.V12_0_0, DexVm.Version.V13_MASTER)))
           // TODO(b/197079442): Triage - fails with "java.lang.NoSuchMethodException:
           //  org.apache.harmony.dalvik.ddmc.DdmVmInternal.enableRecentAllocations [boolean]"
           .put(
               "145-alloc-tracking-stress",
-              TestCondition.match(TestCondition.runtimes(DexVm.Version.V12_0_0)))
+              TestCondition.match(
+                  TestCondition.runtimes(DexVm.Version.V12_0_0, DexVm.Version.V13_MASTER)))
           .build();
 
   // Tests that are flaky with the Art version we currently use.
@@ -507,6 +512,9 @@
     ImmutableMap.Builder<DexVm.Version, List<String>> builder = ImmutableMap.builder();
     builder
         .put(
+            DexVm.Version.V13_MASTER,
+            ImmutableList.of("454-get-vreg", "457-regs", "543-env-long-ref", "518-null-array-get"))
+        .put(
             DexVm.Version.V12_0_0,
             ImmutableList.of("454-get-vreg", "457-regs", "543-env-long-ref", "518-null-array-get"))
         .put(
@@ -852,7 +860,8 @@
                           DexVm.Version.V4_4_4,
                           DexVm.Version.V5_1_1,
                           DexVm.Version.V6_0_1,
-                          DexVm.Version.V7_0_0)),
+                          DexVm.Version.V7_0_0,
+                          DexVm.Version.V13_MASTER)),
                   TestCondition.match(
                       TestCondition.compilers(
                           CompilerUnderTest.R8,
diff --git a/src/test/java/com/android/tools/r8/TestCondition.java b/src/test/java/com/android/tools/r8/TestCondition.java
index 07fff0e..cd0a1e7 100644
--- a/src/test/java/com/android/tools/r8/TestCondition.java
+++ b/src/test/java/com/android/tools/r8/TestCondition.java
@@ -26,6 +26,7 @@
     ART_V9_0_0,
     ART_V10_0_0,
     ART_V12_0_0,
+    ART_V13_0_0,
     ART_DEFAULT,
     JAVA;
 
@@ -52,6 +53,8 @@
           return ART_V10_0_0;
         case V12_0_0:
           return ART_V12_0_0;
+        case V13_MASTER:
+          return ART_V13_0_0;
         case DEFAULT:
           return ART_DEFAULT;
         default:
diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java
index 2d8ebe3..fb17345 100644
--- a/src/test/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -268,7 +268,9 @@
     ART_10_0_0_TARGET(Version.V10_0_0, Kind.TARGET),
     ART_10_0_0_HOST(Version.V10_0_0, Kind.HOST),
     ART_12_0_0_TARGET(Version.V12_0_0, Kind.TARGET),
-    ART_12_0_0_HOST(Version.V12_0_0, Kind.HOST);
+    ART_12_0_0_HOST(Version.V12_0_0, Kind.HOST),
+    ART_13_0_0_TARGET(Version.V13_MASTER, Kind.TARGET),
+    ART_13_0_0_HOST(Version.V13_MASTER, Kind.HOST);
 
     private static final ImmutableMap<String, DexVm> SHORT_NAME_MAP =
         Arrays.stream(DexVm.values()).collect(ImmutableMap.toImmutableMap(
@@ -285,7 +287,8 @@
       DEFAULT("default"),
       V9_0_0("9.0.0"),
       V10_0_0("10.0.0"),
-      V12_0_0("12.0.0");
+      V12_0_0("12.0.0"),
+      V13_MASTER("13.0.0");
 
       /** This should generally be the latest DEX VM fully supported. */
       // TODO(b/204855476): Rename to DEFAULT alias once the checked in VM is removed.
@@ -343,7 +346,7 @@
       }
 
       public static Version last() {
-        return V12_0_0;
+        return V13_MASTER;
       }
 
       static {
@@ -614,6 +617,7 @@
   private static final Map<DexVm, String> ART_DIRS =
       ImmutableMap.<DexVm, String>builder()
           .put(DexVm.ART_DEFAULT, "art")
+          .put(DexVm.ART_13_0_0_HOST, "host/art-13-master")
           .put(DexVm.ART_12_0_0_HOST, "host/art-12.0.0-beta4")
           .put(DexVm.ART_10_0_0_HOST, "art-10.0.0")
           .put(DexVm.ART_9_0_0_HOST, "art-9.0.0")
@@ -627,6 +631,7 @@
   private static final Map<DexVm, String> ART_BINARY_VERSIONS =
       ImmutableMap.<DexVm, String>builder()
           .put(DexVm.ART_DEFAULT, "bin/art")
+          .put(DexVm.ART_13_0_0_HOST, "bin/art")
           .put(DexVm.ART_12_0_0_HOST, "bin/art")
           .put(DexVm.ART_10_0_0_HOST, "bin/art")
           .put(DexVm.ART_9_0_0_HOST, "bin/art")
@@ -641,6 +646,7 @@
   private static final Map<DexVm, String> ART_BINARY_VERSIONS_X64 =
       ImmutableMap.<DexVm, String>builder()
           .put(DexVm.ART_DEFAULT, "bin/art")
+          .put(DexVm.ART_13_0_0_HOST, "bin/art")
           .put(DexVm.ART_12_0_0_HOST, "bin/art")
           .put(DexVm.ART_10_0_0_HOST, "bin/art")
           .put(DexVm.ART_9_0_0_HOST, "bin/art")
@@ -667,6 +673,7 @@
     ImmutableMap.Builder<DexVm, List<String>> builder = ImmutableMap.builder();
     builder
         .put(DexVm.ART_DEFAULT, ART_BOOT_LIBS)
+        .put(DexVm.ART_13_0_0_HOST, ART_BOOT_LIBS)
         .put(DexVm.ART_12_0_0_HOST, ART_BOOT_LIBS)
         .put(DexVm.ART_10_0_0_HOST, ART_BOOT_LIBS)
         .put(DexVm.ART_9_0_0_HOST, ART_BOOT_LIBS)
@@ -685,6 +692,7 @@
     ImmutableMap.Builder<DexVm, String> builder = ImmutableMap.builder();
     builder
         .put(DexVm.ART_DEFAULT, "angler")
+        .put(DexVm.ART_13_0_0_HOST, "redfin")
         .put(DexVm.ART_12_0_0_HOST, "redfin")
         .put(DexVm.ART_10_0_0_HOST, "coral")
         .put(DexVm.ART_9_0_0_HOST, "marlin")
@@ -1013,6 +1021,8 @@
 
   public static AndroidApiLevel getMinApiLevelForDexVm(DexVm dexVm) {
     switch (dexVm.version) {
+      case V13_MASTER:
+        return AndroidApiLevel.T;
       case V12_0_0:
         return AndroidApiLevel.S;
       case V10_0_0:
@@ -1973,7 +1983,10 @@
     // TODO(jmhenaff): find a way to run this on windows (push dex and run on device/emulator?)
     Assume.assumeTrue(ToolHelper.isDex2OatSupported());
     Assume.assumeFalse(
-        "b/144975341", vm.version == DexVm.Version.V10_0_0 || vm.version == DexVm.Version.V12_0_0);
+        "b/144975341",
+        vm.version == DexVm.Version.V10_0_0
+            || vm.version == DexVm.Version.V12_0_0
+            || vm.version == DexVm.Version.V13_MASTER);
     if (vm.isOlderThanOrEqual(DexVm.ART_4_4_4_HOST)) {
       // Run default dex2oat for tests on dalvik runtimes.
       vm = DexVm.ART_DEFAULT;
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassInstanceInitTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassInstanceInitTest.java
index 7c60172..a868cf1 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassInstanceInitTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassInstanceInitTest.java
@@ -37,9 +37,10 @@
 
   @Test
   public void testR8() throws Exception {
-    // TODO(b/197078995): Make this work on 12.
+    // TODO(b/197078995): Make this work on 12+.
     assumeFalse(
-        parameters.isDexRuntime() && parameters.getDexRuntimeVersion().isEqualTo(Version.V12_0_0));
+        parameters.isDexRuntime()
+            && parameters.getDexRuntimeVersion().isNewerThanOrEqual(Version.V12_0_0));
     boolean isMockApiLevel =
         parameters.isDexRuntime() && parameters.getApiLevel().isGreaterThanOrEqualTo(mockLevel);
     testForR8(parameters.getBackend())
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassLoadingTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassLoadingTest.java
index ad0961d..916badd 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassLoadingTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassLoadingTest.java
@@ -33,9 +33,10 @@
 
   @Test
   public void testR8() throws Exception {
-    // TODO(b/197078995): Make this work on 12.
+    // TODO(b/197078995): Make this work on 12+.
     assumeFalse(
-        parameters.isDexRuntime() && parameters.getDexRuntimeVersion().isEqualTo(Version.V12_0_0));
+        parameters.isDexRuntime()
+            && parameters.getDexRuntimeVersion().isNewerThanOrEqual(Version.V12_0_0));
     boolean isLibraryOnBootClassPath =
         parameters.isDexRuntime()
             && parameters.getRuntime().maxSupportedApiLevel().isGreaterThanOrEqualTo(mockLevel);
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassTest.java
index dddfcbc..51d34a9 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassTest.java
@@ -36,9 +36,10 @@
 
   @Test
   public void testR8() throws Exception {
-    // TODO(b/197078995): Make this work on 12.
+    // TODO(b/197078995): Make this work on 12+.
     assumeFalse(
-        parameters.isDexRuntime() && parameters.getDexRuntimeVersion().isEqualTo(Version.V12_0_0));
+        parameters.isDexRuntime()
+            && parameters.getDexRuntimeVersion().isNewerThanOrEqual(Version.V12_0_0));
     boolean isMockApiLevel =
         parameters.isDexRuntime() && parameters.getApiLevel().isGreaterThanOrEqualTo(mockLevel);
     testForR8(parameters.getBackend())
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelMockInheritedClassTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelMockInheritedClassTest.java
index 474874c..4f1c13b 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelMockInheritedClassTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelMockInheritedClassTest.java
@@ -35,9 +35,10 @@
 
   @Test
   public void testR8() throws Exception {
-    // TODO(b/197078995): Make this work on 12.
+    // TODO(b/197078995): Make this work on 12+.
     assumeFalse(
-        parameters.isDexRuntime() && parameters.getDexRuntimeVersion().isEqualTo(Version.V12_0_0));
+        parameters.isDexRuntime()
+            && parameters.getDexRuntimeVersion().isNewerThanOrEqual(Version.V12_0_0));
     boolean isMockApiLevel =
         parameters.isDexRuntime() && parameters.getApiLevel().isGreaterThanOrEqualTo(mockLevel);
     testForR8(parameters.getBackend())
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelMockSuperChainClassTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelMockSuperChainClassTest.java
index 6c8b93d..94eb314 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelMockSuperChainClassTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelMockSuperChainClassTest.java
@@ -36,9 +36,10 @@
 
   @Test
   public void testR8() throws Exception {
-    // TODO(b/197078995): Make this work on 12.
+    // TODO(b/197078995): Make this work on 12+.
     assumeFalse(
-        parameters.isDexRuntime() && parameters.getDexRuntimeVersion().isEqualTo(Version.V12_0_0));
+        parameters.isDexRuntime()
+            && parameters.getDexRuntimeVersion().isNewerThanOrEqual(Version.V12_0_0));
     boolean isMockApiLevel =
         parameters.isDexRuntime() && parameters.getApiLevel().isGreaterThanOrEqualTo(mockApiLevel);
     testForR8(parameters.getBackend())
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoOutlineForFullyMockedTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoOutlineForFullyMockedTest.java
index 76e8b57..db72c72 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoOutlineForFullyMockedTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoOutlineForFullyMockedTest.java
@@ -41,8 +41,10 @@
 
   @Test
   public void testR8() throws Exception {
+    // TODO(b/197078995): Make this work on 12+.
     assumeFalse(
-        parameters.isDexRuntime() && parameters.getDexRuntimeVersion().isEqualTo(Version.V12_0_0));
+        parameters.isDexRuntime()
+            && parameters.getDexRuntimeVersion().isNewerThanOrEqual(Version.V12_0_0));
     boolean isLibraryApiLevel =
         parameters.isDexRuntime()
             && parameters.getApiLevel().isGreaterThanOrEqualTo(libraryApiLevel);
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineDuplicateMethodTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineDuplicateMethodTest.java
index c4dcd42..67fad04 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineDuplicateMethodTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineDuplicateMethodTest.java
@@ -47,8 +47,10 @@
 
   @Test
   public void testR8() throws Exception {
+    // TODO(b/197078995): Make this work on 12+.
     assumeFalse(
-        parameters.isDexRuntime() && parameters.getDexRuntimeVersion().isEqualTo(Version.V12_0_0));
+        parameters.isDexRuntime()
+            && parameters.getDexRuntimeVersion().isNewerThanOrEqual(Version.V12_0_0));
     boolean isMethodApiLevel =
         parameters.isDexRuntime()
             && parameters.getApiLevel().isGreaterThanOrEqualTo(methodApiLevel);
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineHorizontalMergingTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineHorizontalMergingTest.java
index ce21ee4..97bced2 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineHorizontalMergingTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineHorizontalMergingTest.java
@@ -45,8 +45,10 @@
 
   @Test
   public void testR8() throws Exception {
+    // TODO(b/197078995): Make this work on 12+.
     assumeFalse(
-        parameters.isDexRuntime() && parameters.getDexRuntimeVersion().isEqualTo(Version.V12_0_0));
+        parameters.isDexRuntime()
+            && parameters.getDexRuntimeVersion().isNewerThanOrEqual(Version.V12_0_0));
     boolean beforeFirstApiMethodLevel =
         parameters.isCfRuntime() || parameters.getApiLevel().isLessThan(firstMethodApiLevel);
     boolean afterSecondApiMethodLevel =
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodAndStubClassTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodAndStubClassTest.java
index a3e2d46..d71eec4 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodAndStubClassTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodAndStubClassTest.java
@@ -39,9 +39,10 @@
 
   @Test
   public void testR8() throws Exception {
-    // TODO(b/197078995): Make this work on 12.
+    // TODO(b/197078995): Make this work on 12+.
     assumeFalse(
-        parameters.isDexRuntime() && parameters.getDexRuntimeVersion().isEqualTo(Version.V12_0_0));
+        parameters.isDexRuntime()
+            && parameters.getDexRuntimeVersion().isNewerThanOrEqual(Version.V12_0_0));
     boolean libraryClassNotStubbed =
         parameters.isDexRuntime()
             && parameters.getApiLevel().isGreaterThanOrEqualTo(libraryClassLevel);
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodMissingClassTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodMissingClassTest.java
index 97ee26b..b537125 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodMissingClassTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodMissingClassTest.java
@@ -47,9 +47,10 @@
 
   @Test
   public void testR8() throws Exception {
-    // TODO(b/197078995): Make this work on 12.
+    // TODO(b/197078995): Make this work on 12+.
     assumeFalse(
-        parameters.isDexRuntime() && parameters.getDexRuntimeVersion().isEqualTo(Version.V12_0_0));
+        parameters.isDexRuntime()
+            && parameters.getDexRuntimeVersion().isNewerThanOrEqual(Version.V12_0_0));
     boolean preMockApis =
         parameters.isCfRuntime() || parameters.getApiLevel().isLessThan(initialLibraryMockLevel);
     boolean postMockApis =
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodProtectedTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodProtectedTest.java
index 42ee1c9..33a73cf 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodProtectedTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodProtectedTest.java
@@ -43,9 +43,10 @@
 
   @Test
   public void testR8() throws Exception {
-    // TODO(b/197078995): Make this work on 12.
+    // TODO(b/197078995): Make this work on 12+.
     assumeFalse(
-        parameters.isDexRuntime() && parameters.getDexRuntimeVersion().isEqualTo(Version.V12_0_0));
+        parameters.isDexRuntime()
+            && parameters.getDexRuntimeVersion().isNewerThanOrEqual(Version.V12_0_0));
     Method[] apiMethods =
         new Method[] {
           LibraryClass.class.getDeclaredMethod("addedOn27"),
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodUnknownTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodUnknownTest.java
index f8b3bf7..0e9a5b3 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodUnknownTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodUnknownTest.java
@@ -35,9 +35,10 @@
 
   @Test
   public void testR8() throws Exception {
-    // TODO(b/197078995): Make this work on 12.
+    // TODO(b/197078995): Make this work on 12+.
     assumeFalse(
-        parameters.isDexRuntime() && parameters.getDexRuntimeVersion().isEqualTo(Version.V12_0_0));
+        parameters.isDexRuntime()
+            && parameters.getDexRuntimeVersion().isNewerThanOrEqual(Version.V12_0_0));
     boolean willInvokeLibraryMethods =
         parameters.isDexRuntime() && parameters.getApiLevel().isGreaterThanOrEqualTo(classApiLevel);
     testForR8(parameters.getBackend())
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlinePackagePrivateTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlinePackagePrivateTest.java
index 40b302d..f4fe8d7 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlinePackagePrivateTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlinePackagePrivateTest.java
@@ -74,9 +74,10 @@
 
   @Test
   public void testR8() throws Exception {
-    // TODO(b/197078995): Make this work on 12.
+    // TODO(b/197078995): Make this work on 12+.
     assumeFalse(
-        parameters.isDexRuntime() && parameters.getDexRuntimeVersion().isEqualTo(Version.V12_0_0));
+        parameters.isDexRuntime()
+            && parameters.getDexRuntimeVersion().isNewerThanOrEqual(Version.V12_0_0));
     testForR8(parameters.getBackend())
         .addLibraryClasses(LibraryClass.class)
         .addDefaultRuntimeLibrary(parameters)
diff --git a/src/test/java/com/android/tools/r8/desugar/backports/ApiLevelBackportsTest.java b/src/test/java/com/android/tools/r8/desugar/backports/ApiLevelBackportsTest.java
index ea0f614..15c56e6 100644
--- a/src/test/java/com/android/tools/r8/desugar/backports/ApiLevelBackportsTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/backports/ApiLevelBackportsTest.java
@@ -88,10 +88,7 @@
         .addProgramClassFileData(transformTestMathMultiplyExactLongInt())
         .setMinApi(AndroidApiLevel.ANDROID_PLATFORM)
         .run(parameters.getRuntime(), TestMathMultiplyExactLongInt.class)
-        .assertFailureWithErrorThatMatches(
-            containsString(
-                "java.lang.NoSuchMethodError: No static method"
-                    + " parseInt(Ljava/lang/CharSequence;III)I"));
+        .assertSuccessWithOutputLines("4");
   }
 
   // Test class for using: List List.of()
diff --git a/src/test/java/com/android/tools/r8/desugar/backports/AtomicReferenceArrayTest.java b/src/test/java/com/android/tools/r8/desugar/backports/AtomicReferenceArrayTest.java
index 2c2af2b..3032a12 100644
--- a/src/test/java/com/android/tools/r8/desugar/backports/AtomicReferenceArrayTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/backports/AtomicReferenceArrayTest.java
@@ -8,7 +8,6 @@
 import com.android.tools.r8.ToolHelper.DexVm.Version;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import java.util.concurrent.atomic.AtomicReferenceArray;
-import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
@@ -25,7 +24,9 @@
   }
 
   public AtomicReferenceArrayTest(TestParameters parameters) {
-    super(parameters, AtomicReferenceFieldUpdater.class, Main.class);
+    super(parameters, AtomicReferenceArray.class, Main.class);
+
+    ignoreInvokes("<init>");
 
     // java.util.concurrent.atomic.AtomicReferenceArray issue is on API 31, see b/211646483.
     registerTarget(AndroidApiLevel.Sv2, 3);
diff --git a/src/test/java/com/android/tools/r8/desugar/backports/AtomicReferenceTest.java b/src/test/java/com/android/tools/r8/desugar/backports/AtomicReferenceTest.java
index 1f5d11e..6dc9faf 100644
--- a/src/test/java/com/android/tools/r8/desugar/backports/AtomicReferenceTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/backports/AtomicReferenceTest.java
@@ -8,7 +8,6 @@
 import com.android.tools.r8.ToolHelper.DexVm.Version;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import java.util.concurrent.atomic.AtomicReference;
-import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
@@ -25,7 +24,9 @@
   }
 
   public AtomicReferenceTest(TestParameters parameters) {
-    super(parameters, AtomicReferenceFieldUpdater.class, Main.class);
+    super(parameters, AtomicReference.class, Main.class);
+
+    ignoreInvokes("<init>");
 
     // java.util.concurrent.atomic.AtomicReference issue is on API 31, see b/211646483.
     registerTarget(AndroidApiLevel.Sv2, 3);
diff --git a/src/test/java/com/android/tools/r8/shaking/InvalidTypesTest.java b/src/test/java/com/android/tools/r8/shaking/InvalidTypesTest.java
index e110f57..f22ae69 100644
--- a/src/test/java/com/android/tools/r8/shaking/InvalidTypesTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/InvalidTypesTest.java
@@ -78,6 +78,7 @@
                 return StringUtils.joinLines("Hello!", "Goodbye!", "");
 
               case V7_0_0:
+              case V13_MASTER:
                 return StringUtils.joinLines(
                     "Hello!",
                     "Unexpected outcome of checkcast",
diff --git a/tools/linux/README.art-versions b/tools/linux/README.art-versions
index ff57695..fee679c 100644
--- a/tools/linux/README.art-versions
+++ b/tools/linux/README.art-versions
@@ -42,6 +42,28 @@
   <continue with repo sync as above>
 
 
+art-13-master (Android T)
+-------------------------
+Build from master commit e208b04cc2efaf707390d7acbe8f978142701d72.
+
+repo sync -cq -j24
+source build/envsetup.sh
+lunch aosp_redfin-userdebug
+m -j48
+m -j48 build-art
+m -j48 test-art-host
+
+Collected into tools/linux/host/art-13-master. The "host" path element is checked
+by the script for running Art.
+
+  cd <r8 checkout>
+  scripts/update-host-art.sh \
+     --android-checkout <...>/android/master \
+     --art-dir host/art-13-master \
+     --android-product redfin
+
+(cd tools/linux/host; upload_to_google_storage.py -a --bucket r8-deps art-13-master)
+
 art-12.0.0 (Android S)
 ---------------------
 Build from branch sc-beta4-release.
diff --git a/tools/linux/host/art-13-master.tar.gz.sha1 b/tools/linux/host/art-13-master.tar.gz.sha1
new file mode 100644
index 0000000..8b16edd
--- /dev/null
+++ b/tools/linux/host/art-13-master.tar.gz.sha1
@@ -0,0 +1 @@
+a2cf2b34b8712adb5c25a18bc6135946cfb1a047
\ No newline at end of file
diff --git a/tools/test.py b/tools/test.py
index 9d5e99f..e822efe 100755
--- a/tools/test.py
+++ b/tools/test.py
@@ -24,6 +24,7 @@
 
 ALL_ART_VMS = [
     "default",
+    "13.0.0",
     "12.0.0",
     "10.0.0",
     "9.0.0",