Update Art version 13 (Android T)
Built from tm-dev commit 442e1091f39417c692d91609af05e58af60d8e2b.
Bug: 229706824
Bug: 144410139
Change-Id: I2690a70aafee420bb885bc74a5e919328750864a
Fixes: 228290516
diff --git a/build.gradle b/build.gradle
index e5467f0..de4adfc 100644
--- a/build.gradle
+++ b/build.gradle
@@ -369,7 +369,7 @@
"linux/art-9.0.0",
"linux/art-10.0.0",
"linux/host/art-12.0.0-beta4",
- "linux/host/art-13-master",
+ "linux/host/art-13-dev",
"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 318b3c2..8ba7823 100644
--- a/src/test/java/com/android/tools/r8/CompileWithJdkClassFileProviderTest.java
+++ b/src/test/java/com/android/tools/r8/CompileWithJdkClassFileProviderTest.java
@@ -111,7 +111,7 @@
testBuilder
.run(parameters.getRuntime(), "MySubscriber")
.applyIf(
- parameters.asDexRuntime().getVersion().isOlderThan(DexVm.Version.V13_MASTER),
+ parameters.asDexRuntime().getVersion().isOlderThan(DexVm.Version.V13_0_0),
b ->
b.assertFailureWithErrorThatMatches(
anyOf(
diff --git a/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java b/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
index c860721..10c5358 100644
--- a/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
+++ b/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
@@ -102,7 +102,7 @@
DexVm.Version.V9_0_0,
DexVm.Version.V10_0_0,
DexVm.Version.V12_0_0,
- DexVm.Version.V13_MASTER);
+ DexVm.Version.V13_0_0);
private static final String JUNIT_TEST_RUNNER = "org.junit.runner.JUnitCore";
private static final String JUNIT_JAR = "third_party/junit/junit-4.13-beta-2.jar";
@@ -186,13 +186,13 @@
.put(
"098-ddmc",
TestCondition.match(
- TestCondition.runtimes(DexVm.Version.V12_0_0, DexVm.Version.V13_MASTER)))
+ TestCondition.runtimes(DexVm.Version.V12_0_0, DexVm.Version.V13_0_0)))
// 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, DexVm.Version.V13_MASTER)))
+ TestCondition.runtimes(DexVm.Version.V12_0_0, DexVm.Version.V13_0_0)))
.build();
// Tests that are flaky with the Art version we currently use.
@@ -499,7 +499,7 @@
ImmutableMap.Builder<DexVm.Version, List<String>> builder = ImmutableMap.builder();
builder
.put(
- DexVm.Version.V13_MASTER,
+ DexVm.Version.V13_0_0,
ImmutableList.of("454-get-vreg", "457-regs", "543-env-long-ref", "518-null-array-get"))
.put(
DexVm.Version.V12_0_0,
@@ -848,7 +848,7 @@
DexVm.Version.V5_1_1,
DexVm.Version.V6_0_1,
DexVm.Version.V7_0_0,
- DexVm.Version.V13_MASTER)),
+ DexVm.Version.V13_0_0)),
TestCondition.match(
TestCondition.compilers(
CompilerUnderTest.R8,
diff --git a/src/test/java/com/android/tools/r8/R8RunExamplesAndroidOTest.java b/src/test/java/com/android/tools/r8/R8RunExamplesAndroidOTest.java
index 8478b17..a7759e3 100644
--- a/src/test/java/com/android/tools/r8/R8RunExamplesAndroidOTest.java
+++ b/src/test/java/com/android/tools/r8/R8RunExamplesAndroidOTest.java
@@ -90,7 +90,7 @@
// TODO(120402963) Triage.
ImmutableList.of("invokecustom-with-shrinking", "invokecustom2-with-shrinking"))
.put(
- Version.V13_MASTER,
+ Version.V13_0_0,
// TODO(120402963) Triage.
ImmutableList.of("invokecustom-with-shrinking", "invokecustom2-with-shrinking"))
.put(Version.DEFAULT, ImmutableList.of())
diff --git a/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java b/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java
index e6cd425..7fe1ae0 100644
--- a/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java
+++ b/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java
@@ -310,7 +310,7 @@
// TODO(b/120402963): Triage.
"invokecustom", "invokecustom2"))
.put(
- Version.V13_MASTER,
+ Version.V13_0_0,
ImmutableList.of(
// TODO(b/120402963): Triage.
"invokecustom", "invokecustom2"))
diff --git a/src/test/java/com/android/tools/r8/TestCondition.java b/src/test/java/com/android/tools/r8/TestCondition.java
index cd0a1e7..b1a6207 100644
--- a/src/test/java/com/android/tools/r8/TestCondition.java
+++ b/src/test/java/com/android/tools/r8/TestCondition.java
@@ -53,7 +53,7 @@
return ART_V10_0_0;
case V12_0_0:
return ART_V12_0_0;
- case V13_MASTER:
+ case V13_0_0:
return ART_V13_0_0;
case DEFAULT:
return ART_DEFAULT;
diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java
index 5b8bb7a..d6fe222 100644
--- a/src/test/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -267,8 +267,8 @@
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_13_0_0_TARGET(Version.V13_MASTER, Kind.TARGET),
- ART_13_0_0_HOST(Version.V13_MASTER, Kind.HOST);
+ ART_13_0_0_TARGET(Version.V13_0_0, Kind.TARGET),
+ ART_13_0_0_HOST(Version.V13_0_0, Kind.HOST);
private static final ImmutableMap<String, DexVm> SHORT_NAME_MAP =
Arrays.stream(DexVm.values()).collect(ImmutableMap.toImmutableMap(
@@ -286,7 +286,7 @@
V9_0_0("9.0.0"),
V10_0_0("10.0.0"),
V12_0_0("12.0.0"),
- V13_MASTER("13.0.0");
+ V13_0_0("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.
@@ -348,7 +348,7 @@
}
public static Version last() {
- return V13_MASTER;
+ return V13_0_0;
}
static {
@@ -619,7 +619,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_13_0_0_HOST, "host/art-13-dev")
.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")
@@ -1023,7 +1023,7 @@
public static AndroidApiLevel getMinApiLevelForDexVm(DexVm dexVm) {
switch (dexVm.version) {
- case V13_MASTER:
+ case V13_0_0:
return AndroidApiLevel.T;
case V12_0_0:
return AndroidApiLevel.S;
@@ -1992,7 +1992,7 @@
"b/144975341",
vm.version == DexVm.Version.V10_0_0
|| vm.version == DexVm.Version.V12_0_0
- || vm.version == DexVm.Version.V13_MASTER);
+ || vm.version == DexVm.Version.V13_0_0);
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/desugar/backports/ApiLevelBackportsTest.java b/src/test/java/com/android/tools/r8/desugar/backports/ApiLevelBackportsTest.java
index d0db2c9..8eff1c5 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
@@ -102,7 +102,7 @@
.setMinApi(AndroidApiLevel.ANDROID_PLATFORM)
.run(parameters.getRuntime(), TestMathMultiplyExactLongInt.class)
.applyIf(
- parameters.getDexRuntimeVersion().isOlderThan(Version.V13_MASTER),
+ parameters.getDexRuntimeVersion().isOlderThan(Version.V13_0_0),
b ->
b.assertFailureWithErrorThatMatches(
containsString(
diff --git a/src/test/java/com/android/tools/r8/desugaring/interfacemethods/InterfaceMethodDesugaringTests.java b/src/test/java/com/android/tools/r8/desugaring/interfacemethods/InterfaceMethodDesugaringTests.java
index bdbd2b3..9b23bd1 100644
--- a/src/test/java/com/android/tools/r8/desugaring/interfacemethods/InterfaceMethodDesugaringTests.java
+++ b/src/test/java/com/android/tools/r8/desugaring/interfacemethods/InterfaceMethodDesugaringTests.java
@@ -138,7 +138,7 @@
}
@Test
- @IgnoreForRangeOfVmVersions(from = Version.V7_0_0, to = Version.V13_MASTER) // No desugaring
+ @IgnoreForRangeOfVmVersions(from = Version.V7_0_0, to = Version.V13_0_0) // No desugaring
public void testInvokeDefault1() throws Exception {
ensureCustomCheck(
(javaResult, d8Result, r8Result, r8ShakenResult) -> {
diff --git a/src/test/java/com/android/tools/r8/graph/invokespecial/InvokeSpecialOnOtherInterfaceTest.java b/src/test/java/com/android/tools/r8/graph/invokespecial/InvokeSpecialOnOtherInterfaceTest.java
index d05122a..e3a9a96 100644
--- a/src/test/java/com/android/tools/r8/graph/invokespecial/InvokeSpecialOnOtherInterfaceTest.java
+++ b/src/test/java/com/android/tools/r8/graph/invokespecial/InvokeSpecialOnOtherInterfaceTest.java
@@ -12,6 +12,7 @@
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.ToolHelper.DexVm.Version;
import java.io.IOException;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -39,9 +40,13 @@
.addProgramClasses(I.class)
.addProgramClassFileData(getClassWithTransformedInvoked())
.run(parameters.getRuntime(), Main.class)
- .assertFailureWithErrorThatThrowsIf(parameters.isCfRuntime(), VerifyError.class)
// TODO(b/144410139): Consider making this a compilation failure when generating DEX.
- .assertSuccessWithOutputLinesIf(parameters.isDexRuntime(), "Hello World!");
+ .applyIf(
+ parameters.isCfRuntime(),
+ r -> r.assertFailureWithErrorThatThrows(VerifyError.class),
+ parameters.isDexRuntime() && !parameters.isDexRuntimeVersion(Version.V13_0_0),
+ r -> r.assertSuccessWithOutputLines("Hello World!"),
+ r -> r.assertFailureWithErrorThatThrows(VerifyError.class));
}
@Test
@@ -54,14 +59,17 @@
.enableNoMethodStaticizingAnnotations()
.setMinApi(parameters.getApiLevel())
.run(parameters.getRuntime(), Main.class)
- .assertFailureWithErrorThatThrowsIf(parameters.isCfRuntime(), VerifyError.class)
// TODO(b/144410139): Consider making this a compilation failure when generating DEX.
- .assertSuccessWithOutputLinesIf(
+ .applyIf(
+ parameters.isCfRuntime(),
+ r -> r.assertFailureWithErrorThatThrows(VerifyError.class),
parameters.isDexRuntime() && !parameters.canUseDefaultAndStaticInterfaceMethods(),
- "Hello World!")
- .assertFailureWithErrorThatThrowsIf(
- parameters.isDexRuntime() && parameters.canUseDefaultAndStaticInterfaceMethods(),
- NullPointerException.class);
+ r -> r.assertSuccessWithOutputLines("Hello World!"),
+ parameters.isDexRuntime()
+ && !parameters.isDexRuntimeVersion(Version.V13_0_0)
+ && parameters.canUseDefaultAndStaticInterfaceMethods(),
+ r -> r.assertFailureWithErrorThatThrows(NullPointerException.class),
+ r -> r.assertFailureWithErrorThatThrows(NoSuchMethodError.class));
}
private byte[] getClassWithTransformedInvoked() throws IOException {
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/interfaces/OpenUninstantiatedInterfaceInstanceofTest.java b/src/test/java/com/android/tools/r8/ir/optimize/interfaces/OpenUninstantiatedInterfaceInstanceofTest.java
index a729899..68c055d 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/interfaces/OpenUninstantiatedInterfaceInstanceofTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/interfaces/OpenUninstantiatedInterfaceInstanceofTest.java
@@ -99,7 +99,7 @@
}
if (parameters.isDexRuntime()) {
if (parameters.getDexRuntimeVersion().isEqualTo(Version.V7_0_0)
- || parameters.getDexRuntimeVersion().isEqualTo(Version.V13_MASTER)) {
+ || parameters.getDexRuntimeVersion().isEqualTo(Version.V13_0_0)) {
return ImmutableList.of("true");
}
}
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/redundantfieldloadelimination/ThrowingInstructionBeforeOtherwiseRedundantInstanceStoreTest.java b/src/test/java/com/android/tools/r8/ir/optimize/redundantfieldloadelimination/ThrowingInstructionBeforeOtherwiseRedundantInstanceStoreTest.java
index 4c3f07d..29ab7c9 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/redundantfieldloadelimination/ThrowingInstructionBeforeOtherwiseRedundantInstanceStoreTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/redundantfieldloadelimination/ThrowingInstructionBeforeOtherwiseRedundantInstanceStoreTest.java
@@ -7,6 +7,7 @@
import com.android.tools.r8.CompilationMode;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.ToolHelper.DexVm.Version;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -36,7 +37,11 @@
.setMinApi(parameters.getApiLevel())
.compile()
.run(parameters.getRuntime(), Main.class)
- .assertSuccessWithOutputLines("1");
+ .applyIf(
+ // See b/229706824.
+ parameters.getDexRuntimeVersion().equals(Version.V13_0_0),
+ r -> r.assertSuccessWithOutputLines("0"),
+ r -> r.assertSuccessWithOutputLines("1"));
}
static class Main {
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/redundantfieldloadelimination/ThrowingInstructionBeforeOtherwiseRedundantStaticStoreTest.java b/src/test/java/com/android/tools/r8/ir/optimize/redundantfieldloadelimination/ThrowingInstructionBeforeOtherwiseRedundantStaticStoreTest.java
index 60a0b34..abf3664 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/redundantfieldloadelimination/ThrowingInstructionBeforeOtherwiseRedundantStaticStoreTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/redundantfieldloadelimination/ThrowingInstructionBeforeOtherwiseRedundantStaticStoreTest.java
@@ -7,6 +7,7 @@
import com.android.tools.r8.CompilationMode;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.ToolHelper.DexVm.Version;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -36,7 +37,11 @@
.setMinApi(parameters.getApiLevel())
.compile()
.run(parameters.getRuntime(), Main.class)
- .assertSuccessWithOutputLines("1");
+ .applyIf(
+ // See b/229706824.
+ parameters.getDexRuntimeVersion().equals(Version.V13_0_0),
+ r -> r.assertSuccessWithOutputLines("0"),
+ r -> r.assertSuccessWithOutputLines("1"));
}
static class Main {
diff --git a/src/test/java/com/android/tools/r8/jasmin/Regress65007724.java b/src/test/java/com/android/tools/r8/jasmin/Regress65007724.java
index cdc5b63..90660f4 100644
--- a/src/test/java/com/android/tools/r8/jasmin/Regress65007724.java
+++ b/src/test/java/com/android/tools/r8/jasmin/Regress65007724.java
@@ -6,7 +6,6 @@
import com.android.tools.r8.D8TestRunResult;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.ToolHelper.DexVm.Version;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -51,11 +50,6 @@
.setMinApi(parameters.getApiLevel())
.addProgramClassFileData(builder.buildClasses())
.run(parameters.getRuntime(), clazz.name);
- if (parameters.getDexRuntimeVersion().isEqualTo(Version.V13_MASTER)) {
- // See b/220821265
- d8TestRunResult.assertFailure();
- } else {
- d8TestRunResult.assertSuccessWithOutput("Hello World!");
- }
+ d8TestRunResult.assertSuccessWithOutput("Hello World!");
}
}
diff --git a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryWithNarrowingTest.java b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryWithNarrowingTest.java
index f33ee0b..ab211fe 100644
--- a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryWithNarrowingTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryWithNarrowingTest.java
@@ -86,7 +86,8 @@
.addProgramClassFileData(getDWithPackagePrivateFoo())
.run(parameters.getRuntime(), Main.class);
if (parameters.isCfRuntime()
- || parameters.getRuntime().asDex().getVm().isOlderThanOrEqual(DexVm.ART_4_4_4_TARGET)) {
+ || parameters.getRuntime().asDex().getVm().isOlderThanOrEqual(DexVm.ART_4_4_4_TARGET)
+ || parameters.getRuntime().asDex().getVm().isNewerThanOrEqual(DexVm.ART_13_0_0_TARGET)) {
runResult.assertSuccessWithOutputLines(EXPECTED);
} else {
runResult.assertSuccessWithOutputLines(EXPECTED_ART);
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 604caae..bb63e6f 100644
--- a/src/test/java/com/android/tools/r8/shaking/InvalidTypesTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/InvalidTypesTest.java
@@ -86,7 +86,7 @@
"Hello!", "Unexpected outcome of checkcast", "Goodbye!", "");
case V7_0_0:
- case V13_MASTER:
+ case V13_0_0:
return StringUtils.joinLines(
"Hello!",
"Unexpected outcome of checkcast",
diff --git a/tools/linux/README.art-versions b/tools/linux/README.art-versions
index fee679c..02e81cd 100644
--- a/tools/linux/README.art-versions
+++ b/tools/linux/README.art-versions
@@ -42,9 +42,9 @@
<continue with repo sync as above>
-art-13-master (Android T)
--------------------------
-Build from master commit e208b04cc2efaf707390d7acbe8f978142701d72.
+art-13 (Android T)
+------------------
+Build from tm-dev commit 442e1091f39417c692d91609af05e58af60d8e2b.
repo sync -cq -j24
source build/envsetup.sh
@@ -53,16 +53,16 @@
m -j48 build-art
m -j48 test-art-host
-Collected into tools/linux/host/art-13-master. The "host" path element is checked
+Collected into tools/linux/host/art-13. 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-checkout <...>/android/tm-dev \
+ --art-dir host/art-13 \
--android-product redfin
-(cd tools/linux/host; upload_to_google_storage.py -a --bucket r8-deps art-13-master)
+(cd tools/linux/host; upload_to_google_storage.py -a --bucket r8-deps art-13)
art-12.0.0 (Android S)
---------------------
diff --git a/tools/linux/host/art-13-dev.tar.gz.sha1 b/tools/linux/host/art-13-dev.tar.gz.sha1
new file mode 100644
index 0000000..5367655
--- /dev/null
+++ b/tools/linux/host/art-13-dev.tar.gz.sha1
@@ -0,0 +1 @@
+fed34a1eecaf012550cdd9df24434b8b2068a194
\ No newline at end of file
diff --git a/tools/linux/host/art-13-master.tar.gz.sha1 b/tools/linux/host/art-13-master.tar.gz.sha1
deleted file mode 100644
index 8b16edd..0000000
--- a/tools/linux/host/art-13-master.tar.gz.sha1
+++ /dev/null
@@ -1 +0,0 @@
-a2cf2b34b8712adb5c25a18bc6135946cfb1a047
\ No newline at end of file