Re-enable Art-10 bot

Bug: 144966342
Change-Id: I98301e0eb1ad4a39b82afc212e5c6d7fac821284
diff --git a/src/test/java/com/android/tools/r8/CompileWithJdkClassFileProviderTest.java b/src/test/java/com/android/tools/r8/CompileWithJdkClassFileProviderTest.java
index ce6cbcc..cbc5c01 100644
--- a/src/test/java/com/android/tools/r8/CompileWithJdkClassFileProviderTest.java
+++ b/src/test/java/com/android/tools/r8/CompileWithJdkClassFileProviderTest.java
@@ -119,7 +119,9 @@
                     // Art.
                     containsString(
                         "java.lang.NoClassDefFoundError: "
-                            + "Failed resolution of: Ljava/util/concurrent/Flow$Subscriber;")));
+                            + "Failed resolution of: Ljava/util/concurrent/Flow$Subscriber;"),
+                    // Art 10+.
+                    containsString("java.lang.ClassNotFoundException: MySubscriber")));
       } 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 8ffe6af..6326718 100644
--- a/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
+++ b/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
@@ -169,7 +169,8 @@
   private static final Multimap<String, TestCondition> timeoutOrSkipRunWithArt =
       new ImmutableListMultimap.Builder<String, TestCondition>()
           // Loops on art - timeout.
-          .put("109-suspend-check",
+          .put(
+              "109-suspend-check",
               TestCondition.match(TestCondition.runtimes(DexVm.Version.V5_1_1)))
           // Flaky loops on art.
           .put("129-ThreadGetId", TestCondition.match(TestCondition.runtimes(DexVm.Version.V5_1_1)))
@@ -177,8 +178,13 @@
           // tests on 5.1.1 makes our buildbot cycles time too long.
           .put("800-smali", TestCondition.match(TestCondition.runtimes(DexVm.Version.V5_1_1)))
           // Hangs on dalvik.
-          .put("802-deoptimization",
+          .put(
+              "802-deoptimization",
               TestCondition.match(TestCondition.runtimesUpTo(DexVm.Version.V4_4_4)))
+          // TODO(b/144975341): Triage
+          .put(
+              "134-reg-promotion",
+              TestCondition.match(TestCondition.runtimes(DexVm.Version.V10_0_0)))
           .build();
 
   // Tests that are flaky with the Art version we currently use.
diff --git a/src/test/java/com/android/tools/r8/R8RunExamplesAndroidOTest.java b/src/test/java/com/android/tools/r8/R8RunExamplesAndroidOTest.java
index 9252555..8b19ae3 100644
--- a/src/test/java/com/android/tools/r8/R8RunExamplesAndroidOTest.java
+++ b/src/test/java/com/android/tools/r8/R8RunExamplesAndroidOTest.java
@@ -71,6 +71,10 @@
               Version.V9_0_0,
               // TODO(120402963) Triage.
               ImmutableList.of("invokecustom-with-shrinking", "invokecustom2-with-shrinking"))
+          .put(
+              Version.V10_0_0,
+              // TODO(120402963) Triage.
+              ImmutableList.of("invokecustom-with-shrinking", "invokecustom2-with-shrinking"))
           .put(Version.DEFAULT, ImmutableList.of())
           .build();
 
diff --git a/src/test/java/com/android/tools/r8/R8RunExamplesCommon.java b/src/test/java/com/android/tools/r8/R8RunExamplesCommon.java
index 174c55d..5a90d52 100644
--- a/src/test/java/com/android/tools/r8/R8RunExamplesCommon.java
+++ b/src/test/java/com/android/tools/r8/R8RunExamplesCommon.java
@@ -190,8 +190,8 @@
     }
     Assume.assumeTrue(ToolHelper.artSupported() || ToolHelper.compareAgaintsGoldenFiles());
 
-
     DexVm vm = ToolHelper.getDexVm();
