Merge "Delete incorrect TestBase.runOnArt overloads"
diff --git a/src/test/java/com/android/tools/r8/TestBase.java b/src/test/java/com/android/tools/r8/TestBase.java
index a29d673..2bb8d75 100644
--- a/src/test/java/com/android/tools/r8/TestBase.java
+++ b/src/test/java/com/android/tools/r8/TestBase.java
@@ -430,20 +430,6 @@
}
/**
- * Run application on Art with the specified main class.
- */
- protected String runOnArt(AndroidApp app, String mainClass) throws IOException {
- return runOnArtRaw(app, mainClass).stdout;
- }
-
- /**
- * Run application on Art with the specified main class.
- */
- protected String runOnArt(AndroidApp app, Class mainClass) throws IOException {
- return runOnArtRaw(app, mainClass).stdout;
- }
-
- /**
* Run application on Art with the specified main class and provided arguments.
*/
protected String runOnArt(AndroidApp app, Class mainClass, String... args) throws IOException {
diff --git a/src/test/java/com/android/tools/r8/ir/regalloc/B79405526.java b/src/test/java/com/android/tools/r8/ir/regalloc/B79405526.java
index f03e6f6..08058e5 100644
--- a/src/test/java/com/android/tools/r8/ir/regalloc/B79405526.java
+++ b/src/test/java/com/android/tools/r8/ir/regalloc/B79405526.java
@@ -5,12 +5,9 @@
package com.android.tools.r8.ir.regalloc;
import static com.android.tools.r8.utils.DexInspectorMatchers.isPresent;
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.hamcrest.CoreMatchers.not;
import static org.junit.Assert.assertThat;
import com.android.tools.r8.TestBase;
-import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.DexInspector;
import org.junit.Test;
@@ -22,13 +19,13 @@
DexInspector inspector = new DexInspector(app);
DexInspector.ClassSubject clazz = inspector.clazz(TestClass.class);
assertThat(clazz, isPresent());
- // TODO(christofferqa): Ensure runOnArt checks that there are no verification errors, and then
- // use runOnArt instead of runOnArtRaw.
- ToolHelper.ProcessResult d8Result = runOnArtRaw(app, TestClass.class.getCanonicalName());
- assertThat(d8Result.stderr, not(containsString("Verification error")));
+ // Throws if a method in TestClass does not verify.
+ runOnArt(app, TestClass.class.getName());
}
private static class TestClass {
+ public static void main(String[] args) {}
+
public void method() {
Object x = this;
TestClass y = this;
diff --git a/src/test/java/com/android/tools/r8/movestringconstants/TestClass.java b/src/test/java/com/android/tools/r8/movestringconstants/TestClass.java
index bf13fc3..bf74250 100644
--- a/src/test/java/com/android/tools/r8/movestringconstants/TestClass.java
+++ b/src/test/java/com/android/tools/r8/movestringconstants/TestClass.java
@@ -5,6 +5,8 @@
package com.android.tools.r8.movestringconstants;
public class TestClass {
+ public static void main(String[] args) {}
+
static void foo(String arg1, String arg2, String arg3, String arg4) {
Utils.check(arg1, "StringConstants::foo#1");
Utils.check("", "StringConstants::foo#2");
diff --git a/src/test/java/com/android/tools/r8/regress/b72485384/Main.java b/src/test/java/com/android/tools/r8/regress/b72485384/Main.java
index c569c5e..f492fcc 100644
--- a/src/test/java/com/android/tools/r8/regress/b72485384/Main.java
+++ b/src/test/java/com/android/tools/r8/regress/b72485384/Main.java
@@ -3,14 +3,14 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.regress.b72485384;
-import com.google.common.base.Functions;
+import java.util.function.Function;
public class Main {
public static void main(String[] args) {
GenericOuter<String> outer = new GenericOuter<>();
- GenericOuter<String>.GenericInner<String> inner = outer
- .makeInner(Functions.identity(), "Hello World!");
+ GenericOuter<String>.GenericInner<String> inner =
+ outer.makeInner(Function.identity(), "Hello World!");
System.out.println(inner.innerGetter(inner));
System.out.println(outer.outerGetter(inner));
}
diff --git a/src/test/java/com/android/tools/r8/regress/b72485384/Regress72485384Test.java b/src/test/java/com/android/tools/r8/regress/b72485384/Regress72485384Test.java
index 3205434..c616810 100644
--- a/src/test/java/com/android/tools/r8/regress/b72485384/Regress72485384Test.java
+++ b/src/test/java/com/android/tools/r8/regress/b72485384/Regress72485384Test.java
@@ -3,10 +3,16 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.regress.b72485384;
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.junit.Assert.assertThat;
+
import com.android.tools.r8.TestBase;
+import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.regress.b72485384.GenericOuter.GenericInner;
import com.android.tools.r8.utils.AndroidApp;
import com.google.common.collect.ImmutableList;
+import java.util.Arrays;
+import java.util.Collection;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -17,33 +23,41 @@
public class Regress72485384Test extends TestBase {
@Parameters(name = "{0}")
- public static List<String> getParameters() {
+ public static Collection<Object[]> getParameters() {
String baseConfig =
keepMainProguardConfiguration(Main.class)
+ "-keepattributes Signature,InnerClasses,EnclosingMethod ";
- return ImmutableList.of(
- baseConfig,
- baseConfig + "-dontshrink",
- baseConfig + "-dontshrink -dontobfuscate",
- baseConfig + "-dontobfuscate",
- "",
- "-dontshrink",
- "-keep class DoesNotExist -dontshrink"
- );
+ return Arrays.asList(
+ new Object[][] {
+ {baseConfig, null},
+ {baseConfig + "-dontshrink", null},
+ {baseConfig + "-dontshrink -dontobfuscate", null},
+ {baseConfig + "-dontobfuscate", null},
+ {"", null},
+ {"-dontshrink", null},
+ {"-keep class DoesNotExist -dontshrink", "ClassNotFoundException"}
+ });
}
private final static List<Class> CLASSES = ImmutableList
.of(GenericOuter.class, GenericInner.class, Main.class);
private final String proguardConfig;
+ private final String expectedErrorMessage;
- public Regress72485384Test(String proguardConfig) {
+ public Regress72485384Test(String proguardConfig, String expectedErrorMessage) {
this.proguardConfig = proguardConfig;
+ this.expectedErrorMessage = expectedErrorMessage;
}
@Test
public void testSignatureRewrite() throws Exception {
- AndroidApp result = compileWithR8(CLASSES, proguardConfig);
- runOnArt(result, Main.class.getCanonicalName());
+ AndroidApp app = compileWithR8(CLASSES, proguardConfig);
+ if (expectedErrorMessage == null) {
+ runOnArt(app, Main.class.getCanonicalName());
+ } else {
+ ToolHelper.ProcessResult result = runOnArtRaw(app, Main.class.getCanonicalName());
+ assertThat(result.stderr, containsString(expectedErrorMessage));
+ }
}
}