Enable CF on IfOnAccessModifierTest.
Change-Id: I3edc7ada6ac5ef587aa4965410903ba93c24791f
diff --git a/src/test/java/com/android/tools/r8/TestBase.java b/src/test/java/com/android/tools/r8/TestBase.java
index d6abe44..9833fe7 100644
--- a/src/test/java/com/android/tools/r8/TestBase.java
+++ b/src/test/java/com/android/tools/r8/TestBase.java
@@ -151,19 +151,19 @@
return builder.build();
}
- protected static AndroidApp readClassesAndAndriodJar(List<Class> programClasses)
- throws IOException {
- return readClassesAndAndriodJar(programClasses, ToolHelper.getMinApiLevelForDexVm());
- }
-
- protected static AndroidApp readClassesAndAndriodJar(
- List<Class> programClasses, AndroidApiLevel androidLibrary)
+ protected static AndroidApp readClassesAndRuntimeJar(List<Class> programClasses, Backend backend)
throws IOException {
AndroidApp.Builder builder = AndroidApp.builder();
for (Class clazz : programClasses) {
builder.addProgramFiles(ToolHelper.getClassFileForTestClass(clazz));
}
- builder.addLibraryFiles(ToolHelper.getAndroidJar(androidLibrary));
+ if (backend == Backend.DEX) {
+ AndroidApiLevel androidLibrary = ToolHelper.getMinApiLevelForDexVm();
+ builder.addLibraryFiles(ToolHelper.getAndroidJar(androidLibrary));
+ } else {
+ assert backend == Backend.CF;
+ builder.addLibraryFiles(ToolHelper.getJava8RuntimeJar());
+ }
return builder.build();
}
diff --git a/src/test/java/com/android/tools/r8/naming/b80083341/B80083341.java b/src/test/java/com/android/tools/r8/naming/b80083341/B80083341.java
index 9791142..c4c3801 100644
--- a/src/test/java/com/android/tools/r8/naming/b80083341/B80083341.java
+++ b/src/test/java/com/android/tools/r8/naming/b80083341/B80083341.java
@@ -35,10 +35,16 @@
"-keep,allowobfuscation class " + mainClass.getCanonicalName() + " {",
"}"
);
- AndroidApp app = readClassesAndAndriodJar(ImmutableList.of(
- mainClass, TestClass.class, AnotherClass.class,
- PackagePrivateClass.class, PackagePrivateClass.Itf.class, PackagePrivateClass.Impl.class
- ));
+ AndroidApp app =
+ readClassesAndRuntimeJar(
+ ImmutableList.of(
+ mainClass,
+ TestClass.class,
+ AnotherClass.class,
+ PackagePrivateClass.class,
+ PackagePrivateClass.Itf.class,
+ PackagePrivateClass.Impl.class),
+ Backend.DEX);
AndroidApp processedApp = compileWithR8(app, String.join(System.lineSeparator(), config));
CodeInspector inspector = new CodeInspector(processedApp);
ClassSubject mainSubject = inspector.clazz(mainClass);
diff --git a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java
index 24f64c9..61ff772 100644
--- a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java
+++ b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java
@@ -78,9 +78,9 @@
}
protected CodeInspector inspectAfterShrinking(
- Shrinker mode, List<Class> programClasses, List<String> proguadConfigs) throws Exception {
+ Shrinker mode, List<Class> programClasses, List<String> proguardConfigs) throws Exception {
return inspectAfterShrinking(
- mode, programClasses, String.join(System.lineSeparator(), proguadConfigs));
+ mode, programClasses, String.join(System.lineSeparator(), proguardConfigs));
}
protected CodeInspector inspectAfterShrinking(
@@ -116,17 +116,13 @@
Backend backend)
throws Exception {
assert backend == Backend.DEX || backend == Backend.CF;
- AndroidApp app = readClassesAndAndriodJar(programClasses);
+ AndroidApp app = readClassesAndRuntimeJar(programClasses, backend);
R8Command.Builder builder =
ToolHelper.prepareR8CommandBuilder(
- app,
- backend == Backend.DEX
- ? DexIndexedConsumer.emptyConsumer()
- : ClassFileConsumer.emptyConsumer())
- .addLibraryFiles(
- backend == Backend.DEX
- ? ToolHelper.getDefaultAndroidJar()
- : ToolHelper.getJava8RuntimeJar());
+ app,
+ backend == Backend.DEX
+ ? DexIndexedConsumer.emptyConsumer()
+ : ClassFileConsumer.emptyConsumer());
ToolHelper.allowTestProguardOptions(builder);
builder.addProguardConfiguration(ImmutableList.of(proguardConfig), Origin.unknown());
return ToolHelper.runR8(builder.build(), configure);
diff --git a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAccessModifierTest.java b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAccessModifierTest.java
index 23aad75..af9cfdf 100644
--- a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAccessModifierTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAccessModifierTest.java
@@ -11,6 +11,7 @@
import com.android.tools.r8.naming.MemberNaming.MethodSignature;
import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatibilityTestBase;
+import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.MethodSubject;
@@ -40,7 +41,14 @@
@Parameters(name = "shrinker: {0}")
public static Collection<Object> data() {
- return ImmutableList.of(Shrinker.PROGUARD6, Shrinker.R8);
+ return ImmutableList.of(Shrinker.R8_CF, Shrinker.PROGUARD6, Shrinker.R8);
+ }
+
+ @Override
+ protected AndroidApp runR8(List<Class> programClasses, String proguardConfig, Backend backend)
+ throws Exception {
+ // Disable inlining, otherwise classes can be pruned away if all their methods are inlined.
+ return runR8(programClasses, proguardConfig, o -> o.enableInlining = false, backend);
}
@Test