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'])