+    Assume.assumeFalse("Triage (b/144966342)", vm.isNewerThan(DexVm.ART_9_0_0_HOST));
 
     if (shouldSkipVm(vm.getVersion())) {
       return;
diff --git a/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java b/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java
index daab81d..6568713 100644
--- a/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java
+++ b/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java
@@ -202,7 +202,8 @@
     ImmutableMap.Builder<DexVm.Version, List<String>> builder = ImmutableMap.builder();
     builder
         .put(
-            DexVm.Version.V4_0_4, ImmutableList.of(
+            DexVm.Version.V4_0_4,
+            ImmutableList.of(
                 // API not supported
                 "paramnames",
                 "repeat_annotations_new_api",
@@ -214,10 +215,10 @@
                 "StaticMethodInAndroidJar25",
                 "testMissingInterfaceDesugared2AndroidO",
                 "testCallToMissingSuperInterfaceDesugaredAndroidO",
-                "testMissingSuperDesugaredAndroidO"
-            ))
+                "testMissingSuperDesugaredAndroidO"))
         .put(
-            DexVm.Version.V4_4_4, ImmutableList.of(
+            DexVm.Version.V4_4_4,
+            ImmutableList.of(
                 // API not supported
                 "paramnames",
                 "repeat_annotations_new_api",
@@ -229,10 +230,10 @@
                 "StaticMethodInAndroidJar25",
                 "testMissingInterfaceDesugared2AndroidO",
                 "testCallToMissingSuperInterfaceDesugaredAndroidO",
-                "testMissingSuperDesugaredAndroidO"
-            ))
+                "testMissingSuperDesugaredAndroidO"))
         .put(
-            DexVm.Version.V5_1_1, ImmutableList.of(
+            DexVm.Version.V5_1_1,
+            ImmutableList.of(
                 // API not supported
                 "paramnames",
                 "repeat_annotations_new_api",
@@ -244,10 +245,10 @@
                 "StaticMethodInAndroidJar25",
                 "testMissingInterfaceDesugared2AndroidO",
                 "testCallToMissingSuperInterfaceDesugaredAndroidO",
-                "testMissingSuperDesugaredAndroidO"
-            ))
+                "testMissingSuperDesugaredAndroidO"))
         .put(
-            DexVm.Version.V6_0_1, ImmutableList.of(
+            DexVm.Version.V6_0_1,
+            ImmutableList.of(
                 // API not supported
                 "paramnames",
                 "repeat_annotations_new_api",
@@ -259,10 +260,10 @@
                 "StaticMethodInAndroidJar25",
                 "testMissingInterfaceDesugared2AndroidO",
                 "testCallToMissingSuperInterfaceDesugaredAndroidO",
-                "testMissingSuperDesugaredAndroidO"
-            ))
+                "testMissingSuperDesugaredAndroidO"))
         .put(
-            DexVm.Version.V7_0_0, ImmutableList.of(
+            DexVm.Version.V7_0_0,
+            ImmutableList.of(
                 // API not supported
                 "paramnames",
                 // Dex version not supported
@@ -271,17 +272,18 @@
                 "invokecustom2",
                 "testMissingInterfaceDesugared2AndroidO",
                 "testCallToMissingSuperInterfaceDesugaredAndroidO",
-                "testMissingSuperDesugaredAndroidO"
-            ))
+                "testMissingSuperDesugaredAndroidO"))
         .put(
-            DexVm.Version.V9_0_0, ImmutableList.of(
+            DexVm.Version.V9_0_0,
+            ImmutableList.of(
                 // TODO(120402963): Triage.
-                "invokecustom",
-                "invokecustom2"
-            ))
+                "invokecustom", "invokecustom2"))
         .put(
-            DexVm.Version.DEFAULT, ImmutableList.of()
-        );
+            DexVm.Version.V10_0_0,
+            ImmutableList.of(
+                // TODO(120402963): Triage.
+                "invokecustom", "invokecustom2"))
+        .put(DexVm.Version.DEFAULT, ImmutableList.of());
     failsOn = builder.build();
   }
 
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/NonNullParamTest.java b/src/test/java/com/android/tools/r8/ir/optimize/NonNullParamTest.java
index e01ede5..626f771 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/NonNullParamTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/NonNullParamTest.java
@@ -156,7 +156,7 @@
     MethodSubject checkViaCall = mainSubject.uniqueMethodWithName("checkViaCall");
     assertThat(checkViaCall, isPresent());
     assertEquals(0, countActCall(checkViaCall));
