Rewrite kotlin lib processing tests to use valid API surface.
Bug: 129837418, 129558497, 129568705
Change-Id: Iba50a04b1da42259764c8792d4bc53b79f7fd099
diff --git a/src/test/java/com/android/tools/r8/TestBuilder.java b/src/test/java/com/android/tools/r8/TestBuilder.java
index 6eea205..350293d 100644
--- a/src/test/java/com/android/tools/r8/TestBuilder.java
+++ b/src/test/java/com/android/tools/r8/TestBuilder.java
@@ -30,7 +30,9 @@
}
public T apply(ThrowableConsumer<T> fn) {
- fn.acceptWithRuntimeException(self());
+ if (fn != null) {
+ fn.acceptWithRuntimeException(self());
+ }
return self();
}
diff --git a/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinReflectionLibTest.java b/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinReflectionLibTest.java
index 488c23c..483b3aa 100644
--- a/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinReflectionLibTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinReflectionLibTest.java
@@ -4,14 +4,13 @@
package com.android.tools.r8.kotlin;
import com.android.tools.r8.KotlinTestBase;
+import com.android.tools.r8.R8FullTestBuilder;
import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.ThrowableConsumer;
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.ToolHelper.KotlinTargetVersion;
-import com.android.tools.r8.utils.InternalOptions;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
-import java.util.function.Consumer;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -37,12 +36,12 @@
}
private void test(
- Collection<String> rules, Consumer<InternalOptions> optionsConsumer) throws Exception {
+ Collection<String> rules, ThrowableConsumer<R8FullTestBuilder> consumer) throws Exception {
testForR8(parameters.getBackend())
.addLibraryFiles(ToolHelper.getDefaultAndroidJar(), ToolHelper.getKotlinStdlibJar())
.addProgramFiles(ToolHelper.getKotlinReflectJar())
- .addOptionsModification(optionsConsumer)
.addKeepRules(rules)
+ .apply(consumer)
.compile();
}
@@ -56,14 +55,18 @@
test(ImmutableList.of("-dontshrink", "-dontoptimize"));
}
- @Ignore("b/129568705")
@Test
public void testDontShrinkAndDontOptimizeDifferently() throws Exception {
test(
ImmutableList.of("-keep,allowobfuscation class **.*KClasses*"),
- o -> {
- o.enableTreeShaking = false;
- o.enableVerticalClassMerging = false;
+ tb -> {
+ tb.noTreeShaking();
+ tb.addOptionsModification(o -> {
+ // Randomly choose a couple of optimizations.
+ o.enableVerticalClassMerging = false;
+ o.enableClassStaticizer = false;
+ o.outline.enabled = false;
+ });
});
}
@@ -77,12 +80,11 @@
test(ImmutableList.of("-dontshrink"));
}
- @Ignore("b/129558497")
@Test
public void testDontShrinkDifferently() throws Exception {
test(
ImmutableList.of("-keep,allowobfuscation class **.*KClasses*"),
- o -> o.enableTreeShaking = false);
+ tb -> tb.noTreeShaking());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinStdlibTest.java b/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinStdlibTest.java
index c3a7fd7..956c37b 100644
--- a/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinStdlibTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinStdlibTest.java
@@ -4,14 +4,13 @@
package com.android.tools.r8.kotlin;
import com.android.tools.r8.KotlinTestBase;
+import com.android.tools.r8.R8FullTestBuilder;
import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.ThrowableConsumer;
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.ToolHelper.KotlinTargetVersion;
-import com.android.tools.r8.utils.InternalOptions;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
-import java.util.function.Consumer;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -36,11 +35,11 @@
}
private void test(
- Collection<String> rules, Consumer<InternalOptions> optionsConsumer) throws Exception {
+ Collection<String> rules, ThrowableConsumer<R8FullTestBuilder> consumer) throws Exception {
testForR8(parameters.getBackend())
.addProgramFiles(ToolHelper.getKotlinStdlibJar())
- .addOptionsModification(optionsConsumer)
.addKeepRules(rules)
+ .apply(consumer)
.compile();
}
@@ -54,14 +53,18 @@
test(ImmutableList.of("-dontshrink", "-dontoptimize"));
}
- @Ignore("b/129558497")
@Test
public void testDontShrinkAndDontOptimizeDifferently() throws Exception {
test(
ImmutableList.of("-keep,allowobfuscation class **.*Exception*"),
- o -> {
- o.enableTreeShaking = false;
- o.enableVerticalClassMerging = false;
+ tb -> {
+ tb.noTreeShaking();
+ tb.addOptionsModification(o -> {
+ // Randomly choose a couple of optimizations.
+ o.enableClassInlining = false;
+ o.enableLambdaMerging = false;
+ o.enableValuePropagation = false;
+ });
});
}
@@ -75,12 +78,11 @@
test(ImmutableList.of("-dontshrink"));
}
- @Ignore("b/129558497")
@Test
public void testDontShrinkDifferently() throws Exception {
test(
ImmutableList.of("-keep,allowobfuscation class **.*Exception*"),
- o -> o.enableTreeShaking = false);
+ tb -> tb.noTreeShaking());
}
@Test