Enable CF on AsterisksTest.
Also fix typo in the class name 'ProguardCompatabilityTestBase'.
Change-Id: Id1b9c6af0e77305203e1a18e05a6e4ed0e44a15e
diff --git a/src/test/java/com/android/tools/r8/naming/AdaptResourceFileContentsTest.java b/src/test/java/com/android/tools/r8/naming/AdaptResourceFileContentsTest.java
index 51b8d46..2f59f6d 100644
--- a/src/test/java/com/android/tools/r8/naming/AdaptResourceFileContentsTest.java
+++ b/src/test/java/com/android/tools/r8/naming/AdaptResourceFileContentsTest.java
@@ -23,7 +23,7 @@
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.errors.Unreachable;
import com.android.tools.r8.origin.Origin;
-import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
+import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatibilityTestBase;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.ArchiveResourceProvider;
import com.android.tools.r8.utils.FileUtils;
@@ -47,7 +47,7 @@
import org.junit.runners.Parameterized;
@RunWith(Parameterized.class)
-public class AdaptResourceFileContentsTest extends ProguardCompatabilityTestBase {
+public class AdaptResourceFileContentsTest extends ProguardCompatibilityTestBase {
private Backend backend;
diff --git a/src/test/java/com/android/tools/r8/naming/AdaptResourceFileNamesTest.java b/src/test/java/com/android/tools/r8/naming/AdaptResourceFileNamesTest.java
index ce44e58..51201df 100644
--- a/src/test/java/com/android/tools/r8/naming/AdaptResourceFileNamesTest.java
+++ b/src/test/java/com/android/tools/r8/naming/AdaptResourceFileNamesTest.java
@@ -24,7 +24,7 @@
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.naming.AdaptResourceFileContentsTest.CustomDataResourceConsumer;
import com.android.tools.r8.origin.Origin;
-import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
+import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatibilityTestBase;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.ArchiveResourceProvider;
import com.android.tools.r8.utils.FileUtils;
@@ -48,7 +48,7 @@
import org.junit.runners.Parameterized;
@RunWith(Parameterized.class)
-public class AdaptResourceFileNamesTest extends ProguardCompatabilityTestBase {
+public class AdaptResourceFileNamesTest extends ProguardCompatibilityTestBase {
private Backend backend;
diff --git a/src/test/java/com/android/tools/r8/naming/b72391662/B72391662.java b/src/test/java/com/android/tools/r8/naming/b72391662/B72391662.java
index 3f586e6..9eeb2f7 100644
--- a/src/test/java/com/android/tools/r8/naming/b72391662/B72391662.java
+++ b/src/test/java/com/android/tools/r8/naming/b72391662/B72391662.java
@@ -15,7 +15,7 @@
import com.android.tools.r8.VmTestRunner.IgnoreIfVmOlderThan;
import com.android.tools.r8.naming.b72391662.subpackage.OtherPackageSuper;
import com.android.tools.r8.naming.b72391662.subpackage.OtherPackageTestClass;
-import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
+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;
@@ -27,7 +27,7 @@
import org.junit.runner.RunWith;
@RunWith(VmTestRunner.class)
-public class B72391662 extends ProguardCompatabilityTestBase {
+public class B72391662 extends ProguardCompatibilityTestBase {
private static final List<Class> CLASSES = ImmutableList.of(
TestMain.class, Interface.class, Super.class, TestClass.class,
diff --git a/src/test/java/com/android/tools/r8/shaking/AsterisksTest.java b/src/test/java/com/android/tools/r8/shaking/AsterisksTest.java
index 05d0b6f..d28770a 100644
--- a/src/test/java/com/android/tools/r8/shaking/AsterisksTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/AsterisksTest.java
@@ -13,7 +13,7 @@
import com.android.tools.r8.graph.DexClass;
import com.android.tools.r8.graph.DexEncodedMethod;
import com.android.tools.r8.naming.MemberNaming.MethodSignature;
-import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
+import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatibilityTestBase;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.FieldSubject;
@@ -53,7 +53,7 @@
}
@RunWith(Parameterized.class)
-public class AsterisksTest extends ProguardCompatabilityTestBase {
+public class AsterisksTest extends ProguardCompatibilityTestBase {
private final static List<Class> CLASSES = ImmutableList.of(B111974287.class);
private final Shrinker shrinker;
@@ -63,7 +63,7 @@
@Parameters(name = "shrinker: {0}")
public static Collection<Object> data() {
- return ImmutableList.of(Shrinker.PROGUARD6, Shrinker.R8);
+ return ImmutableList.of(Shrinker.PROGUARD6, Shrinker.R8, Shrinker.R8_CF);
}
@Test
diff --git a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatabilityTestBase.java b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java
similarity index 87%
rename from src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatabilityTestBase.java
rename to src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java
index c907276..f0d8c99 100644
--- a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatabilityTestBase.java
+++ b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java
@@ -8,6 +8,7 @@
import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail;
+import com.android.tools.r8.ClassFileConsumer;
import com.android.tools.r8.CompatProguardCommandBuilder;
import com.android.tools.r8.DataEntryResource;
import com.android.tools.r8.DexIndexedConsumer;
@@ -28,7 +29,7 @@
import java.util.List;
import java.util.function.Consumer;
-public class ProguardCompatabilityTestBase extends TestBase {
+public class ProguardCompatibilityTestBase extends TestBase {
protected Path proguardMap;
@@ -37,11 +38,12 @@
PROGUARD6,
PROGUARD6_THEN_D8,
R8_COMPAT,
- R8
+ R8,
+ R8_CF
}
protected static boolean isR8(Shrinker shrinker) {
- return shrinker == Shrinker.R8_COMPAT || shrinker == Shrinker.R8;
+ return shrinker == Shrinker.R8_COMPAT || shrinker == Shrinker.R8 || shrinker == Shrinker.R8_CF;
}
protected AndroidApp runShrinker(
@@ -62,7 +64,9 @@
case R8_COMPAT:
return runR8Compat(programClasses, proguardConfig);
case R8:
- return runR8(programClasses, proguardConfig);
+ return runR8(programClasses, proguardConfig, Backend.DEX);
+ case R8_CF:
+ return runR8(programClasses, proguardConfig, Backend.CF);
}
throw new IllegalArgumentException("Unknown shrinker: " + mode);
}
@@ -85,28 +89,44 @@
case R8_COMPAT:
return inspectR8CompatResult(programClasses, proguardConfig);
case R8:
- return inspectR8Result(programClasses, proguardConfig);
+ return inspectR8Result(programClasses, proguardConfig, Backend.DEX);
+ case R8_CF:
+ return inspectR8Result(programClasses, proguardConfig, Backend.CF);
}
throw new IllegalArgumentException("Unknown shrinker: " + mode);
}
- protected AndroidApp runR8(List<Class> programClasses, String proguardConfig) throws Exception {
- return runR8(programClasses, proguardConfig, null);
+ protected AndroidApp runR8(List<Class> programClasses, String proguardConfig, Backend backend)
+ throws Exception {
+ return runR8(programClasses, proguardConfig, null, backend);
}
protected AndroidApp runR8(
- List<Class> programClasses, String proguardConfig, Consumer<InternalOptions> configure)
+ List<Class> programClasses,
+ String proguardConfig,
+ Consumer<InternalOptions> configure,
+ Backend backend)
throws Exception {
+ assert backend == Backend.DEX || backend == Backend.CF;
AndroidApp app = readClassesAndAndriodJar(programClasses);
- R8Command.Builder builder = ToolHelper.prepareR8CommandBuilder(app);
+ R8Command.Builder builder =
+ ToolHelper.prepareR8CommandBuilder(
+ app,
+ backend == Backend.DEX
+ ? DexIndexedConsumer.emptyConsumer()
+ : ClassFileConsumer.emptyConsumer())
+ .addLibraryFiles(
+ backend == Backend.DEX
+ ? ToolHelper.getDefaultAndroidJar()
+ : ToolHelper.getJava8RuntimeJar());
ToolHelper.allowTestProguardOptions(builder);
builder.addProguardConfiguration(ImmutableList.of(proguardConfig), Origin.unknown());
return ToolHelper.runR8(builder.build(), configure);
}
- protected CodeInspector inspectR8Result(List<Class> programClasses, String proguardConfig)
- throws Exception {
- return new CodeInspector(runR8(programClasses, proguardConfig));
+ protected CodeInspector inspectR8Result(
+ List<Class> programClasses, String proguardConfig, Backend backend) throws Exception {
+ return new CodeInspector(runR8(programClasses, proguardConfig, backend));
}
protected AndroidApp runR8Compat(List<Class> programClasses, String proguardConfig)
diff --git a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ImplicitlyKeptDefaultConstructorTest.java b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ImplicitlyKeptDefaultConstructorTest.java
index 1464cb1..168a0bd 100644
--- a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ImplicitlyKeptDefaultConstructorTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ImplicitlyKeptDefaultConstructorTest.java
@@ -10,7 +10,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
-import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
+import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatibilityTestBase;
import com.android.tools.r8.smali.ConstantFoldingTest.TriConsumer;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -90,7 +90,7 @@
}
}
-public class ImplicitlyKeptDefaultConstructorTest extends ProguardCompatabilityTestBase {
+public class ImplicitlyKeptDefaultConstructorTest extends ProguardCompatibilityTestBase {
private void checkPresentWithDefaultConstructor(ClassSubject clazz) {
assertThat(clazz, isPresent());
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 0f1c519..23aad75 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
@@ -10,7 +10,7 @@
import static org.junit.Assert.assertTrue;
import com.android.tools.r8.naming.MemberNaming.MethodSignature;
-import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
+import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatibilityTestBase;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.MethodSubject;
@@ -23,7 +23,7 @@
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
-public class IfOnAccessModifierTest extends ProguardCompatabilityTestBase {
+public class IfOnAccessModifierTest extends ProguardCompatibilityTestBase {
private final static List<Class> CLASSES = ImmutableList.of(
ClassForIf.class, ClassForSubsequent.class,
MainForAccessModifierTest.class);
diff --git a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAnnotationTest.java b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAnnotationTest.java
index 972b178..20363c5 100644
--- a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAnnotationTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAnnotationTest.java
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.shaking.ifrule;
-import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
+import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatibilityTestBase;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
@@ -14,7 +14,7 @@
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
-public class IfOnAnnotationTest extends ProguardCompatabilityTestBase {
+public class IfOnAnnotationTest extends ProguardCompatibilityTestBase {
private final static List<Class> CLASSES = ImmutableList.of(
UsedAnnotation.class, UnusedAnnotation.class,
UsedAnnotationDependent.class, UnusedAnnotationDependent.class,
diff --git a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnClassTest.java b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnClassTest.java
index cbafcf0..906788a 100644
--- a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnClassTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnClassTest.java
@@ -10,7 +10,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
-import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
+import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatibilityTestBase;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.FieldSubject;
@@ -25,7 +25,7 @@
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
-public class IfOnClassTest extends ProguardCompatabilityTestBase {
+public class IfOnClassTest extends ProguardCompatibilityTestBase {
private final static List<Class> CLASSES = ImmutableList.of(
EmptyMainClassForIfOnClassTests.class,
Precondition.class, DependentUser.class, Dependent.class);
@@ -60,9 +60,9 @@
}
@Override
- protected CodeInspector inspectR8Result(List<Class> programClasses, String proguardConfig)
- throws Exception {
- return super.inspectR8Result(programClasses, adaptConfiguration(proguardConfig));
+ protected CodeInspector inspectR8Result(
+ List<Class> programClasses, String proguardConfig, Backend backend) throws Exception {
+ return super.inspectR8Result(programClasses, adaptConfiguration(proguardConfig), backend);
}
@Override
diff --git a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnFieldTest.java b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnFieldTest.java
index 688c532..79c132b 100644
--- a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnFieldTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnFieldTest.java
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.shaking.ifrule;
-import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
+import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatibilityTestBase;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
@@ -15,7 +15,7 @@
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
-public class IfOnFieldTest extends ProguardCompatabilityTestBase {
+public class IfOnFieldTest extends ProguardCompatibilityTestBase {
private final static List<Class> CLASSES = ImmutableList.of(
D.class, D1.class, D2.class,
R.class, R1.class, R2.class,
@@ -42,9 +42,9 @@
}
@Override
- protected CodeInspector inspectR8Result(List<Class> programClasses, String proguardConfig)
- throws Exception {
- return super.inspectR8Result(programClasses, adaptConfiguration(proguardConfig));
+ protected CodeInspector inspectR8Result(
+ List<Class> programClasses, String proguardConfig, Backend backend) throws Exception {
+ return super.inspectR8Result(programClasses, adaptConfiguration(proguardConfig), backend);
}
@Override
diff --git a/src/test/java/com/android/tools/r8/shaking/ifrule/inlining/IfRuleWithInlining.java b/src/test/java/com/android/tools/r8/shaking/ifrule/inlining/IfRuleWithInlining.java
index 7c7571f..fb9ce61 100644
--- a/src/test/java/com/android/tools/r8/shaking/ifrule/inlining/IfRuleWithInlining.java
+++ b/src/test/java/com/android/tools/r8/shaking/ifrule/inlining/IfRuleWithInlining.java
@@ -9,7 +9,7 @@
import static org.junit.Assert.assertThat;
import com.android.tools.r8.ToolHelper.ProcessResult;
-import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
+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;
@@ -43,7 +43,7 @@
}
@RunWith(Parameterized.class)
-public class IfRuleWithInlining extends ProguardCompatabilityTestBase {
+public class IfRuleWithInlining extends ProguardCompatibilityTestBase {
private final static List<Class> CLASSES = ImmutableList.of(
A.class, D.class, Main.class);
diff --git a/src/test/java/com/android/tools/r8/shaking/ifrule/verticalclassmerging/IfRuleWithVerticalClassMerging.java b/src/test/java/com/android/tools/r8/shaking/ifrule/verticalclassmerging/IfRuleWithVerticalClassMerging.java
index 617cb83..1cec850 100644
--- a/src/test/java/com/android/tools/r8/shaking/ifrule/verticalclassmerging/IfRuleWithVerticalClassMerging.java
+++ b/src/test/java/com/android/tools/r8/shaking/ifrule/verticalclassmerging/IfRuleWithVerticalClassMerging.java
@@ -9,7 +9,7 @@
import static org.junit.Assert.assertThat;
import com.android.tools.r8.ToolHelper.ProcessResult;
-import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
+import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatibilityTestBase;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
@@ -58,7 +58,7 @@
}
@RunWith(Parameterized.class)
-public class IfRuleWithVerticalClassMerging extends ProguardCompatabilityTestBase {
+public class IfRuleWithVerticalClassMerging extends ProguardCompatibilityTestBase {
private final static List<Class> CLASSES = ImmutableList.of(
A.class, B.class, C.class, D.class, Main.class);
@@ -84,8 +84,9 @@
}
@Override
- protected AndroidApp runR8(List<Class> programClasses, String proguardConfig) throws Exception {
- return super.runR8(programClasses, proguardConfig, this::configure);
+ protected AndroidApp runR8(List<Class> programClasses, String proguardConfig, Backend backend)
+ throws Exception {
+ return super.runR8(programClasses, proguardConfig, this::configure, backend);
}
private void check(AndroidApp app) throws Exception {
diff --git a/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepClassMembersTest.java b/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepClassMembersTest.java
index 61f4ce5..cff0675 100644
--- a/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepClassMembersTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepClassMembersTest.java
@@ -11,7 +11,7 @@
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
-import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
+import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatibilityTestBase;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.FieldSubject;
@@ -19,7 +19,7 @@
import com.google.common.collect.ImmutableList;
import org.junit.Test;
-public class KeepClassMembersTest extends ProguardCompatabilityTestBase {
+public class KeepClassMembersTest extends ProguardCompatibilityTestBase {
private void check(CodeInspector inspector, Class mainClass, Class<?> staticClass,
boolean forceProguardCompatibility, boolean fromProguard) {