Revert "More desugared library tests"
This reverts commit e05ccee3e8b19dc0ce2e7055f9101af74cd5fe89.
Reason for revert: Breaking bots
Change-Id: I5048dc7eb185d85b3f30fbd428d1a3355acef329
diff --git a/src/test/java/com/android/tools/r8/D8TestBuilder.java b/src/test/java/com/android/tools/r8/D8TestBuilder.java
index 7b53857..e3db7cc 100644
--- a/src/test/java/com/android/tools/r8/D8TestBuilder.java
+++ b/src/test/java/com/android/tools/r8/D8TestBuilder.java
@@ -55,7 +55,7 @@
Builder builder, Consumer<InternalOptions> optionsConsumer, Supplier<AndroidApp> app)
throws CompilationFailedException {
ToolHelper.runD8(builder, optionsConsumer);
- return new D8TestCompileResult(getState(), app.get(), getOutputMode(), keepRulesHolder);
+ return new D8TestCompileResult(getState(), app.get(), getOutputMode());
}
public D8TestBuilder setIntermediate(boolean intermediate) {
diff --git a/src/test/java/com/android/tools/r8/D8TestCompileResult.java b/src/test/java/com/android/tools/r8/D8TestCompileResult.java
index 02ce637..e4ea07c 100644
--- a/src/test/java/com/android/tools/r8/D8TestCompileResult.java
+++ b/src/test/java/com/android/tools/r8/D8TestCompileResult.java
@@ -6,13 +6,10 @@
import com.android.tools.r8.TestBase.Backend;
import com.android.tools.r8.ToolHelper.ProcessResult;
import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.Box;
public class D8TestCompileResult extends TestCompileResult<D8TestCompileResult, D8TestRunResult> {
-
- D8TestCompileResult(
- TestState state, AndroidApp app, OutputMode outputMode, Box<String> keepRulesHolder) {
- super(state, app, outputMode, keepRulesHolder);
+ D8TestCompileResult(TestState state, AndroidApp app, OutputMode outputMode) {
+ super(state, app, outputMode);
assert ToolHelper.verifyValidOutputMode(Backend.DEX, outputMode);
}
diff --git a/src/test/java/com/android/tools/r8/R8TestBuilder.java b/src/test/java/com/android/tools/r8/R8TestBuilder.java
index 5ab864b..d6d3f5d 100644
--- a/src/test/java/com/android/tools/r8/R8TestBuilder.java
+++ b/src/test/java/com/android/tools/r8/R8TestBuilder.java
@@ -98,8 +98,7 @@
box.proguardConfiguration,
box.syntheticProguardRules,
proguardMapBuilder.toString(),
- graphConsumer,
- null);
+ graphConsumer);
}
public Builder getBuilder() {
diff --git a/src/test/java/com/android/tools/r8/R8TestCompileResult.java b/src/test/java/com/android/tools/r8/R8TestCompileResult.java
index 325046b..8e63f34 100644
--- a/src/test/java/com/android/tools/r8/R8TestCompileResult.java
+++ b/src/test/java/com/android/tools/r8/R8TestCompileResult.java
@@ -8,7 +8,6 @@
import com.android.tools.r8.shaking.ProguardConfiguration;
import com.android.tools.r8.shaking.ProguardConfigurationRule;
import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.Box;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.graphinspector.GraphInspector;
import java.io.IOException;
@@ -30,9 +29,8 @@
ProguardConfiguration proguardConfiguration,
List<ProguardConfigurationRule> syntheticProguardRules,
String proguardMap,
- CollectingGraphConsumer graphConsumer,
- Box<String> keepRulesHolder) {
- super(state, app, outputMode, keepRulesHolder);
+ CollectingGraphConsumer graphConsumer) {
+ super(state, app, outputMode);
this.proguardConfiguration = proguardConfiguration;
this.syntheticProguardRules = syntheticProguardRules;
this.proguardMap = proguardMap;
diff --git a/src/test/java/com/android/tools/r8/TestCompileResult.java b/src/test/java/com/android/tools/r8/TestCompileResult.java
index eb2ccc4..31cdf50 100644
--- a/src/test/java/com/android/tools/r8/TestCompileResult.java
+++ b/src/test/java/com/android/tools/r8/TestCompileResult.java
@@ -18,7 +18,6 @@
import com.android.tools.r8.errors.Unreachable;
import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.Box;
import com.android.tools.r8.utils.DescriptorUtils;
import com.android.tools.r8.utils.TriFunction;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
@@ -48,18 +47,11 @@
final List<String> vmArguments = new ArrayList<>();
private boolean withArt6Plus64BitsLib = false;
private boolean withArtFrameworks = true;
- private final String desugaredLibraryKeepRules;
TestCompileResult(TestState state, AndroidApp app, OutputMode outputMode) {
- this(state, app, outputMode, null);
- }
-
- TestCompileResult(
- TestState state, AndroidApp app, OutputMode outputMode, Box<String> keepRulesHolder) {
super(state);
this.app = app;
this.outputMode = outputMode;
- this.desugaredLibraryKeepRules = keepRulesHolder == null ? null : keepRulesHolder.get();
}
public final CR withArt6Plus64BitsLib() {
@@ -72,10 +64,6 @@
return self();
}
- public String getDesugaredLibraryKeepRules() {
- return desugaredLibraryKeepRules;
- }
-
public final Backend getBackend() {
if (outputMode == OutputMode.ClassFile) {
return Backend.CF;
@@ -188,9 +176,10 @@
public CR addDesugaredCoreLibraryRunClassPath(
TriFunction<AndroidApiLevel, String, Boolean, Path> classPathSupplier,
AndroidApiLevel minAPILevel,
+ String keepRules,
boolean shrink) {
if (minAPILevel.getLevel() < AndroidApiLevel.O.getLevel()) {
- addRunClasspathFiles(classPathSupplier.apply(minAPILevel, desugaredLibraryKeepRules, shrink));
+ addRunClasspathFiles(classPathSupplier.apply(minAPILevel, keepRules, shrink));
}
return self();
}
diff --git a/src/test/java/com/android/tools/r8/TestCompilerBuilder.java b/src/test/java/com/android/tools/r8/TestCompilerBuilder.java
index c63c4c7..8498704 100644
--- a/src/test/java/com/android/tools/r8/TestCompilerBuilder.java
+++ b/src/test/java/com/android/tools/r8/TestCompilerBuilder.java
@@ -8,7 +8,6 @@
import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.AndroidAppConsumers;
-import com.android.tools.r8.utils.Box;
import com.android.tools.r8.utils.InternalOptions;
import com.google.common.base.Suppliers;
import java.io.IOException;
@@ -44,7 +43,6 @@
private Consumer<InternalOptions> optionsConsumer = DEFAULT_OPTIONS;
private PrintStream stdout = null;
protected OutputMode outputMode = OutputMode.DexIndexed;
- protected Box<String> keepRulesHolder;
TestCompilerBuilder(TestState state, B builder, Backend backend) {
super(state, builder);
@@ -278,11 +276,6 @@
if (minAPILevel.getLevel() < AndroidApiLevel.O.getLevel()) {
builder.addLibraryFiles(ToolHelper.getAndroidJar(AndroidApiLevel.O));
builder.addSpecialLibraryConfiguration("default");
- keepRulesHolder = new Box<>("");
- this.addOptionsModification(
- options ->
- options.testing.desugaredLibraryKeepRuleConsumer =
- (string, handler) -> this.keepRulesHolder.set(keepRulesHolder.get() + string));
}
return self();
}
diff --git a/src/test/java/com/android/tools/r8/desugar/corelib/CustomCollectionTest.java b/src/test/java/com/android/tools/r8/desugar/corelib/CustomCollectionTest.java
index 678a395..099c560 100644
--- a/src/test/java/com/android/tools/r8/desugar/corelib/CustomCollectionTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/corelib/CustomCollectionTest.java
@@ -48,16 +48,22 @@
@Test
public void testCustomCollectionD8() throws Exception {
+ Box<String> keepRulesHolder = new Box<>("");
D8TestRunResult d8TestRunResult =
testForD8()
.addInnerClasses(CustomCollectionTest.class)
.setMinApi(parameters.getApiLevel())
+ .addOptionsModification(
+ options ->
+ options.testing.desugaredLibraryKeepRuleConsumer =
+ (string, handler) -> keepRulesHolder.set(keepRulesHolder.get() + string))
.enableCoreLibraryDesugaring(parameters.getApiLevel())
.compile()
.inspect(inspector -> this.assertCustomCollectionCallsCorrect(inspector, false))
.addDesugaredCoreLibraryRunClassPath(
this::buildDesugaredLibrary,
parameters.getApiLevel(),
+ keepRulesHolder.get(),
shrinkCoreLibrary)
.run(parameters.getRuntime(), EXECUTOR)
.assertSuccess();
@@ -76,17 +82,23 @@
@Test
public void testCustomCollectionR8() throws Exception {
+ Box<String> keepRulesHolder = new Box<>("");
R8TestRunResult r8TestRunResult =
testForR8(Backend.DEX)
.addInnerClasses(CustomCollectionTest.class)
.setMinApi(parameters.getApiLevel())
.addKeepClassAndMembersRules(Executor.class)
+ .addOptionsModification(
+ options ->
+ options.testing.desugaredLibraryKeepRuleConsumer =
+ (string, handler) -> keepRulesHolder.set(keepRulesHolder.get() + string))
.enableCoreLibraryDesugaring(parameters.getApiLevel())
.compile()
.inspect(inspector -> this.assertCustomCollectionCallsCorrect(inspector, true))
.addDesugaredCoreLibraryRunClassPath(
this::buildDesugaredLibrary,
parameters.getApiLevel(),
+ keepRulesHolder.get(),
shrinkCoreLibrary)
.run(parameters.getRuntime(), EXECUTOR)
.assertSuccess();
diff --git a/src/test/java/com/android/tools/r8/desugar/corelib/JavaTimeTest.java b/src/test/java/com/android/tools/r8/desugar/corelib/JavaTimeTest.java
index b43523c..fb1c722 100644
--- a/src/test/java/com/android/tools/r8/desugar/corelib/JavaTimeTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/corelib/JavaTimeTest.java
@@ -55,15 +55,21 @@
@Test
public void testTimeD8() throws Exception {
+ Box<String> keepRulesHolder = new Box<>("");
testForD8()
.addInnerClasses(JavaTimeTest.class)
.setMinApi(parameters.getApiLevel())
.enableCoreLibraryDesugaring(parameters.getApiLevel())
+ .addOptionsModification(
+ options ->
+ options.testing.desugaredLibraryKeepRuleConsumer =
+ (string, handler) -> keepRulesHolder.set(keepRulesHolder.get() + string))
.compile()
.inspect(this::checkRewrittenInvokes)
.addDesugaredCoreLibraryRunClassPath(
this::buildDesugaredLibrary,
parameters.getApiLevel(),
+ keepRulesHolder.get(),
shrinkCoreLibrary)
.run(parameters.getRuntime(), TestClass.class)
.assertSuccessWithOutput(expectedOutput);
@@ -71,16 +77,22 @@
@Test
public void testTimeR8() throws Exception {
+ Box<String> keepRulesHolder = new Box<>("");
testForR8(parameters.getBackend())
.addInnerClasses(JavaTimeTest.class)
.addKeepMainRule(TestClass.class)
.setMinApi(parameters.getApiLevel())
.enableCoreLibraryDesugaring(parameters.getApiLevel())
+ .addOptionsModification(
+ options ->
+ options.testing.desugaredLibraryKeepRuleConsumer =
+ (string, handler) -> keepRulesHolder.set(keepRulesHolder.get() + string))
.compile()
.inspect(this::checkRewrittenInvokes)
.addDesugaredCoreLibraryRunClassPath(
this::buildDesugaredLibrary,
parameters.getApiLevel(),
+ keepRulesHolder.get(),
shrinkCoreLibrary)
.run(parameters.getRuntime(), TestClass.class)
.assertSuccessWithOutput(expectedOutput);
diff --git a/src/test/java/com/android/tools/r8/desugar/corelib/JavaUtilFunctionTest.java b/src/test/java/com/android/tools/r8/desugar/corelib/JavaUtilFunctionTest.java
index 81c5c07..74a4efa 100644
--- a/src/test/java/com/android/tools/r8/desugar/corelib/JavaUtilFunctionTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/corelib/JavaUtilFunctionTest.java
@@ -8,35 +8,29 @@
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertEquals;
-import com.android.tools.r8.NeverInline;
import com.android.tools.r8.TestParameters;
-import com.android.tools.r8.utils.BooleanUtils;
+import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.ToolHelper;
+import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
-import java.util.List;
import java.util.function.Function;
-import org.junit.Assume;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
public class JavaUtilFunctionTest extends CoreLibDesugarTestBase {
private final TestParameters parameters;
- private final boolean shrinkCoreLibrary;
- private static final String expectedOutput = StringUtils.lines("Hello, world", "Hello, world");
- @Parameters(name = "{1}, shrinkCoreLibrary: {0}")
- public static List<Object[]> data() {
- return buildParameters(
- BooleanUtils.values(), getTestParameters().withDexRuntimes().withAllApiLevels().build());
+ @Parameterized.Parameters(name = "{0}")
+ public static TestParametersCollection data() {
+ return getTestParameters().withDexRuntimes().withAllApiLevels().build();
}
- public JavaUtilFunctionTest(boolean shrinkDesugaredLibrary, TestParameters parameters) {
- this.shrinkCoreLibrary = shrinkDesugaredLibrary;
+ public JavaUtilFunctionTest(TestParameters parameters) {
this.parameters = parameters;
}
@@ -59,42 +53,22 @@
}
@Test
- public void testJavaUtilFunctionD8() throws Exception {
+ public void testJavaUtilFunction() throws Exception {
+ String expectedOutput = StringUtils.lines("Hello, world", "Hello, world");
testForD8()
.addInnerClasses(JavaUtilFunctionTest.class)
+ .addLibraryFiles(ToolHelper.getAndroidJar(AndroidApiLevel.P))
.setMinApi(parameters.getApiLevel())
- .enableCoreLibraryDesugaring(parameters.getApiLevel())
+ .enableCoreLibraryDesugaring()
.compile()
.inspect(this::checkRewrittenArguments)
- .addDesugaredCoreLibraryRunClassPath(
- this::buildDesugaredLibrary, parameters.getApiLevel(), shrinkCoreLibrary)
- .run(parameters.getRuntime(), TestClass.class)
- .assertSuccessWithOutput(expectedOutput);
- }
-
- @Test
- public void testJavaUtilFunctionR8() throws Exception {
- // TODO(b/139398549): Enable test on API 26+.
- Assume.assumeTrue(parameters.getApiLevel().getLevel() < 26);
- testForR8(parameters.getBackend())
- // Following two for checkRewrittenArguments.
- .enableInliningAnnotations()
- .noMinification()
- .addKeepMainRule(TestClass.class)
- .addInnerClasses(JavaUtilFunctionTest.class)
- .setMinApi(parameters.getApiLevel())
- .enableCoreLibraryDesugaring(parameters.getApiLevel())
- .compile()
- .inspect(this::checkRewrittenArguments)
- .addDesugaredCoreLibraryRunClassPath(
- this::buildDesugaredLibrary, parameters.getApiLevel(), shrinkCoreLibrary)
+ .addRunClasspathFiles(buildDesugaredLibrary(parameters.getApiLevel()))
.run(parameters.getRuntime(), TestClass.class)
.assertSuccessWithOutput(expectedOutput);
}
static class TestClass {
- @NeverInline
private static String applyFunction(Function<String, String> f) {
return f.apply("Hello, world");
}
diff --git a/src/test/java/com/android/tools/r8/desugar/corelib/ProgramRewritingTest.java b/src/test/java/com/android/tools/r8/desugar/corelib/ProgramRewritingTest.java
index 0d18a6f..8aeddab 100644
--- a/src/test/java/com/android/tools/r8/desugar/corelib/ProgramRewritingTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/corelib/ProgramRewritingTest.java
@@ -13,15 +13,14 @@
import static org.hamcrest.core.StringContains.containsString;
import static org.junit.Assert.assertFalse;
-import com.android.tools.r8.D8TestCompileResult;
import com.android.tools.r8.D8TestRunResult;
-import com.android.tools.r8.R8TestCompileResult;
import com.android.tools.r8.R8TestRunResult;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.ToolHelper.DexVm;
import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.BooleanUtils;
+import com.android.tools.r8.utils.Box;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -57,25 +56,26 @@
@Test
public void testProgramD8() throws Exception {
Assume.assumeTrue("No desugaring for high API levels", requiresCoreLibDesugaring(parameters));
- D8TestCompileResult d8TestCompileResult =
+ Box<String> keepRulesHolder = new Box<>("");
+ D8TestRunResult d8TestRunResult =
testForD8()
.addProgramFiles(Paths.get(ToolHelper.EXAMPLES_JAVA9_BUILD_DIR + "stream.jar"))
.addLibraryFiles(ToolHelper.getAndroidJar(AndroidApiLevel.P))
.setMinApi(parameters.getApiLevel())
+ .addOptionsModification(
+ options ->
+ options.testing.desugaredLibraryKeepRuleConsumer =
+ (string, handler) -> keepRulesHolder.set(keepRulesHolder.get() + string))
.enableCoreLibraryDesugaring()
.compile()
- .inspect(this::checkRewrittenInvokes);
- D8TestRunResult d8TestRunResult =
- d8TestCompileResult
+ .inspect(this::checkRewrittenInvokes)
.addRunClasspathFiles(
buildDesugaredLibrary(
- parameters.getApiLevel(),
- d8TestCompileResult.getDesugaredLibraryKeepRules(),
- shrinkCoreLibrary))
+ parameters.getApiLevel(), keepRulesHolder.get(), shrinkCoreLibrary))
.run(parameters.getRuntime(), TEST_CLASS)
.assertSuccess();
assertLines2By2Correct(d8TestRunResult.getStdOut());
- assertGeneratedKeepRulesAreCorrect(d8TestCompileResult.getDesugaredLibraryKeepRules());
+ assertGeneratedKeepRulesAreCorrect(keepRulesHolder.get());
String stdErr = d8TestRunResult.getStdErr();
if (parameters.getRuntime().asDex().getVm().isOlderThanOrEqual(DexVm.ART_4_4_4_HOST)) {
// Flaky: There might be a missing method on lambda deserialization.
@@ -91,27 +91,28 @@
public void testProgramR8() throws Exception {
Assume.assumeTrue("No desugaring for high API levels", requiresCoreLibDesugaring(parameters));
for (Boolean minifying : BooleanUtils.values()) {
- R8TestCompileResult r8TestCompileResult =
+ Box<String> keepRulesHolder = new Box<>("");
+ R8TestRunResult r8TestRunResult =
testForR8(parameters.getBackend())
.minification(minifying)
.addKeepMainRule(TEST_CLASS)
.addProgramFiles(Paths.get(ToolHelper.EXAMPLES_JAVA9_BUILD_DIR + "stream.jar"))
.addLibraryFiles(ToolHelper.getAndroidJar(AndroidApiLevel.P))
.setMinApi(parameters.getApiLevel())
+ .addOptionsModification(
+ options ->
+ options.testing.desugaredLibraryKeepRuleConsumer =
+ (string, handler) -> keepRulesHolder.set(keepRulesHolder.get() + string))
.enableCoreLibraryDesugaring()
- .compile();
- R8TestRunResult r8TestRunResult =
- r8TestCompileResult
+ .compile()
.inspect(this::checkRewrittenInvokes)
.addRunClasspathFiles(
buildDesugaredLibrary(
- parameters.getApiLevel(),
- r8TestCompileResult.getDesugaredLibraryKeepRules(),
- shrinkCoreLibrary))
+ parameters.getApiLevel(), keepRulesHolder.get(), shrinkCoreLibrary))
.run(parameters.getRuntime(), TEST_CLASS)
.assertSuccess();
assertLines2By2Correct(r8TestRunResult.getStdOut());
- assertGeneratedKeepRulesAreCorrect(r8TestCompileResult.getDesugaredLibraryKeepRules());
+ assertGeneratedKeepRulesAreCorrect(keepRulesHolder.get());
if (parameters.getRuntime().asDex().getVm().isOlderThanOrEqual(DexVm.ART_4_4_4_HOST)) {
// Flaky: There might be a missing method on lambda deserialization.
r8TestRunResult.assertStderrMatches(