Revert "Add some more tests for member lookup."
This reverts commit 387a1c468d354a3fcd056dbd6570213055df2933.
Reason for revert: purple bots
Change-Id: Ia4afe91c570360698dd06336fe28404d907d8553
diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java
index ce46885..139ee1f 100644
--- a/src/test/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -748,25 +748,12 @@
return runJava(ImmutableList.of(path.toString()), main);
}
- public static ProcessResult runJavaNoVerify(Class clazz) throws Exception {
- String main = clazz.getCanonicalName();
- Path path = getClassPathForTests();
- return runJavaNoVerify(ImmutableList.of(path.toString()), main);
- }
-
public static ProcessResult runJava(List<String> classpath, String mainClass) throws IOException {
ProcessBuilder builder = new ProcessBuilder(
getJavaExecutable(), "-cp", String.join(PATH_SEPARATOR, classpath), mainClass);
return runProcess(builder);
}
- public static ProcessResult runJavaNoVerify(List<String> classpath, String mainClass)
- throws IOException {
- ProcessBuilder builder = new ProcessBuilder(
- getJavaExecutable(), "-cp", String.join(PATH_SEPARATOR, classpath), "-noverify", mainClass);
- return runProcess(builder);
- }
-
public static ProcessResult forkD8(Path dir, String... args)
throws IOException, InterruptedException {
return forkJava(dir, D8.class, args);
diff --git a/src/test/java/com/android/tools/r8/jasmin/JasminBuilder.java b/src/test/java/com/android/tools/r8/jasmin/JasminBuilder.java
index d44b460..964f004 100644
--- a/src/test/java/com/android/tools/r8/jasmin/JasminBuilder.java
+++ b/src/test/java/com/android/tools/r8/jasmin/JasminBuilder.java
@@ -55,13 +55,6 @@
public int getMajorVersion() {
return 48;
}
- },
- /** JSE 5 is not fully supported by Jasmin. Interfaces will not work. */
- JSE_5 {
- @Override
- public int getMajorVersion() {
- return 49;
- }
};
public abstract int getMajorVersion();
@@ -78,7 +71,6 @@
private final List<String> methods = new ArrayList<>();
private final List<String> fields = new ArrayList<>();
private boolean makeInit = false;
- private boolean hasInit = false;
private boolean isInterface = false;
private ClassBuilder(String name) {
@@ -188,7 +180,7 @@
for (String iface : interfaces) {
builder.append(".implements ").append(iface).append('\n');
}
- if (makeInit && !hasInit) {
+ if (makeInit) {
builder
.append(".method public <init>()V\n")
.append(".limit locals 1\n")
@@ -212,8 +204,6 @@
}
public MethodSignature addDefaultConstructor() {
- assert !hasInit;
- hasInit = true;
return addMethod("public", "<init>", Collections.emptyList(), "V",
".limit stack 1",
".limit locals 1",
@@ -255,9 +245,6 @@
}
public ClassBuilder addInterface(String name, String... interfaces) {
- // Interfaces are broken in Jasmin (the ACC_SUPER access flag is set) and the JSE_5 and later
- // will not load corresponding classes.
- assert majorVersion <= ClassFileVersion.JDK_1_4.getMajorVersion();
ClassBuilder builder = new ClassBuilder(name, "java/lang/Object", interfaces);
builder.setIsInterface();
classes.add(builder);
diff --git a/src/test/java/com/android/tools/r8/jasmin/JasminTestBase.java b/src/test/java/com/android/tools/r8/jasmin/JasminTestBase.java
index 84b413a..6d4a501 100644
--- a/src/test/java/com/android/tools/r8/jasmin/JasminTestBase.java
+++ b/src/test/java/com/android/tools/r8/jasmin/JasminTestBase.java
@@ -55,7 +55,7 @@
ByteStreams.copy(input, output);
}
}
- return ToolHelper.runJavaNoVerify(ImmutableList.of(out.getPath()), main);
+ return ToolHelper.runJava(ImmutableList.of(out.getPath()), main);
}
protected String runOnJava(JasminBuilder builder, String main) throws Exception {
diff --git a/src/test/java/com/android/tools/r8/jasmin/MemberResolutionTest.java b/src/test/java/com/android/tools/r8/jasmin/MemberResolutionTest.java
index fb3c067..15d2a08 100644
--- a/src/test/java/com/android/tools/r8/jasmin/MemberResolutionTest.java
+++ b/src/test/java/com/android/tools/r8/jasmin/MemberResolutionTest.java
@@ -3,8 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.jasmin;
-import static java.util.Collections.emptyList;
-
import com.android.tools.r8.ToolHelper.ProcessResult;
import com.android.tools.r8.jasmin.JasminBuilder.ClassBuilder;
import com.android.tools.r8.jasmin.JasminBuilder.ClassFileVersion;
@@ -120,189 +118,6 @@
ensureICCE(builder);
}
- @Test
- @Ignore("b/69101406")
- public void lookupVirtualMethodWithConflictingPrivate() throws Exception {
- JasminBuilder builder = new JasminBuilder();
-
- ClassBuilder superClass = builder.addClass("SuperClass");
- superClass.addDefaultConstructor();
- superClass.addVirtualMethod("aMethod", emptyList(), "V",
- ".limit stack 2",
- ".limit locals 1",
- " getstatic java/lang/System/out Ljava/io/PrintStream;",
- " bipush 42",
- " invokevirtual java/io/PrintStream/println(I)V",
- " return");
-
- ClassBuilder subClass = builder.addClass("SubClass", "SuperClass");
- subClass.addDefaultConstructor();
- subClass.addPrivateVirtualMethod("aMethod", emptyList(), "V",
- ".limit stack 2",
- ".limit locals 1",
- " getstatic java/lang/System/out Ljava/io/PrintStream;",
- " bipush 123",
- " invokevirtual java/io/PrintStream/println(I)V",
- " return");
-
- ClassBuilder mainClass = builder.addClass(MAIN_CLASS);
- mainClass.addMainMethod(
- ".limit stack 2",
- ".limit locals 1",
- " new SubClass",
- " dup",
- " invokespecial SubClass/<init>()V",
- " invokevirtual SubClass/aMethod()V",
- " return");
- ensureIAEExceptJava(builder);
- }
-
- @Test
- @Ignore("b/69152228")
- public void lookupDirectMethodFromWrongContext() throws Exception {
- JasminBuilder builder = new JasminBuilder();
-
- ClassBuilder superClass = builder.addClass("SuperClass");
- superClass.addDefaultConstructor();
- superClass.addVirtualMethod("aMethod", emptyList(), "V",
- ".limit stack 2",
- ".limit locals 1",
- " getstatic java/lang/System/out Ljava/io/PrintStream;",
- " bipush 42",
- " invokevirtual java/io/PrintStream/println(I)V",
- " return");
-
- ClassBuilder subClass = builder.addClass("SubClass", "SuperClass");
- subClass.addDefaultConstructor();
- subClass.addPrivateVirtualMethod("aMethod", emptyList(), "V",
- ".limit stack 2",
- ".limit locals 1",
- " getstatic java/lang/System/out Ljava/io/PrintStream;",
- " bipush 123",
- " invokevirtual java/io/PrintStream/println(I)V",
- " return");
-
- ClassBuilder mainClass = builder.addClass(MAIN_CLASS);
- mainClass.addMainMethod(
- ".limit stack 2",
- ".limit locals 1",
- " new SubClass",
- " dup",
- " invokespecial SubClass/<init>()V",
- " invokespecial SubClass/aMethod()V",
- " return");
- ensureIAEExceptJava(builder);
- }
-
- @Test
- public void lookupPrivateSuperFromSubClass() throws Exception {
- JasminBuilder builder = new JasminBuilder(ClassFileVersion.JSE_5);
-
- ClassBuilder superClass = builder.addClass("SuperClass");
- superClass.addDefaultConstructor();
- superClass.addPrivateVirtualMethod("aMethod", emptyList(), "V",
- ".limit stack 2",
- ".limit locals 1",
- " getstatic java/lang/System/out Ljava/io/PrintStream;",
- " bipush 42",
- " invokevirtual java/io/PrintStream/println(I)V",
- " return");
-
- ClassBuilder subClass = builder.addClass("SubClass", "SuperClass");
- subClass.addDefaultConstructor();
- subClass.addVirtualMethod("callAMethod", emptyList(), "V",
- ".limit stack 1",
- ".limit locals 1",
- " aload 0",
- " invokespecial SuperClass/aMethod()V",
- " return");
-
- ClassBuilder mainClass = builder.addClass(MAIN_CLASS);
- mainClass.addMainMethod(
- ".limit stack 2",
- ".limit locals 1",
- " new SubClass",
- " dup",
- " invokespecial SubClass/<init>()V",
- " invokevirtual SubClass/callAMethod()V",
- " return");
-
- ensureIAEExceptJava(builder);
- }
-
- @Test
- @Ignore("b/69101406")
- public void lookupStaticMethodWithConflictingVirtual() throws Exception {
- JasminBuilder builder = new JasminBuilder();
-
- ClassBuilder superClass = builder.addClass("SuperClass");
- superClass.addDefaultConstructor();
- superClass.addStaticMethod("aMethod", emptyList(), "V",
- ".limit stack 2",
- ".limit locals 1",
- " getstatic java/lang/System/out Ljava/io/PrintStream;",
- " bipush 42",
- " invokevirtual java/io/PrintStream/println(I)V",
- " return");
-
- ClassBuilder subClass = builder.addClass("SubClass", "SuperClass");
- subClass.addDefaultConstructor();
- subClass.addVirtualMethod("aMethod", emptyList(), "V",
- ".limit stack 2",
- ".limit locals 1",
- " getstatic java/lang/System/out Ljava/io/PrintStream;",
- " bipush 123",
- " invokevirtual java/io/PrintStream/println(I)V",
- " return");
-
- ClassBuilder mainClass = builder.addClass(MAIN_CLASS);
- mainClass.addMainMethod(
- ".limit stack 2",
- ".limit locals 1",
- " new SubClass",
- " dup",
- " invokespecial SubClass/<init>()V",
- " invokestatic SubClass/aMethod()V",
- " return");
- ensureICCE(builder);
- }
-
- @Test
- @Ignore("b/69101406")
- public void lookupVirtualMethodWithConflictingStatic() throws Exception {
- JasminBuilder builder = new JasminBuilder();
-
- ClassBuilder superClass = builder.addClass("SuperClass");
- superClass.addDefaultConstructor();
- superClass.addVirtualMethod("aMethod", emptyList(), "V",
- ".limit stack 2",
- ".limit locals 1",
- " getstatic java/lang/System/out Ljava/io/PrintStream;",
- " bipush 42",
- " invokevirtual java/io/PrintStream/println(I)V",
- " return");
-
- ClassBuilder subClass = builder.addClass("SubClass", "SuperClass");
- subClass.addDefaultConstructor();
- subClass.addStaticMethod("aMethod", emptyList(), "V",
- ".limit stack 2",
- ".limit locals 1",
- " getstatic java/lang/System/out Ljava/io/PrintStream;",
- " bipush 123",
- " invokevirtual java/io/PrintStream/println(I)V",
- " return");
-
- ClassBuilder mainClass = builder.addClass(MAIN_CLASS);
- mainClass.addMainMethod(
- ".limit stack 2",
- ".limit locals 1",
- " new SubClass",
- " dup",
- " invokespecial SubClass/<init>()V",
- " invokevirtual SubClass/aMethod()V",
- " return");
- ensureICCE(builder);
- }
private void ensureSameOutput(JasminBuilder app) throws Exception {
String dxOutput = runOnArtDx(app, MAIN_CLASS);
@@ -315,23 +130,13 @@
}
private void ensureICCE(JasminBuilder app) throws Exception {
- ensureRuntimeException(app, IncompatibleClassChangeError.class);
- }
-
- private void ensureIAEExceptJava(JasminBuilder app)
- throws Exception {
- ensureRuntimeException(app, IllegalAccessError.class);
- }
-
- private void ensureRuntimeException(JasminBuilder app, Class exception) throws Exception {
- String name = exception.getSimpleName();
ProcessResult dxOutput = runOnArtDxRaw(app, MAIN_CLASS);
- Assert.assertTrue(dxOutput.stderr.contains(name));
+ Assert.assertTrue(dxOutput.stderr.contains("IncompatibleClassChangeError"));
ProcessResult d8Output = runOnArtD8Raw(app, MAIN_CLASS);
- Assert.assertTrue(d8Output.stderr.contains(name));
+ Assert.assertTrue(d8Output.stderr.contains("IncompatibleClassChangeError"));
ProcessResult r8Output = runOnArtR8Raw(app, MAIN_CLASS, null);
- Assert.assertTrue(r8Output.stderr.contains(name));
+ Assert.assertTrue(r8Output.stderr.contains("IncompatibleClassChangeError"));
ProcessResult javaOutput = runOnJavaRaw(app, MAIN_CLASS);
- Assert.assertTrue(javaOutput.stderr.contains(name));
+ Assert.assertTrue(javaOutput.stderr.contains("IncompatibleClassChangeError"));
}
}