Refactor tests to make bootstrap not depend on java8 tests
Bug: b/338969668
Change-Id: Ic4a186059d902a805760dd2dd9deea803178fced
diff --git a/d8_r8/test_modules/tests_bootstrap/build.gradle.kts b/d8_r8/test_modules/tests_bootstrap/build.gradle.kts
index 5e6ba69..f6120cc 100644
--- a/d8_r8/test_modules/tests_bootstrap/build.gradle.kts
+++ b/d8_r8/test_modules/tests_bootstrap/build.gradle.kts
@@ -28,7 +28,6 @@
val testbaseJavaCompileTask = projectTask("testbase", "compileJava")
val testbaseDepsJarTask = projectTask("testbase", "depsJar")
-val testsJava8Jar = projectTask("tests_java_8", "testJar")
val keepAnnoJarTask = projectTask("keepanno", "jar")
val keepAnnoCompileTask = projectTask("keepanno", "compileJava")
val mainR8RelocatedTask = projectTask("main", "r8WithRelocatedDeps")
@@ -38,7 +37,6 @@
dependencies {
implementation(keepAnnoJarTask.outputs.files)
- implementation(files(testsJava8Jar.outputs.files.getSingleFile()))
implementation(projectTask("main", "jar").outputs.files)
implementation(resourceShrinkerJavaCompileTask.outputs.files)
implementation(resourceShrinkerKotlinCompileTask.outputs.files)
@@ -61,7 +59,6 @@
tasks {
withType<JavaCompile> {
- dependsOn(testsJava8Jar)
dependsOn(gradle.includedBuild("main").task(":jar"))
}
diff --git a/src/test/bootstrap/com/android/tools/r8/bootstrap/BootstrapCurrentEqualityTest.java b/src/test/bootstrap/com/android/tools/r8/bootstrap/BootstrapCurrentEqualityTest.java
index 74976e5..d4f3496 100644
--- a/src/test/bootstrap/com/android/tools/r8/bootstrap/BootstrapCurrentEqualityTest.java
+++ b/src/test/bootstrap/com/android/tools/r8/bootstrap/BootstrapCurrentEqualityTest.java
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.bootstrap;
-import static com.android.tools.r8.graph.GenericSignatureIdentityTest.testParseSignaturesInJar;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/src/test/java/com/android/tools/r8/graph/GenericSignatureIdentityTest.java b/src/test/java/com/android/tools/r8/graph/GenericSignatureIdentityTest.java
index a923e53..6e71e34 100644
--- a/src/test/java/com/android/tools/r8/graph/GenericSignatureIdentityTest.java
+++ b/src/test/java/com/android/tools/r8/graph/GenericSignatureIdentityTest.java
@@ -4,29 +4,14 @@
package com.android.tools.r8.graph;
-import static com.android.tools.r8.utils.InternalOptions.ASM_VERSION;
-import static org.junit.Assert.assertEquals;
-
import com.android.tools.r8.TestBase;
-import com.android.tools.r8.TestDiagnosticMessagesImpl;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
import com.android.tools.r8.ToolHelper;
-import com.android.tools.r8.graph.GenericSignature.ClassSignature;
-import com.android.tools.r8.origin.Origin;
-import com.android.tools.r8.utils.Reporter;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
-import org.objectweb.asm.ClassReader;
-import org.objectweb.asm.ClassVisitor;
@RunWith(Parameterized.class)
public class GenericSignatureIdentityTest extends TestBase {
@@ -44,46 +29,4 @@
public void testAllClassSignature() throws Exception {
testParseSignaturesInJar(ToolHelper.CHECKED_IN_R8_17_WITH_DEPS);
}
-
- public static void testParseSignaturesInJar(Path jar) throws Exception {
- GenericSignatureReader genericSignatureReader = new GenericSignatureReader();
- ZipInputStream inputStream = new ZipInputStream(Files.newInputStream(jar));
- ZipEntry next = inputStream.getNextEntry();
- while (next != null) {
- if (next.getName().endsWith(".class")) {
- ClassReader classReader = new ClassReader(inputStream);
- classReader.accept(genericSignatureReader, 0);
- }
- next = inputStream.getNextEntry();
- }
- }
-
- private static class GenericSignatureReader extends ClassVisitor {
-
- public final Set<String> signatures = new HashSet<>();
- private final DexItemFactory factory = new DexItemFactory();
-
- private GenericSignatureReader() {
- super(ASM_VERSION);
- }
-
- @Override
- public void visit(
- int version,
- int access,
- String name,
- String signature,
- String superName,
- String[] interfaces) {
- if (signature == null) {
- return;
- }
- TestDiagnosticMessagesImpl testDiagnosticMessages = new TestDiagnosticMessagesImpl();
- ClassSignature classSignature =
- GenericSignature.parseClassSignature(
- name, signature, Origin.unknown(), factory, new Reporter(testDiagnosticMessages));
- assertEquals(signature, classSignature.toString());
- testDiagnosticMessages.assertNoMessages();
- }
- }
}
diff --git a/src/test/testbase/java/com/android/tools/r8/TestBase.java b/src/test/testbase/java/com/android/tools/r8/TestBase.java
index 1351448..2a812ee 100644
--- a/src/test/testbase/java/com/android/tools/r8/TestBase.java
+++ b/src/test/testbase/java/com/android/tools/r8/TestBase.java
@@ -40,6 +40,8 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexProto;
import com.android.tools.r8.graph.DexType;
+import com.android.tools.r8.graph.GenericSignature;
+import com.android.tools.r8.graph.GenericSignature.ClassSignature;
import com.android.tools.r8.graph.ProgramMethod;
import com.android.tools.r8.graph.SmaliWriter;
import com.android.tools.r8.graph.SubtypingInfo;
@@ -112,6 +114,7 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashSet;
import java.util.IdentityHashMap;
import java.util.LinkedList;
import java.util.List;
@@ -128,6 +131,7 @@
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
import org.junit.AfterClass;
import org.junit.Assert;
@@ -2139,4 +2143,46 @@
internalOptionsConsumer.accept(internalOptions);
GlobalSyntheticsGenerator.runForTesting(command.getInputApp(), internalOptions);
}
+
+ public static void testParseSignaturesInJar(Path jar) throws Exception {
+ GenericSignatureReader genericSignatureReader = new GenericSignatureReader();
+ ZipInputStream inputStream = new ZipInputStream(Files.newInputStream(jar));
+ ZipEntry next = inputStream.getNextEntry();
+ while (next != null) {
+ if (next.getName().endsWith(".class")) {
+ ClassReader classReader = new ClassReader(inputStream);
+ classReader.accept(genericSignatureReader, 0);
+ }
+ next = inputStream.getNextEntry();
+ }
+ }
+
+ private static class GenericSignatureReader extends ClassVisitor {
+
+ public final Set<String> signatures = new HashSet<>();
+ private final DexItemFactory factory = new DexItemFactory();
+
+ private GenericSignatureReader() {
+ super(ASM_VERSION);
+ }
+
+ @Override
+ public void visit(
+ int version,
+ int access,
+ String name,
+ String signature,
+ String superName,
+ String[] interfaces) {
+ if (signature == null) {
+ return;
+ }
+ TestDiagnosticMessagesImpl testDiagnosticMessages = new TestDiagnosticMessagesImpl();
+ ClassSignature classSignature =
+ GenericSignature.parseClassSignature(
+ name, signature, Origin.unknown(), factory, new Reporter(testDiagnosticMessages));
+ assertEquals(signature, classSignature.toString());
+ testDiagnosticMessages.assertNoMessages();
+ }
+ }
}