-    assertEquals(2, countPrintCall(checkViaCall));
+    assertEquals(canSharePrintCallInSuccessorBlock() ? 1 : 2, countPrintCall(checkViaCall));
 
     MethodSubject checkViaIntrinsic = mainSubject.uniqueMethodWithName("checkViaIntrinsic");
     assertThat(checkViaIntrinsic, isPresent());
@@ -188,12 +188,7 @@
     MethodSubject checkViaCall = mainSubject.uniqueMethodWithName("checkViaCall");
     assertThat(checkViaCall, isPresent());
     assertEquals(0, countActCall(checkViaCall));
-    // With API level >= Q we get a register assignment that allows us to share the print call in a
-    // successor block. See also InternalOptions.canHaveThisJitCodeDebuggingBug().
-    boolean canSharePrintCallInSuccessorBlock =
-        parameters.isDexRuntime()
-            && parameters.getApiLevel().getLevel() >= AndroidApiLevel.Q.getLevel();
-    assertEquals(canSharePrintCallInSuccessorBlock ? 1 : 2, countPrintCall(checkViaCall));
+    assertEquals(canSharePrintCallInSuccessorBlock() ? 1 : 2, countPrintCall(checkViaCall));
 
     MethodSubject checkViaIntrinsic = mainSubject.uniqueMethodWithName("checkViaIntrinsic");
     assertThat(checkViaIntrinsic, isPresent());
@@ -206,6 +201,13 @@
     assertEquals(0, countThrow(checkAtOneLevelHigher));
   }
 
+  private boolean canSharePrintCallInSuccessorBlock() {
+    // With API level >= Q we get a register assignment that allows us to share the print call in a
+    // successor block. See also InternalOptions.canHaveThisJitCodeDebuggingBug().
+    return parameters.isDexRuntime()
+        && parameters.getApiLevel().getLevel() >= AndroidApiLevel.Q.getLevel();
+  }
+
   @Test
   public void testNonNullParamAfterInvokeInterface() throws Exception {
     Class<?> mainClass = NonNullParamAfterInvokeInterfaceMain.class;
diff --git a/src/test/java/com/android/tools/r8/jdwp/RunJdwpTests.java b/src/test/java/com/android/tools/r8/jdwp/RunJdwpTests.java
index 3028525..d21bd3a 100644
--- a/src/test/java/com/android/tools/r8/jdwp/RunJdwpTests.java
+++ b/src/test/java/com/android/tools/r8/jdwp/RunJdwpTests.java
@@ -311,6 +311,7 @@
   }
 
   private void skipIfNeeded(String test, Tool tool) {
+    Assume.assumeFalse("Triage (b/144966342)", getDexVm().isNewerThan(DexVm.ART_9_0_0_HOST));
     // Is it part of smoke tests ?
     if (!RUN_ALL_TESTS) {
       Assume.assumeTrue("Skipping non-smoke test " + test, SMOKE_TESTS.contains(test));
diff --git a/src/test/java/com/android/tools/r8/reachabilitysensitive/ReachabilitySensitiveTest.java b/src/test/java/com/android/tools/r8/reachabilitysensitive/ReachabilitySensitiveTest.java
index 4c2fedc..5d06942 100644
--- a/src/test/java/com/android/tools/r8/reachabilitysensitive/ReachabilitySensitiveTest.java
+++ b/src/test/java/com/android/tools/r8/reachabilitysensitive/ReachabilitySensitiveTest.java
@@ -11,6 +11,7 @@
 import com.android.tools.r8.CompilationFailedException;
 import com.android.tools.r8.CompilationMode;
 import com.android.tools.r8.TestBase;
+import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.code.AddIntLit8;
 import com.android.tools.r8.code.Const4;
 import com.android.tools.r8.code.Instruction;
@@ -25,6 +26,7 @@
 import java.util.List;
 import java.util.concurrent.ExecutionException;
 import java.util.stream.Collectors;
+import org.junit.Assume;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -87,6 +89,9 @@
         inspector.method(TestClass.class.getMethod("method")).getMethod().getCode().asDexCode();
     // Computation of k is constant folded and the value takes up one register. System.out takes
     // up another register and the receiver is the last.
+    Assume.assumeTrue(
+        "TODO(b/144966342): Why 2 on Q?",
+        ToolHelper.getDexVm().isOlderThanOrEqual(ToolHelper.DexVm.ART_9_0_0_HOST));
     assertEquals(3, code.registerSize);
     checkNoLocals(code);
   }
diff --git a/src/test/java/com/android/tools/r8/regress/b120164595/B120164595.java b/src/test/java/com/android/tools/r8/regress/b120164595/B120164595.java
index 9d633f2..7e56259 100644
--- a/src/test/java/com/android/tools/r8/regress/b120164595/B120164595.java
+++ b/src/test/java/com/android/tools/r8/regress/b120164595/B120164595.java
@@ -62,14 +62,14 @@
   }
 
   private void checkArt(TestCompileResult result) throws IOException {
-    ProcessResult artResult = runOnArtRaw(
-        result.app,
-        TestClass.class.getCanonicalName(),
-        builder -> {
-          builder.appendArtOption("-Xusejit:true");
-        },
-        DexVm.ART_9_0_0_HOST
-    );
+    ProcessResult artResult =
+        runOnArtRaw(
+            result.app,
+            TestClass.class.getCanonicalName(),
+            builder -> {
+              builder.appendArtOption("-Xusejit:true");
+            },
+            DexVm.ART_10_0_0_HOST);
     assertEquals(0, artResult.exitCode);
     assertFalse(artResult.stderr.contains("Expected NullPointerException"));
   }
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 5b119ce..2e123d7 100644
--- a/src/test/java/com/android/tools/r8/shaking/InvalidTypesTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/InvalidTypesTest.java
@@ -22,12 +22,14 @@
 import com.android.tools.r8.jasmin.JasminBuilder;
 import com.android.tools.r8.jasmin.JasminBuilder.ClassBuilder;
 import com.android.tools.r8.jasmin.JasminTestBase;
