IdentifierMinifierTest: add test with "-adaptclassstrings" (no filter)
Bug: 124648123
Change-Id: I5bd12173f71cd25135e31614f440cdc27e137307
diff --git a/src/test/examples/adaptclassstrings/Main.java b/src/test/examples/adaptclassstrings/Main.java
index 4cee1d5..0489ca4 100644
--- a/src/test/examples/adaptclassstrings/Main.java
+++ b/src/test/examples/adaptclassstrings/Main.java
@@ -5,6 +5,7 @@
public class Main {
public static void main(String[] args) throws Exception {
+ assert false;
int f = 3;
A a = new A(f);
AA aa = new AA(f);
@@ -25,6 +26,7 @@
assert a_foo.equals(c_to_a_foo);
String cName = (String) Class.forName(C.ITSELF).getField("ITSELF").get(null);
- assert cName.equals(A.OTHER);
+ boolean b = cName.equals(A.OTHER);
+ assert b;
}
}
diff --git a/src/test/examples/adaptclassstrings/keep-rules-3.txt b/src/test/examples/adaptclassstrings/keep-rules-3.txt
new file mode 100644
index 0000000..f853c46
--- /dev/null
+++ b/src/test/examples/adaptclassstrings/keep-rules-3.txt
@@ -0,0 +1,13 @@
+# Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+# Keep the application entry point. Get rid of everything that is not
+# reachable from there.
+-keep public class adaptclassstrings.Main {
+ public static void main(...);
+}
+
+-dontshrink
+
+-adaptclassstrings
diff --git a/src/test/java/com/android/tools/r8/naming/IdentifierMinifierTest.java b/src/test/java/com/android/tools/r8/naming/IdentifierMinifierTest.java
index d06809e..057c751 100644
--- a/src/test/java/com/android/tools/r8/naming/IdentifierMinifierTest.java
+++ b/src/test/java/com/android/tools/r8/naming/IdentifierMinifierTest.java
@@ -100,6 +100,7 @@
Map<String, Consumer<CodeInspector>> inspections = new HashMap<>();
inspections.put("adaptclassstrings:keep-rules-1.txt", IdentifierMinifierTest::test1_rule1);
inspections.put("adaptclassstrings:keep-rules-2.txt", IdentifierMinifierTest::test1_rule2);
+ inspections.put("adaptclassstrings:keep-rules-3.txt", IdentifierMinifierTest::test1_rule3);
inspections.put(
"atomicfieldupdater:keep-rules.txt", IdentifierMinifierTest::test_atomicfieldupdater);
inspections.put("forname:keep-rules.txt", IdentifierMinifierTest::test_forname);
@@ -107,7 +108,6 @@
inspections.put("identifiernamestring:keep-rules-1.txt", IdentifierMinifierTest::test2_rule1);
inspections.put("identifiernamestring:keep-rules-2.txt", IdentifierMinifierTest::test2_rule2);
inspections.put("identifiernamestring:keep-rules-3.txt", IdentifierMinifierTest::test2_rule3);
-
Collection<Object[]> parameters = NamingTestBase.createTests(tests, inspections);
// Duplicate parameters for each backend.
@@ -126,36 +126,28 @@
// Without -adaptclassstrings
private static void test1_rule1(CodeInspector inspector) {
- ClassSubject mainClass = inspector.clazz("adaptclassstrings.Main");
- MethodSubject main = mainClass.method(CodeInspector.MAIN);
- assertTrue(main instanceof FoundMethodSubject);
- FoundMethodSubject foundMain = (FoundMethodSubject) main;
- verifyPresenceOfConstString(foundMain);
- int renamedYetFoundIdentifierCount = countRenamedClassIdentifier(inspector, foundMain);
- assertEquals(4, renamedYetFoundIdentifierCount);
-
- ClassSubject aClass = inspector.clazz("adaptclassstrings.A");
- MethodSubject bar = aClass.method("void", "bar", ImmutableList.of());
- assertTrue(bar instanceof FoundMethodSubject);
- FoundMethodSubject foundBar = (FoundMethodSubject) bar;
- verifyPresenceOfConstString(foundBar);
- renamedYetFoundIdentifierCount = countRenamedClassIdentifier(inspector, foundBar);
- assertEquals(0, renamedYetFoundIdentifierCount);
-
- renamedYetFoundIdentifierCount =
- countRenamedClassIdentifier(inspector, aClass.getDexClass().staticFields());
- assertEquals(0, renamedYetFoundIdentifierCount);
+ test1_rules(inspector, 4, 0, 0);
}
// With -adaptclassstrings *.*A
private static void test1_rule2(CodeInspector inspector) {
+ test1_rules(inspector, 4, 1, 1);
+ }
+
+ // With -adaptclassstrings (no filter)
+ private static void test1_rule3(CodeInspector inspector) {
+ test1_rules(inspector, 5, 1, 1);
+ }
+
+ private static void test1_rules(
+ CodeInspector inspector, int countInMain, int countInABar, int countInAFields) {
ClassSubject mainClass = inspector.clazz("adaptclassstrings.Main");
MethodSubject main = mainClass.method(CodeInspector.MAIN);
assertTrue(main instanceof FoundMethodSubject);
FoundMethodSubject foundMain = (FoundMethodSubject) main;
verifyPresenceOfConstString(foundMain);
int renamedYetFoundIdentifierCount = countRenamedClassIdentifier(inspector, foundMain);
- assertEquals(4, renamedYetFoundIdentifierCount);
+ assertEquals(countInMain, renamedYetFoundIdentifierCount);
ClassSubject aClass = inspector.clazz("adaptclassstrings.A");
MethodSubject bar = aClass.method("void", "bar", ImmutableList.of());
@@ -163,11 +155,11 @@
FoundMethodSubject foundBar = (FoundMethodSubject) bar;
verifyPresenceOfConstString(foundBar);
renamedYetFoundIdentifierCount = countRenamedClassIdentifier(inspector, foundBar);
- assertEquals(1, renamedYetFoundIdentifierCount);
+ assertEquals(countInABar, renamedYetFoundIdentifierCount);
renamedYetFoundIdentifierCount =
countRenamedClassIdentifier(inspector, aClass.getDexClass().staticFields());
- assertEquals(1, renamedYetFoundIdentifierCount);
+ assertEquals(countInAFields, renamedYetFoundIdentifierCount);
}
private static void test_atomicfieldupdater(CodeInspector inspector) {