Enable partial for more resource shrinker tests
Bug: b/405338406
Change-Id: Iedf8ca5cdf101586e57d361ed2ce71574ef34384
diff --git a/src/test/java/com/android/tools/r8/androidresources/DiagnosticOnFinalIntFieldsTest.java b/src/test/java/com/android/tools/r8/androidresources/DiagnosticOnFinalIntFieldsTest.java
index a096a8f..12a294d 100644
--- a/src/test/java/com/android/tools/r8/androidresources/DiagnosticOnFinalIntFieldsTest.java
+++ b/src/test/java/com/android/tools/r8/androidresources/DiagnosticOnFinalIntFieldsTest.java
@@ -28,7 +28,11 @@
@Parameters(name = "{0}")
public static TestParametersCollection parameters() {
- return getTestParameters().withDefaultDexRuntime().withAllApiLevels().build();
+ return getTestParameters()
+ .withDefaultDexRuntime()
+ .withAllApiLevels()
+ .withPartialCompilation()
+ .build();
}
public static AndroidTestResource getTestResources(TemporaryFolder temp) throws Exception {
@@ -43,8 +47,7 @@
// We test the final id field type by simply passing the standard test resources but ignoring
// the aapt generated R class, instead we pass directly the R class from this file, which
// have no real resource references, but does have a non integer field.
- testForR8(parameters.getBackend())
- .setMinApi(parameters)
+ testForR8(parameters)
.addProgramClasses(FooBar.class)
.addAndroidResources(
getTestResources(temp),
diff --git a/src/test/java/com/android/tools/r8/androidresources/DuplicatedEntriesEmptyUnusedTest.java b/src/test/java/com/android/tools/r8/androidresources/DuplicatedEntriesEmptyUnusedTest.java
index 8b7e50b..07045d6 100644
--- a/src/test/java/com/android/tools/r8/androidresources/DuplicatedEntriesEmptyUnusedTest.java
+++ b/src/test/java/com/android/tools/r8/androidresources/DuplicatedEntriesEmptyUnusedTest.java
@@ -3,7 +3,9 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.androidresources;
-import com.android.tools.r8.R8FullTestBuilder;
+import static org.junit.Assume.assumeTrue;
+
+import com.android.tools.r8.R8TestBuilder;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.ToolHelper;
@@ -34,7 +36,11 @@
@Parameters(name = "{0}, optimized: {1}")
public static List<Object[]> data() {
return buildParameters(
- getTestParameters().withDefaultDexRuntime().withAllApiLevels().build(),
+ getTestParameters()
+ .withDefaultDexRuntime()
+ .withAllApiLevels()
+ .withPartialCompilation()
+ .build(),
BooleanUtils.values());
}
@@ -57,17 +63,18 @@
@Test
public void testR8() throws Exception {
+ // We don't support running R8Partial with non optimized resource shrinking.
+ assumeTrue(optimized || parameters.getPartialCompilationTestParameters().isNone());
TemporaryFolder featureSplitTemp = ToolHelper.getTemporaryFolderForTest();
featureSplitTemp.create();
- testForR8(parameters.getBackend())
- .setMinApi(parameters)
+ testForR8(parameters)
.addProgramClasses(Base.class)
.addFeatureSplit(FeatureSplitMain.class)
.addAndroidResources(getTestResources(temp))
.addFeatureSplitAndroidResources(
getFeatureSplitTestResources(featureSplitTemp), FeatureSplit.class.getName())
- .applyIf(optimized, R8FullTestBuilder::enableOptimizedShrinking)
+ .applyIf(optimized, R8TestBuilder::enableOptimizedShrinking)
.addKeepMainRule(Base.class)
.addKeepMainRule(FeatureSplitMain.class)
.compile()
diff --git a/src/test/java/com/android/tools/r8/androidresources/KeepXmlFilesTest.java b/src/test/java/com/android/tools/r8/androidresources/KeepXmlFilesTest.java
index 3676fd8..34c870a 100644
--- a/src/test/java/com/android/tools/r8/androidresources/KeepXmlFilesTest.java
+++ b/src/test/java/com/android/tools/r8/androidresources/KeepXmlFilesTest.java
@@ -3,6 +3,8 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.androidresources;
+import static org.junit.Assume.assumeTrue;
+
import com.android.tools.r8.R8TestBuilder;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
@@ -29,7 +31,11 @@
@Parameters(name = "{0}, optimized: {1}")
public static List<Object[]> data() {
return buildParameters(
- getTestParameters().withDefaultDexRuntime().withAllApiLevels().build(),
+ getTestParameters()
+ .withDefaultDexRuntime()
+ .withAllApiLevels()
+ .withPartialCompilation()
+ .build(),
BooleanUtils.values());
}
@@ -44,8 +50,9 @@
@Test
public void testR8() throws Exception {
- testForR8(parameters.getBackend())
- .setMinApi(parameters)
+ // We don't support running R8Partial with non optimized resource shrinking.
+ assumeTrue(optimized || parameters.getPartialCompilationTestParameters().isNone());
+ testForR8(parameters)
.addProgramClasses(FooBar.class)
.addAndroidResources(getTestResources(temp))
.addKeepMainRule(FooBar.class)
@@ -61,10 +68,12 @@
resourceTableInspector.assertContainsResourceWithName("drawable", "foobar");
// Referenced from additional keep xml files
resourceTableInspector.assertContainsResourceWithName("drawable", "barfoo");
- resourceTableInspector.assertDoesNotContainResourceWithName(
- "string", "unused_string");
- resourceTableInspector.assertDoesNotContainResourceWithName(
- "drawable", "unused_drawable");
+ if (!parameters.isRandomPartialCompilation()) {
+ resourceTableInspector.assertDoesNotContainResourceWithName(
+ "string", "unused_string");
+ resourceTableInspector.assertDoesNotContainResourceWithName(
+ "drawable", "unused_drawable");
+ }
})
.run(parameters.getRuntime(), FooBar.class)
.assertSuccess();
diff --git a/src/test/java/com/android/tools/r8/androidresources/KeepXmlTransitiveCodeReachabilityTest.java b/src/test/java/com/android/tools/r8/androidresources/KeepXmlTransitiveCodeReachabilityTest.java
index d076b60..8ed8c5b 100644
--- a/src/test/java/com/android/tools/r8/androidresources/KeepXmlTransitiveCodeReachabilityTest.java
+++ b/src/test/java/com/android/tools/r8/androidresources/KeepXmlTransitiveCodeReachabilityTest.java
@@ -31,7 +31,11 @@
@Parameters(name = "{0}")
public static TestParametersCollection parameters() {
- return getTestParameters().withDefaultDexRuntime().withAllApiLevels().build();
+ return getTestParameters()
+ .withDefaultDexRuntime()
+ .withAllApiLevels()
+ .withPartialCompilation()
+ .build();
}
public static String XML_WITH_CODE_REFERENCE =
@@ -73,8 +77,7 @@
Multimap<String, String> present,
Multimap<String, String> absent)
throws ExecutionException, IOException, CompilationFailedException {
- testForR8(parameters.getBackend())
- .setMinApi(parameters)
+ testForR8(parameters)
.addProgramClasses(TestClass.class, Bar.class)
.addAndroidResources(testResources)
.addKeepMainRule(TestClass.class)
@@ -83,7 +86,9 @@
.inspectShrunkenResources(
resourceTableInspector -> {
present.forEach(resourceTableInspector::assertContainsResourceWithName);
- absent.forEach(resourceTableInspector::assertDoesNotContainResourceWithName);
+ if (!parameters.isRandomPartialCompilation()) {
+ absent.forEach(resourceTableInspector::assertDoesNotContainResourceWithName);
+ }
})
.inspect(
codeInspector -> {
diff --git a/src/test/java/com/android/tools/r8/androidresources/KeptOnlyRClassEntriesTest.java b/src/test/java/com/android/tools/r8/androidresources/KeptOnlyRClassEntriesTest.java
index 42c61c6..e44ca2e 100644
--- a/src/test/java/com/android/tools/r8/androidresources/KeptOnlyRClassEntriesTest.java
+++ b/src/test/java/com/android/tools/r8/androidresources/KeptOnlyRClassEntriesTest.java
@@ -27,7 +27,11 @@
@Parameters(name = "{0}")
public static TestParametersCollection parameters() {
- return getTestParameters().withDefaultDexRuntime().withAllApiLevels().build();
+ return getTestParameters()
+ .withDefaultDexRuntime()
+ .withAllApiLevels()
+ .withPartialCompilation()
+ .build();
}
public static AndroidTestResource getTestResources(TemporaryFolder temp) throws Exception {
@@ -69,8 +73,7 @@
}
},
s -> s.contains("drawable"));
- testForR8(parameters.getBackend())
- .setMinApi(parameters)
+ testForR8(parameters)
.addProgramClasses(TestClass.class)
.addAndroidResources(testResources)
.addKeepMainRule(TestClass.class)
diff --git a/src/test/java/com/android/tools/r8/androidresources/MultiConfigXmlFilesTest.java b/src/test/java/com/android/tools/r8/androidresources/MultiConfigXmlFilesTest.java
index c8ebee4..7da9265 100644
--- a/src/test/java/com/android/tools/r8/androidresources/MultiConfigXmlFilesTest.java
+++ b/src/test/java/com/android/tools/r8/androidresources/MultiConfigXmlFilesTest.java
@@ -26,7 +26,11 @@
@Parameters(name = "{0}")
public static TestParametersCollection parameters() {
- return getTestParameters().withDefaultDexRuntime().withAllApiLevels().build();
+ return getTestParameters()
+ .withDefaultDexRuntime()
+ .withAllApiLevels()
+ .withPartialCompilation()
+ .build();
}
public static String VIEW_WITH_CLASS_ATTRIBUTE_REFERENCE =
@@ -49,8 +53,7 @@
@Test
public void testClassReferences() throws Exception {
- testForR8(parameters.getBackend())
- .setMinApi(parameters)
+ testForR8(parameters)
.addProgramClasses(TestClass.class, Foo.class, Bar.class)
.addAndroidResources(getTestResources(temp))
.addKeepMainRule(TestClass.class)
diff --git a/src/test/java/com/android/tools/r8/androidresources/NestedXmlReferences.java b/src/test/java/com/android/tools/r8/androidresources/NestedXmlReferences.java
index 70b6fbe..13dfdb2 100644
--- a/src/test/java/com/android/tools/r8/androidresources/NestedXmlReferences.java
+++ b/src/test/java/com/android/tools/r8/androidresources/NestedXmlReferences.java
@@ -27,7 +27,11 @@
@Parameters(name = "{0}")
public static TestParametersCollection parameters() {
- return getTestParameters().withDefaultDexRuntime().withAllApiLevels().build();
+ return getTestParameters()
+ .withDefaultDexRuntime()
+ .withAllApiLevels()
+ .withPartialCompilation()
+ .build();
}
public static String TO_BE_INCLUDED =
@@ -60,8 +64,7 @@
@Test
public void testTransitiveReference() throws Exception {
- testForR8(parameters.getBackend())
- .setMinApi(parameters)
+ testForR8(parameters)
.addProgramClasses(TestClass.class, Bar.class, Foo.class)
.addAndroidResources(getTestResources(temp))
.addKeepMainRule(TestClass.class)
diff --git a/src/test/java/com/android/tools/r8/androidresources/NoOptResourceShrinkingTest.java b/src/test/java/com/android/tools/r8/androidresources/NoOptResourceShrinkingTest.java
index 2248d93..3e19e29 100644
--- a/src/test/java/com/android/tools/r8/androidresources/NoOptResourceShrinkingTest.java
+++ b/src/test/java/com/android/tools/r8/androidresources/NoOptResourceShrinkingTest.java
@@ -3,6 +3,8 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.androidresources;
+import static org.junit.Assume.assumeTrue;
+
import com.android.tools.r8.R8TestBuilder;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
@@ -29,7 +31,11 @@
@Parameters(name = "{0}, optimized: {1}")
public static List<Object[]> data() {
return buildParameters(
- getTestParameters().withDefaultDexRuntime().withAllApiLevels().build(),
+ getTestParameters()
+ .withDefaultDexRuntime()
+ .withAllApiLevels()
+ .withPartialCompilation()
+ .build(),
BooleanUtils.values());
}
@@ -42,9 +48,10 @@
@Test
public void testR8() throws Exception {
+ // We don't support running R8Partial with non optimized resource shrinking.
+ assumeTrue(optimized || parameters.getPartialCompilationTestParameters().isNone());
AndroidTestResource testResources = getTestResources(temp);
- testForR8(parameters.getBackend())
- .setMinApi(parameters)
+ testForR8(parameters)
.addProgramClasses(FooBar.class)
.applyIf(optimized, R8TestBuilder::enableOptimizedShrinking)
.addAndroidResources(testResources)
@@ -55,8 +62,10 @@
resourceTableInspector -> {
resourceTableInspector.assertContainsResourceWithName("string", "bar");
resourceTableInspector.assertContainsResourceWithName("string", "foo");
- resourceTableInspector.assertDoesNotContainResourceWithName(
- "string", "unused_string");
+ if (!parameters.isRandomPartialCompilation()) {
+ resourceTableInspector.assertDoesNotContainResourceWithName(
+ "string", "unused_string");
+ }
})
.run(parameters.getRuntime(), FooBar.class)
.assertSuccess();
diff --git a/src/test/java/com/android/tools/r8/androidresources/OnClickMethodReferenceTest.java b/src/test/java/com/android/tools/r8/androidresources/OnClickMethodReferenceTest.java
index 16cce10..25cbd14 100644
--- a/src/test/java/com/android/tools/r8/androidresources/OnClickMethodReferenceTest.java
+++ b/src/test/java/com/android/tools/r8/androidresources/OnClickMethodReferenceTest.java
@@ -30,7 +30,11 @@
@Parameters(name = "{0}")
public static TestParametersCollection parameters() {
- return getTestParameters().withDefaultDexRuntime().withAllApiLevels().build();
+ return getTestParameters()
+ .withDefaultDexRuntime()
+ .withAllApiLevels()
+ .withPartialCompilation()
+ .build();
}
public static String XML_WITH_ONCLICK =
@@ -64,8 +68,7 @@
@Test
public void testSingleClassWithOnclick() throws Exception {
- testForR8(parameters.getBackend())
- .setMinApi(parameters)
+ testForR8(parameters)
.addProgramClasses(TestClass.class, Bar.class, Foo.class)
.addAndroidResources(getTestResources(temp, XML_WITH_ONCLICK))
.addKeepMainRule(TestClass.class)
@@ -79,15 +82,16 @@
barClass.uniqueMethodWithOriginalName("theMagicOnClick"),
isPresentAndNotRenamed());
- ClassSubject fooClass = codeInspector.clazz(Foo.class);
- assertThat(fooClass, isAbsent());
+ if (!parameters.isRandomPartialCompilation()) {
+ ClassSubject fooClass = codeInspector.clazz(Foo.class);
+ assertThat(fooClass, isAbsent());
+ }
});
}
@Test
public void testNestedClassWithOnclick() throws Exception {
- testForR8(parameters.getBackend())
- .setMinApi(parameters)
+ testForR8(parameters)
.addProgramClasses(TestClass.class, Bar.class, Foo.class)
.addAndroidResources(getTestResources(temp, XML_WITH_NESTED_CLASS_AND_ONCLICK))
.addKeepMainRule(TestClass.class)
diff --git a/src/test/java/com/android/tools/r8/androidresources/RClassWithNonIDFieldTest.java b/src/test/java/com/android/tools/r8/androidresources/RClassWithNonIDFieldTest.java
index 8cac122..324e46c 100644
--- a/src/test/java/com/android/tools/r8/androidresources/RClassWithNonIDFieldTest.java
+++ b/src/test/java/com/android/tools/r8/androidresources/RClassWithNonIDFieldTest.java
@@ -25,7 +25,11 @@
@Parameters(name = "{0}")
public static TestParametersCollection parameters() {
- return getTestParameters().withDefaultDexRuntime().withAllApiLevels().build();
+ return getTestParameters()
+ .withDefaultDexRuntime()
+ .withAllApiLevels()
+ .withPartialCompilation()
+ .build();
}
public static AndroidTestResource getTestResources(TemporaryFolder temp) throws Exception {
@@ -40,8 +44,7 @@
// We test the non id field type by simply passing the standard test resources but ignoring
// the aapt generated R class, instead we pass directly the R class from this file, which
// have no real resource references, but does have a non integer field.
- testForR8(parameters.getBackend())
- .setMinApi(parameters)
+ testForR8(parameters)
.addProgramClasses(FooBar.class)
.addAndroidResources(
getTestResources(temp),
@@ -54,7 +57,9 @@
resourceTableInspector -> {
// We explicitly do not have any resources traced since we don't use the aapt
// R class file.
- resourceTableInspector.assertDoesNotContainResourceWithName("string", "foo");
+ if (!parameters.isRandomPartialCompilation()) {
+ resourceTableInspector.assertDoesNotContainResourceWithName("string", "foo");
+ }
})
.run(parameters.getRuntime(), FooBar.class)
.assertSuccessWithOutputLines("bar");