+import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.BooleanUtils;
 import com.android.tools.r8.utils.StringUtils;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Path;
 import java.util.Collection;
 import org.hamcrest.Matcher;
+import org.junit.Assume;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -252,6 +254,14 @@
   }
 
   private void checkTestRunResult(TestRunResult<?> result, Compiler compiler) {
+    Assume.assumeFalse(
+        "Triage (b/144966342)",
+        parameters.getRuntime().isDex()
+            && parameters
+                .getRuntime()
+                .asDex()
+                .getMinApiLevel()
+                .isGreaterThanOrEqualTo(AndroidApiLevel.Q));
     switch (mode) {
       case NO_INVOKE:
         result.assertSuccessWithOutput(getExpectedOutput(compiler));
diff --git a/tools/run-jdwp-tests.py b/tools/run-jdwp-tests.py
index 2ef479d..f40f2ce 100755
--- a/tools/run-jdwp-tests.py
+++ b/tools/run-jdwp-tests.py
@@ -15,6 +15,7 @@
 
 VERSIONS = [
   'default',
+  '10.0.0',
   '9.0.0',
   '8.1.0',
   '7.0.0',
@@ -102,7 +103,7 @@
     flags.extend(['-Ximage:%s' % IMAGE])
     if version != '5.1.1':
       flags.extend(['-Xcompiler-option', '--debuggable'])
-  if version == '9.0.0':
+  if version == '9.0.0' or version == '10.0.0':
     flags.extend(['-XjdwpProvider:internal'])
   return flags
 
diff --git a/tools/test.py b/tools/test.py
index d6e4983..95766ca 100755
--- a/tools/test.py
+++ b/tools/test.py
@@ -156,10 +156,6 @@
 
 def Main():
   (options, args) = ParseOptions()
-  # See b/144966342
-  if options.dex_vm == '10.0.0':
-    print 'Running on 10.0.0 is temporarily disabled, see b/144966342'
-    return 0
 
   if utils.is_bot():
     gradle.RunGradle(['--no-daemon', 'clean'])