Update tests that assume no vertical class merging
Change-Id: I5b8ac4a98d762f9a0c410922432db0a5f14b5082
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 9edb509..61b1454 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
@@ -155,7 +155,8 @@
runTest(
mainClass,
ImmutableList.of(mainClass, SuperClass.class, SubClass.class),
- keepMainProguardConfiguration(mainClass),
+ // Prevent SuperClass from being merged into SubClass.
+ keepMainProguardConfiguration(mainClass, ImmutableList.of("-keep class **.SuperClass")),
this::checkAllClassesPresentWithDefaultConstructor);
}
@@ -166,7 +167,8 @@
runTest(
mainClass,
ImmutableList.of(mainClass, SuperClass.class, SubClass.class),
- keepMainProguardConfiguration(mainClass),
+ // Prevent SuperClass from being merged into SubClass.
+ keepMainProguardConfiguration(mainClass, ImmutableList.of("-keep class **.SuperClass")),
this::checkAllClassesPresentWithDefaultConstructor);
}
@@ -177,7 +179,8 @@
runTest(
mainClass,
ImmutableList.of(mainClass, SuperClass.class, SubClass.class),
- keepMainProguardConfiguration(mainClass),
+ // Prevent SuperClass from being merged into SubClass.
+ keepMainProguardConfiguration(mainClass, ImmutableList.of("-keep class **.SuperClass")),
// TODO(74423424): Proguard eliminates the check-cast on null.
this::checkAllClassesPresentWithDefaultConstructor,
this::checkOnlyMainPresent);
@@ -191,7 +194,9 @@
runTest(
mainClass,
ImmutableList.of(mainClass, SuperClass.class, SubClass.class),
- keepMainProguardConfiguration(mainClass, ImmutableList.of("-dontoptimize")),
+ // Prevent SuperClass from being merged into SubClass.
+ keepMainProguardConfiguration(
+ mainClass, ImmutableList.of("-dontoptimize", "-keep class **.SuperClass")),
this::checkAllClassesPresentWithDefaultConstructor);
}
@@ -202,7 +207,8 @@
runTest(
mainClass,
ImmutableList.of(mainClass, SuperClass.class, SubClass.class),
- keepMainProguardConfiguration(mainClass),
+ // Prevent SuperClass from being merged into SubClass.
+ keepMainProguardConfiguration(mainClass, ImmutableList.of("-keep class **.SuperClass")),
this::checkAllClassesPresentWithDefaultConstructor);
}
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 73c3011..7480e2e 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
@@ -187,19 +187,20 @@
@Test
public void ifOnFieldInImplementer_withoutNthWildcard() throws Exception {
- List<String> config = ImmutableList.of(
- "-keep class **.MainUsesImpl {",
- " public static void main(java.lang.String[]);",
- "}",
- "-if class ** implements **.I {",
- " private <fields>;",
- "}",
- "-keep class **.D1",
- "-if class ** implements **.I {",
- " public <fields>;",
- "}",
- "-keep class **.D2"
- );
+ List<String> config =
+ ImmutableList.of(
+ "-keep class **.MainUsesImpl {",
+ " public static void main(java.lang.String[]);",
+ "}",
+ "-keep class **.I", // Prevent I from being merged into Impl.
+ "-if class ** implements **.I {",
+ " private <fields>;",
+ "}",
+ "-keep class **.D1",
+ "-if class ** implements **.I {",
+ " public <fields>;",
+ "}",
+ "-keep class **.D2");
DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
verifyClassesAbsent(dexInspector, D2.class);
@@ -209,19 +210,20 @@
@Test
public void ifOnFieldInImplementer_withNthWildcard() throws Exception {
- List<String> config = ImmutableList.of(
- "-keep class **.MainUsesImpl {",
- " public static void main(java.lang.String[]);",
- "}",
- "-if class ** implements **.I {",
- " private <fields>;",
- "}",
- "-keep class <2>.D1",
- "-if class ** implements **.I {",
- " public <fields>;",
- "}",
- "-keep class <2>.D2"
- );
+ List<String> config =
+ ImmutableList.of(
+ "-keep class **.MainUsesImpl {",
+ " public static void main(java.lang.String[]);",
+ "}",
+ "-keep class **.I", // Prevent I from being merged into Impl.
+ "-if class ** implements **.I {",
+ " private <fields>;",
+ "}",
+ "-keep class <2>.D1",
+ "-if class ** implements **.I {",
+ " public <fields>;",
+ "}",
+ "-keep class <2>.D2");
DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
verifyClassesAbsent(dexInspector, D2.class);