Merge "Add a test for stale method def in outliner."
diff --git a/src/main/java/com/android/tools/r8/ArchiveProgramResourceProvider.java b/src/main/java/com/android/tools/r8/ArchiveProgramResourceProvider.java
index 8cafe4d..4eead29 100644
--- a/src/main/java/com/android/tools/r8/ArchiveProgramResourceProvider.java
+++ b/src/main/java/com/android/tools/r8/ArchiveProgramResourceProvider.java
@@ -136,23 +136,4 @@
throw new ResourceException(origin, e);
}
}
-
- @Override
- public DataResourceProvider getDataResourceProvider() {
- return visitor -> {
- try {
- readArchive(
- (entry, stream) -> {
- String name = entry.getEntryName();
- if (!ZipUtils.isClassFile(name) && !ZipUtils.isDexFile(name)) {
- visitor.visit(
- DataEntryResource.fromBytes(
- ByteStreams.toByteArray(stream), entry.getEntryName(), entry));
- }
- });
- } catch (IOException e) {
- throw new ResourceException(origin, e);
- }
- };
- }
}
diff --git a/src/main/java/com/android/tools/r8/utils/AndroidApp.java b/src/main/java/com/android/tools/r8/utils/AndroidApp.java
index ed1b960..4dff93c 100644
--- a/src/main/java/com/android/tools/r8/utils/AndroidApp.java
+++ b/src/main/java/com/android/tools/r8/utils/AndroidApp.java
@@ -587,9 +587,7 @@
} else if (isClassFile(file)) {
addProgramResources(ProgramResource.fromFile(Kind.CF, file));
} else if (isArchive(file)) {
- ArchiveResourceProvider archiveResourceProvider = new ArchiveResourceProvider(
- FilteredClassPath.unfiltered(file), ignoreDexInArchive);
- addProgramResourceProvider(archiveResourceProvider);
+ addProgramResourceProvider(ArchiveResourceProvider.fromArchive(file, ignoreDexInArchive));
} else {
throw new CompilationError("Unsupported source file type", new PathOrigin(file));
}
diff --git a/src/main/java/com/android/tools/r8/utils/ArchiveResourceProvider.java b/src/main/java/com/android/tools/r8/utils/ArchiveResourceProvider.java
index a611105..e92d0a2 100644
--- a/src/main/java/com/android/tools/r8/utils/ArchiveResourceProvider.java
+++ b/src/main/java/com/android/tools/r8/utils/ArchiveResourceProvider.java
@@ -21,6 +21,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -36,6 +37,10 @@
private final FilteredClassPath archive;
private final boolean ignoreDexInArchive;
+ public static ArchiveResourceProvider fromArchive(Path archive, boolean ignoreDexInArchive) {
+ return new ArchiveResourceProvider(FilteredClassPath.unfiltered(archive), ignoreDexInArchive);
+ }
+
ArchiveResourceProvider(FilteredClassPath archive, boolean ignoreDexInArchive) {
assert isArchive(archive.getPath());
origin = new PathOrigin(archive.getPath());
diff --git a/src/test/java/com/android/tools/r8/TestBase.java b/src/test/java/com/android/tools/r8/TestBase.java
index 95e0fd1..738f29c 100644
--- a/src/test/java/com/android/tools/r8/TestBase.java
+++ b/src/test/java/com/android/tools/r8/TestBase.java
@@ -234,19 +234,25 @@
public static List<DataEntryResource> getDataResources(AndroidApp app) throws ResourceException {
List<DataEntryResource> dataResources = new ArrayList<>();
for (ProgramResourceProvider programResourceProvider : app.getProgramResourceProviders()) {
- DataResourceProvider dataResourceProvider = programResourceProvider.getDataResourceProvider();
- if (dataResourceProvider != null) {
- dataResourceProvider.accept(
- new Visitor() {
- @Override
- public void visit(DataDirectoryResource directory) {}
+ dataResources.addAll(getDataResources(programResourceProvider.getDataResourceProvider()));
+ }
+ return dataResources;
+ }
- @Override
- public void visit(DataEntryResource file) {
- dataResources.add(file);
- }
- });
- }
+ public static List<DataEntryResource> getDataResources(DataResourceProvider dataResourceProvider)
+ throws ResourceException {
+ List<DataEntryResource> dataResources = new ArrayList<>();
+ if (dataResourceProvider != null) {
+ dataResourceProvider.accept(
+ new Visitor() {
+ @Override
+ public void visit(DataDirectoryResource directory) {}
+
+ @Override
+ public void visit(DataEntryResource file) {
+ dataResources.add(file);
+ }
+ });
}
return dataResources;
}
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 92e9067..74148c7 100644
--- a/src/test/java/com/android/tools/r8/naming/AdaptResourceFileContentsTest.java
+++ b/src/test/java/com/android/tools/r8/naming/AdaptResourceFileContentsTest.java
@@ -14,6 +14,7 @@
import com.android.tools.r8.DataDirectoryResource;
import com.android.tools.r8.DataEntryResource;
import com.android.tools.r8.DataResourceConsumer;
+import com.android.tools.r8.DataResourceProvider.Visitor;
import com.android.tools.r8.DiagnosticsHandler;
import com.android.tools.r8.R8Command;
import com.android.tools.r8.ToolHelper;
@@ -21,16 +22,21 @@
import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
import com.android.tools.r8.utils.AndroidApp;
+import com.android.tools.r8.utils.ArchiveResourceProvider;
import com.android.tools.r8.utils.FileUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
import com.google.common.io.ByteStreams;
+import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
+import java.nio.file.Path;
import java.util.Arrays;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.stream.Collectors;
import org.junit.Test;
@@ -169,46 +175,61 @@
@Test
public void testProguardBehavior() throws Exception {
- AndroidApp result =
- runProguard6Raw(
- ImmutableList.of(
- AdaptResourceFileContentsTestClass.class,
- AdaptResourceFileContentsTestClass.A.class,
- AdaptResourceFileContentsTestClass.B.class),
- getProguardConfig(true, null),
- null,
- getDataResources()
- .stream()
- .filter(x -> !x.getName().toLowerCase().endsWith(FileUtils.CLASS_EXTENSION))
- .collect(Collectors.toList()));
+ Path proguardedJar =
+ File.createTempFile("proguarded", FileUtils.JAR_EXTENSION, temp.getRoot()).toPath();
+ runProguard6Raw(
+ proguardedJar,
+ ImmutableList.of(
+ AdaptResourceFileContentsTestClass.class,
+ AdaptResourceFileContentsTestClass.A.class,
+ AdaptResourceFileContentsTestClass.B.class),
+ getProguardConfig(true, null),
+ null,
+ getDataResources()
+ .stream()
+ .filter(x -> !x.getName().toLowerCase().endsWith(FileUtils.CLASS_EXTENSION))
+ .collect(Collectors.toList()));
- List<DataEntryResource> dataResources = getDataResources(result);
- assertEquals(4, dataResources.size());
+ // Visit each of the resources in the jar and check that their contents are as expected.
+ Set<String> filenames = new HashSet<>();
+ ArchiveResourceProvider.fromArchive(proguardedJar, true)
+ .accept(
+ new Visitor() {
+ @Override
+ public void visit(DataDirectoryResource directory) {}
- assertTrue(
- dataResources.stream().anyMatch(x -> x.getName().endsWith("resource-all-changed.md")));
- assertTrue(
- dataResources.stream().anyMatch(x -> x.getName().endsWith("resource-all-changed.txt")));
- assertTrue(
- dataResources.stream().anyMatch(x -> x.getName().endsWith("resource-all-present.txt")));
- assertTrue(
- dataResources.stream().anyMatch(x -> x.getName().endsWith("resource-all-unchanged.txt")));
+ @Override
+ public void visit(DataEntryResource file) {
+ try {
+ byte[] bytes = ByteStreams.toByteArray(file.getByteStream());
+ List<String> lines =
+ Arrays.asList(
+ new String(bytes, Charset.defaultCharset())
+ .split(System.lineSeparator()));
+ if (file.getName().endsWith("resource-all-changed.md")) {
+ checkAllAreChanged(lines, originalAllChangedResource);
+ } else if (file.getName().endsWith("resource-all-changed.txt")) {
+ checkAllAreChanged(lines, originalAllChangedResource);
+ } else if (file.getName().endsWith("resource-all-present.txt")) {
+ checkAllArePresent(lines, new CodeInspector(readJar(proguardedJar)));
+ } else if (file.getName().endsWith("resource-all-unchanged.txt")) {
+ checkAllAreUnchanged(lines, originalAllUnchangedResource);
+ }
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
- for (DataEntryResource dataResource : dataResources) {
- byte[] bytes = ByteStreams.toByteArray(dataResource.getByteStream());
- List<String> lines =
- Arrays.asList(new String(bytes, Charset.defaultCharset()).split(System.lineSeparator()));
+ // Record that the jar contains a resource with this name.
+ filenames.add(file.getName());
+ }
+ });
- if (dataResource.getName().endsWith("resource-all-changed.md")) {
- checkAllAreChanged(lines, originalAllChangedResource);
- } else if (dataResource.getName().endsWith("resource-all-changed.txt")) {
- checkAllAreChanged(lines, originalAllChangedResource);
- } else if (dataResource.getName().endsWith("resource-all-present.txt")) {
- checkAllArePresent(lines, new CodeInspector(result));
- } else if (dataResource.getName().endsWith("resource-all-unchanged.txt")) {
- checkAllAreUnchanged(lines, originalAllUnchangedResource);
- }
- }
+ // Check that the jar contains the four expected resources, and nothing else.
+ assertEquals(4, filenames.size());
+ assertTrue(filenames.stream().anyMatch(x -> x.endsWith("resource-all-changed.md")));
+ assertTrue(filenames.stream().anyMatch(x -> x.endsWith("resource-all-changed.txt")));
+ assertTrue(filenames.stream().anyMatch(x -> x.endsWith("resource-all-present.txt")));
+ assertTrue(filenames.stream().anyMatch(x -> x.endsWith("resource-all-unchanged.txt")));
}
@Test
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 fd38d36..3f586e6 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
@@ -57,7 +57,7 @@
"-dontwarn java.lang.invoke.*"
);
- AndroidApp app = runShrinkerRaw(shrinker, CLASSES, config);
+ AndroidApp app = runShrinker(shrinker, CLASSES, config);
assertEquals("123451234567\nABC\n", runOnArt(app, mainClass.getCanonicalName()));
CodeInspector codeInspector =
@@ -147,7 +147,7 @@
"-dontwarn java.lang.invoke.*"
);
- AndroidApp app = runShrinkerRaw(shrinker, CLASSES, config);
+ AndroidApp app = runShrinker(shrinker, CLASSES, config);
assertEquals("123451234567\nABC\n", runOnArt(app, mainClass.getCanonicalName()));
CodeInspector codeInspector =
@@ -244,7 +244,7 @@
));
}
- AndroidApp app = runShrinkerRaw(shrinker, CLASSES, config);
+ AndroidApp app = runShrinker(shrinker, CLASSES, config);
assertEquals("123451234567\nABC\n", runOnArt(app, mainClass.getCanonicalName()));
CodeInspector codeInspector =
diff --git a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatabilityTestBase.java b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatabilityTestBase.java
index ac81d89..770bdbd 100644
--- a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatabilityTestBase.java
+++ b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatabilityTestBase.java
@@ -44,44 +44,21 @@
return shrinker == Shrinker.R8_COMPAT || shrinker == Shrinker.R8;
}
- protected AndroidApp runShrinkerRaw(
+ protected AndroidApp runShrinker(
Shrinker mode, List<Class> programClasses, Iterable<String> proguadConfigs) throws Exception {
- return runShrinkerRaw(
- mode, programClasses, String.join(System.lineSeparator(), proguadConfigs));
- }
-
- protected AndroidApp runShrinkerRaw(
- Shrinker mode, List<Class> programClasses, String proguardConfig) throws Exception {
- proguardMap = File.createTempFile("proguard", ".map", temp.getRoot()).toPath();
- switch (mode) {
- case PROGUARD5:
- return runProguard5Raw(programClasses, proguardConfig, proguardMap);
- case PROGUARD6:
- return runProguard6Raw(programClasses, proguardConfig, proguardMap);
- case PROGUARD6_THEN_D8:
- return runProguard6AndD8Raw(programClasses, proguardConfig, proguardMap);
- case R8_COMPAT:
- return runR8CompatRaw(programClasses, proguardConfig);
- case R8:
- return runR8Raw(programClasses, proguardConfig);
- }
- throw new IllegalArgumentException("Unknown shrinker: " + mode);
- }
-
- protected CodeInspector runShrinker(
- Shrinker mode, List<Class> programClasses, List<String> proguadConfigs) throws Exception {
return runShrinker(mode, programClasses, String.join(System.lineSeparator(), proguadConfigs));
}
- protected CodeInspector runShrinker(
- Shrinker mode, List<Class> programClasses, String proguardConfig) throws Exception {
+ protected AndroidApp runShrinker(Shrinker mode, List<Class> programClasses, String proguardConfig)
+ throws Exception {
+ proguardMap = File.createTempFile("proguard", ".map", temp.getRoot()).toPath();
switch (mode) {
case PROGUARD5:
- return runProguard5(programClasses, proguardConfig);
+ return runProguard5(programClasses, proguardConfig, proguardMap);
case PROGUARD6:
- return runProguard6(programClasses, proguardConfig);
+ return runProguard6(programClasses, proguardConfig, proguardMap);
case PROGUARD6_THEN_D8:
- return runProguard6AndD8(programClasses, proguardConfig);
+ return runProguard6AndD8(programClasses, proguardConfig, proguardMap);
case R8_COMPAT:
return runR8Compat(programClasses, proguardConfig);
case R8:
@@ -90,12 +67,34 @@
throw new IllegalArgumentException("Unknown shrinker: " + mode);
}
- protected AndroidApp runR8Raw(List<Class> programClasses, String proguardConfig)
- throws Exception {
- return runR8Raw(programClasses, proguardConfig, null);
+ protected CodeInspector inspectAfterShrinking(
+ Shrinker mode, List<Class> programClasses, List<String> proguadConfigs) throws Exception {
+ return inspectAfterShrinking(
+ mode, programClasses, String.join(System.lineSeparator(), proguadConfigs));
}
- protected AndroidApp runR8Raw(
+ protected CodeInspector inspectAfterShrinking(
+ Shrinker mode, List<Class> programClasses, String proguardConfig) throws Exception {
+ switch (mode) {
+ case PROGUARD5:
+ return inspectProguard5Result(programClasses, proguardConfig);
+ case PROGUARD6:
+ return inspectProguard6Result(programClasses, proguardConfig);
+ case PROGUARD6_THEN_D8:
+ return inspectProguard6AndD8Result(programClasses, proguardConfig);
+ case R8_COMPAT:
+ return inspectR8CompatResult(programClasses, proguardConfig);
+ case R8:
+ return inspectR8Result(programClasses, proguardConfig);
+ }
+ 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, Consumer<InternalOptions> configure)
throws Exception {
AndroidApp app = readClassesAndAndriodJar(programClasses);
@@ -105,12 +104,13 @@
return ToolHelper.runR8(builder.build(), configure);
}
- protected CodeInspector runR8(List<Class> programClasses, String proguardConfig) throws Exception {
- return new CodeInspector(runR8Raw(programClasses, proguardConfig));
+ protected CodeInspector inspectR8Result(List<Class> programClasses, String proguardConfig)
+ throws Exception {
+ return new CodeInspector(runR8(programClasses, proguardConfig));
}
- protected AndroidApp runR8CompatRaw(
- List<Class> programClasses, String proguardConfig) throws Exception {
+ protected AndroidApp runR8Compat(List<Class> programClasses, String proguardConfig)
+ throws Exception {
CompatProguardCommandBuilder builder = new CompatProguardCommandBuilder(true);
ToolHelper.allowTestProguardOptions(builder);
builder.addProguardConfiguration(ImmutableList.of(proguardConfig), Origin.unknown());
@@ -121,17 +121,12 @@
return ToolHelper.runR8(builder.build());
}
- protected CodeInspector runR8Compat(
- List<Class> programClasses, String proguardConfig) throws Exception {
- return new CodeInspector(runR8CompatRaw(programClasses, proguardConfig));
- }
-
- protected CodeInspector runR8CompatKeepingMain(Class mainClass, List<Class> programClasses)
+ protected CodeInspector inspectR8CompatResult(List<Class> programClasses, String proguardConfig)
throws Exception {
- return runR8Compat(programClasses, keepMainProguardConfiguration(mainClass));
+ return new CodeInspector(runR8Compat(programClasses, proguardConfig));
}
- protected AndroidApp runProguard5Raw(
+ protected AndroidApp runProguard5(
List<Class> programClasses, String proguardConfig, Path proguardMap) throws Exception {
Path proguardedJar =
File.createTempFile("proguarded", FileUtils.JAR_EXTENSION, temp.getRoot()).toPath();
@@ -149,19 +144,41 @@
return readJar(proguardedJar);
}
- protected CodeInspector runProguard5(
- List<Class> programClasses, String proguardConfig) throws Exception {
+ protected CodeInspector inspectProguard5Result(List<Class> programClasses, String proguardConfig)
+ throws Exception {
proguardMap = File.createTempFile("proguard", ".map", temp.getRoot()).toPath();
return new CodeInspector(
- runProguard5Raw(programClasses, proguardConfig, proguardMap), proguardMap);
+ runProguard5(programClasses, proguardConfig, proguardMap), proguardMap);
}
- protected AndroidApp runProguard6Raw(
+ protected ProcessResult runProguard6Raw(
+ Path destination,
+ List<Class> programClasses,
+ String proguardConfig,
+ Path proguardMap,
+ List<DataEntryResource> dataResources)
+ throws Exception {
+ Path proguardConfigFile = File.createTempFile("proguard", ".config", temp.getRoot()).toPath();
+ FileUtils.writeTextFile(proguardConfigFile, proguardConfig);
+ ProcessResult result =
+ ToolHelper.runProguard6Raw(
+ jarTestClasses(programClasses, dataResources),
+ destination,
+ ToolHelper.getAndroidJar(AndroidApiLevel.N),
+ proguardConfigFile,
+ proguardMap);
+ if (result.exitCode != 0) {
+ fail("Proguard failed, exit code " + result.exitCode + ", stderr:\n" + result.stderr);
+ }
+ return result;
+ }
+
+ protected AndroidApp runProguard6(
List<Class> programClasses, String proguardConfig, Path proguardMap) throws Exception {
- return runProguard6Raw(programClasses, proguardConfig, proguardMap, null);
+ return runProguard6(programClasses, proguardConfig, proguardMap, null);
}
- protected AndroidApp runProguard6Raw(
+ protected AndroidApp runProguard6(
List<Class> programClasses,
String proguardConfig,
Path proguardMap,
@@ -169,29 +186,18 @@
throws Exception {
Path proguardedJar =
File.createTempFile("proguarded", FileUtils.JAR_EXTENSION, temp.getRoot()).toPath();
- Path proguardConfigFile = File.createTempFile("proguard", ".config", temp.getRoot()).toPath();
- FileUtils.writeTextFile(proguardConfigFile, proguardConfig);
- ProcessResult result =
- ToolHelper.runProguard6Raw(
- jarTestClasses(programClasses, dataResources),
- proguardedJar,
- ToolHelper.getAndroidJar(AndroidApiLevel.N),
- proguardConfigFile,
- proguardMap);
- if (result.exitCode != 0) {
- fail("Proguard failed, exit code " + result.exitCode + ", stderr:\n" + result.stderr);
- }
+ runProguard6Raw(proguardedJar, programClasses, proguardConfig, proguardMap, dataResources);
return readJar(proguardedJar);
}
- protected CodeInspector runProguard6(
- List<Class> programClasses, String proguardConfig) throws Exception {
+ protected CodeInspector inspectProguard6Result(List<Class> programClasses, String proguardConfig)
+ throws Exception {
proguardMap = File.createTempFile("proguard", ".map", temp.getRoot()).toPath();
return new CodeInspector(
- runProguard6Raw(programClasses, proguardConfig, proguardMap), proguardMap);
+ runProguard6(programClasses, proguardConfig, proguardMap), proguardMap);
}
- protected AndroidApp runProguard6AndD8Raw(
+ protected AndroidApp runProguard6AndD8(
List<Class> programClasses, String proguardConfig, Path proguardMap) throws Exception {
Path proguardedJar =
File.createTempFile("proguarded", FileUtils.JAR_EXTENSION, temp.getRoot()).toPath();
@@ -209,16 +215,11 @@
return ToolHelper.runD8(readJar(proguardedJar));
}
- protected CodeInspector runProguard6AndD8(
+ protected CodeInspector inspectProguard6AndD8Result(
List<Class> programClasses, String proguardConfig) throws Exception {
proguardMap = File.createTempFile("proguard", ".map", temp.getRoot()).toPath();
return new CodeInspector(
- runProguard6AndD8Raw(programClasses, proguardConfig, proguardMap), proguardMap);
- }
-
- protected CodeInspector runProguardKeepingMain(Class mainClass, List<Class> programClasses)
- throws Exception {
- return runProguard6AndD8(programClasses, keepMainProguardConfiguration(mainClass));
+ runProguard6AndD8(programClasses, proguardConfig, proguardMap), proguardMap);
}
protected void verifyClassesPresent(
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 aed1423..1464cb1 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
@@ -131,13 +131,13 @@
Class mainClass, List<Class> programClasses, String proguardConfiguration,
TriConsumer<Class, List<Class>, CodeInspector> r8Checker,
TriConsumer<Class, List<Class>, CodeInspector> proguardChecker) throws Exception {
- CodeInspector inspector = runR8Compat(programClasses, proguardConfiguration);
+ CodeInspector inspector = inspectR8CompatResult(programClasses, proguardConfiguration);
r8Checker.accept(mainClass, programClasses, inspector);
if (isRunProguard()) {
- inspector = runProguard6(programClasses, proguardConfiguration);
+ inspector = inspectProguard6Result(programClasses, proguardConfiguration);
proguardChecker.accept(mainClass, programClasses, inspector);
- inspector = runProguard6AndD8(programClasses, proguardConfiguration);
+ inspector = inspectProguard6AndD8Result(programClasses, proguardConfiguration);
proguardChecker.accept(mainClass, programClasses, inspector);
}
}
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 513a01a..0f1c519 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
@@ -59,7 +59,7 @@
" public <methods>;",
"}"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
ClassSubject classSubject = codeInspector.clazz(ClassForIf.class);
assertThat(classSubject, isPresent());
MethodSubject methodSubject = classSubject.method(publicMethod);
@@ -98,7 +98,7 @@
" !public <methods>;",
"}"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
ClassSubject classSubject = codeInspector.clazz(ClassForIf.class);
assertThat(classSubject, isPresent());
MethodSubject methodSubject = classSubject.method(publicMethod);
@@ -138,7 +138,7 @@
" public <methods>;",
"}"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
ClassSubject classSubject = codeInspector.clazz(ClassForIf.class);
assertThat(classSubject, isPresent());
MethodSubject methodSubject = classSubject.method(publicMethod);
@@ -170,7 +170,7 @@
" !public <methods>;",
"}"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
ClassSubject classSubject = codeInspector.clazz(ClassForIf.class);
assertThat(classSubject, isPresent());
MethodSubject methodSubject = classSubject.method(publicMethod);
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 146c3cd..972b178 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
@@ -50,7 +50,7 @@
"-keep class **.UnusedAnnotation*"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
verifyClassesAbsent(codeInspector,
UnusedAnnotation.class, UnusedAnnotationDependent.class);
verifyClassesPresent(codeInspector,
@@ -76,7 +76,7 @@
"-keep class <1>.Unused<2>*"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
verifyClassesAbsent(codeInspector,
UnusedAnnotation.class, UnusedAnnotationDependent.class);
verifyClassesPresent(codeInspector,
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 167c2f4..cbafcf0 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
@@ -60,21 +60,21 @@
}
@Override
- protected CodeInspector runR8(
- List<Class> programClasses, String proguardConfig) throws Exception {
- return super.runR8(programClasses, adaptConfiguration(proguardConfig));
+ protected CodeInspector inspectR8Result(List<Class> programClasses, String proguardConfig)
+ throws Exception {
+ return super.inspectR8Result(programClasses, adaptConfiguration(proguardConfig));
}
@Override
- protected CodeInspector runProguard5(
- List<Class> programClasses, String proguardConfig) throws Exception {
- return super.runProguard5(programClasses, adaptConfiguration(proguardConfig));
+ protected CodeInspector inspectProguard5Result(List<Class> programClasses, String proguardConfig)
+ throws Exception {
+ return super.inspectProguard5Result(programClasses, adaptConfiguration(proguardConfig));
}
@Override
- protected CodeInspector runProguard6(
- List<Class> programClasses, String proguardConfig) throws Exception {
- return super.runProguard6(programClasses, adaptConfiguration(proguardConfig));
+ protected CodeInspector inspectProguard6Result(List<Class> programClasses, String proguardConfig)
+ throws Exception {
+ return super.inspectProguard6Result(programClasses, adaptConfiguration(proguardConfig));
}
@Test
@@ -86,7 +86,7 @@
"-keep,allowobfuscation class **.Dependent"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
if (!keepPrecondition) {
// TODO(b/73708139): Proguard6 kept Dependent (w/o any members), which is not necessary.
if (shrinker == Shrinker.PROGUARD6) {
@@ -123,7 +123,7 @@
"-keep,allowobfuscation class <1>.<2>"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
if (!keepPrecondition) {
// TODO(b/73708139): Proguard6 kept Dependent (w/o any members), which is not necessary.
if (shrinker == Shrinker.PROGUARD6) {
@@ -160,7 +160,7 @@
"}"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
if (!keepPrecondition) {
assertEquals(1, codeInspector.allClasses().size());
return;
@@ -196,7 +196,7 @@
"-keep,allowobfuscation class **.*User"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
if (!keepPrecondition) {
// TODO(b/73708139): Proguard6 kept DependentUser (w/o any members), which is not necessary.
if (shrinker == Shrinker.PROGUARD6) {
@@ -236,7 +236,7 @@
"-keep,allowobfuscation class <1>.<2>User"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
if (!keepPrecondition) {
// TODO(b/73708139): Proguard6 kept DependentUser (w/o any members), which is not necessary.
if (shrinker == Shrinker.PROGUARD6) {
@@ -274,7 +274,7 @@
"-keepnames class **.Dependent"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
ClassSubject clazz = codeInspector.clazz(Dependent.class);
// Only class name is not renamed, if triggered.
@@ -299,7 +299,7 @@
"}"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
ClassSubject clazz = codeInspector.clazz(Dependent.class);
// Class name is not renamed, if triggered.
@@ -325,7 +325,7 @@
"}"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
ClassSubject clazz = codeInspector.clazz(Dependent.class);
assertThat(clazz, isRenamed());
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 d199cd4..688c532 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
@@ -42,15 +42,15 @@
}
@Override
- protected CodeInspector runR8(
- List<Class> programClasses, String proguardConfig) throws Exception {
- return super.runR8(programClasses, adaptConfiguration(proguardConfig));
+ protected CodeInspector inspectR8Result(List<Class> programClasses, String proguardConfig)
+ throws Exception {
+ return super.inspectR8Result(programClasses, adaptConfiguration(proguardConfig));
}
@Override
- protected CodeInspector runProguard6(
- List<Class> programClasses, String proguardConfig) throws Exception {
- return super.runProguard6(programClasses, adaptConfiguration(proguardConfig));
+ protected CodeInspector inspectProguard6Result(List<Class> programClasses, String proguardConfig)
+ throws Exception {
+ return super.inspectProguard6Result(programClasses, adaptConfiguration(proguardConfig));
}
@Test
@@ -77,7 +77,7 @@
"-keep class **.D"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
verifyClassesAbsent(codeInspector,
R1.class, R2.class, D.class, D2.class);
verifyClassesPresent(codeInspector,
@@ -96,7 +96,7 @@
"-keep class **.D<2>"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
verifyClassesAbsent(codeInspector,
R1.class, R2.class, D.class, D2.class);
verifyClassesPresent(codeInspector,
@@ -119,7 +119,7 @@
"-keep class **.D2"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
verifyClassesAbsent(codeInspector,
R.class, D.class, R1.class, D1.class);
verifyClassesPresent(codeInspector,
@@ -138,7 +138,7 @@
"-keep class **.D<2>"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
verifyClassesAbsent(codeInspector,
R.class, D.class, R1.class, D1.class);
verifyClassesPresent(codeInspector,
@@ -158,7 +158,7 @@
"-keep class **$*D"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
verifyClassesAbsent(codeInspector,
R.class, D.class, R1.class, D1.class, R2.class, D2.class);
verifyClassesPresent(codeInspector,
@@ -178,7 +178,7 @@
"-keep class <1>$<2>D"
);
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
verifyClassesAbsent(codeInspector,
R.class, D.class, R1.class, D1.class, R2.class, D2.class);
verifyClassesPresent(codeInspector,
@@ -202,7 +202,7 @@
"}",
"-keep class **.D2");
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
verifyClassesAbsent(codeInspector, D2.class);
verifyClassesPresent(codeInspector,
I.class, Impl.class, D1.class);
@@ -225,7 +225,7 @@
"}",
"-keep class <2>.D2");
- CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+ CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
verifyClassesAbsent(codeInspector, D2.class);
verifyClassesPresent(codeInspector,
I.class, Impl.class, D1.class);
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 7391986..7c7571f 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
@@ -90,6 +90,6 @@
"-dontobfuscate"
);
- check(runShrinkerRaw(shrinker, CLASSES, config));
+ check(runShrinker(shrinker, CLASSES, config));
}
}
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 cc574f3..617cb83 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
@@ -84,9 +84,8 @@
}
@Override
- protected AndroidApp runR8Raw(
- List<Class> programClasses, String proguardConfig) throws Exception {
- return super.runR8Raw(programClasses, proguardConfig, this::configure);
+ protected AndroidApp runR8(List<Class> programClasses, String proguardConfig) throws Exception {
+ return super.runR8(programClasses, proguardConfig, this::configure);
}
private void check(AndroidApp app) throws Exception {
@@ -119,7 +118,7 @@
"-dontobfuscate"
);
- check(runShrinkerRaw(shrinker, CLASSES, config));
+ check(runShrinker(shrinker, CLASSES, config));
}
@Test
@@ -135,7 +134,7 @@
"-dontobfuscate"
);
- check(runShrinkerRaw(shrinker, CLASSES, config));
+ check(runShrinker(shrinker, CLASSES, config));
}
@Test
@@ -151,6 +150,6 @@
"-dontobfuscate"
);
- check(runShrinkerRaw(shrinker, CLASSES, config));
+ check(runShrinker(shrinker, CLASSES, config));
}
}
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 97cad3c..61f4ce5 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
@@ -77,7 +77,7 @@
check(inspector, mainClass, staticClass, forceProguardCompatibility, false);
if (isRunProguard()) {
- inspector = runProguard6(ImmutableList.of(mainClass, staticClass), proguardConfig);
+ inspector = inspectProguard6Result(ImmutableList.of(mainClass, staticClass), proguardConfig);
check(inspector, mainClass, staticClass, true, true);
}
}