Cleanup BootstrapCurrentEqualityTest
Change-Id: Ic7ab86498e722e03748f650141d66bd89325af7e
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 1f30ddf..74976e5 100644
--- a/src/test/bootstrap/com/android/tools/r8/bootstrap/BootstrapCurrentEqualityTest.java
+++ b/src/test/bootstrap/com/android/tools/r8/bootstrap/BootstrapCurrentEqualityTest.java
@@ -18,7 +18,6 @@
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.TestRuntime;
import com.android.tools.r8.TestRuntime.CfVm;
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.ToolHelper.ProcessResult;
@@ -66,13 +65,12 @@
"}",
"-allowaccessmodification"
};
- private static String HELLO_EXPECTED = StringUtils.lines("Hello, world!");
+ private static final String HELLO_EXPECTED = StringUtils.lines("Hello, world!");
private static Pair<Path, Path> r8R8Debug;
private static Pair<Path, Path> r8R8Release;
private final TestParameters parameters;
- private static boolean testExternal = false;
@ClassRule public static TemporaryFolder testFolder = new TemporaryFolder();
@@ -99,28 +97,17 @@
// Run R8 on r8.jar.
final Path jar = testFolder.newFolder().toPath().resolve("out.jar");
final Path map = testFolder.newFolder().toPath().resolve("out.map");
- if (testExternal) {
- testForExternalR8(newTempFolder(), Backend.CF)
- .setMode(mode)
- .addProgramFiles(ToolHelper.getR8WithRelocatedDeps())
- .addLibraryFiles(TestRuntime.getSystemRuntime().getJavaHome())
- .addKeepRuleFiles(MAIN_KEEP)
- .compile()
- .apply(c -> FileUtils.writeTextFile(map, c.getProguardMap()))
- .writeToZip(jar);
- } else {
- testForR8(newTempFolder(), Backend.CF)
- .setMode(mode)
- .addProgramFiles(ToolHelper.getR8WithRelocatedDeps())
- .addLibraryProvider(JdkClassFileProvider.fromSystemJdk())
- .addKeepRuleFiles(MAIN_KEEP)
- .enableExperimentalKeepAnnotations()
- // TODO(b/176783536, b/270105162): Get a hold of dependencies in new gradle setup.
- .apply(R8TestBuilder::allowUnusedDontWarnPatterns)
- .compile()
- .apply(c -> FileUtils.writeTextFile(map, c.getProguardMap()))
- .writeToZip(jar);
- }
+ testForR8(newTempFolder(), Backend.CF)
+ .setMode(mode)
+ .addProgramFiles(ToolHelper.getR8WithRelocatedDeps())
+ .addLibraryProvider(JdkClassFileProvider.fromSystemJdk())
+ .addKeepRuleFiles(MAIN_KEEP)
+ .enableExperimentalKeepAnnotations()
+ // TODO(b/176783536, b/270105162): Get a hold of dependencies in new gradle setup.
+ .apply(R8TestBuilder::allowUnusedDontWarnPatterns)
+ .compile()
+ .apply(c -> FileUtils.writeTextFile(map, c.getProguardMap()))
+ .writeToZip(jar);
return new Pair<>(jar, map);
}
@@ -208,56 +195,58 @@
}
@Test
- public void test() throws Exception {
- Path program = testFolder.newFolder().toPath().resolve("hello.jar");
- writeClassesToJar(program, HELLO_CLASS);
+ public void testJvm() throws Exception {
+ Path program = writeClassesToJar(HELLO_CLASS);
testForJvm(parameters)
.addProgramFiles(program)
.run(parameters.getRuntime(), HELLO_NAME)
- .assertSuccessWithOutput(HELLO_EXPECTED)
- .apply(r -> compareR8(program, HELLO_EXPECTED, KEEP_HELLO, HELLO_NAME));
+ .assertSuccessWithOutput(HELLO_EXPECTED);
}
- private void compareR8(Path program, String expectedOutput, String[] keep, String main)
- throws Exception {
+ @Test
+ public void testR8() throws Exception {
+ Path program = writeClassesToJar(HELLO_CLASS);
+ compareR8(program);
+ }
+
+ private void compareR8(Path program) throws Exception {
ExternalR8TestCompileResult runR8Debug =
testForExternalR8(newTempFolder(), parameters.getBackend(), parameters.getRuntime())
.addProgramFiles(program)
- .addKeepRules(keep)
+ .addKeepRules(BootstrapCurrentEqualityTest.KEEP_HELLO)
.setMode(CompilationMode.DEBUG)
.compile();
testForJvm(parameters)
.addProgramFiles(runR8Debug.outputJar())
- .run(parameters.getRuntime(), main)
- .assertSuccessWithOutput(expectedOutput);
+ .run(parameters.getRuntime(), BootstrapCurrentEqualityTest.HELLO_NAME)
+ .assertSuccessWithOutput(HELLO_EXPECTED);
ExternalR8TestCompileResult runR8Release =
testForExternalR8(newTempFolder(), parameters.getBackend(), parameters.getRuntime())
.addProgramFiles(program)
- .addKeepRules(keep)
+ .addKeepRules(BootstrapCurrentEqualityTest.KEEP_HELLO)
.setMode(CompilationMode.RELEASE)
.compile();
testForJvm(parameters)
.addProgramFiles(runR8Release.outputJar())
- .run(parameters.getRuntime(), main)
- .assertSuccessWithOutput(expectedOutput);
- RunR8AndCheck(r8R8Debug, program, runR8Debug, keep, CompilationMode.DEBUG);
- RunR8AndCheck(r8R8Debug, program, runR8Release, keep, CompilationMode.RELEASE);
- RunR8AndCheck(r8R8Release, program, runR8Debug, keep, CompilationMode.DEBUG);
- RunR8AndCheck(r8R8Release, program, runR8Release, keep, CompilationMode.RELEASE);
+ .run(parameters.getRuntime(), BootstrapCurrentEqualityTest.HELLO_NAME)
+ .assertSuccessWithOutput(HELLO_EXPECTED);
+ RunR8AndCheck(r8R8Debug, program, runR8Debug, CompilationMode.DEBUG);
+ RunR8AndCheck(r8R8Debug, program, runR8Release, CompilationMode.RELEASE);
+ RunR8AndCheck(r8R8Release, program, runR8Debug, CompilationMode.DEBUG);
+ RunR8AndCheck(r8R8Release, program, runR8Release, CompilationMode.RELEASE);
}
private void RunR8AndCheck(
Pair<Path, Path> r8,
Path program,
ExternalR8TestCompileResult result,
- String[] keep,
CompilationMode mode)
throws Exception {
ExternalR8TestCompileResult runR8R8 =
testForExternalR8(newTempFolder(), parameters.getBackend(), parameters.getRuntime())
.useProvidedR8(r8.getFirst())
.addProgramFiles(program)
- .addKeepRules(keep)
+ .addKeepRules(BootstrapCurrentEqualityTest.KEEP_HELLO)
.setMode(mode)
.compile();
// Check that the process outputs (exit code, stdout, stderr) are the same.
diff --git a/src/test/bootstrap/com/android/tools/r8/bootstrap/HelloWorldCompiledOnArtTest.java b/src/test/bootstrap/com/android/tools/r8/bootstrap/HelloWorldCompiledOnArtTest.java
index 31a8108..197683f 100644
--- a/src/test/bootstrap/com/android/tools/r8/bootstrap/HelloWorldCompiledOnArtTest.java
+++ b/src/test/bootstrap/com/android/tools/r8/bootstrap/HelloWorldCompiledOnArtTest.java
@@ -73,9 +73,7 @@
}
private Path writeHelloProgramJar() throws IOException {
- Path jar = temp.newFolder().toPath().resolve("hello.jar");
- writeClassesToJar(jar, HELLO_CLASS);
- return jar;
+ return writeClassesToJar(HELLO_CLASS);
}
@Test
diff --git a/src/test/bootstrap/com/android/tools/r8/bootstrap/Java17R8BootstrapTest.java b/src/test/bootstrap/com/android/tools/r8/bootstrap/Java17R8BootstrapTest.java
index d410299..d058a31 100644
--- a/src/test/bootstrap/com/android/tools/r8/bootstrap/Java17R8BootstrapTest.java
+++ b/src/test/bootstrap/com/android/tools/r8/bootstrap/Java17R8BootstrapTest.java
@@ -84,9 +84,7 @@
}
private Path writeHelloProgramJar() throws IOException {
- Path jar = temp.newFolder().toPath().resolve("hello.jar");
- writeClassesToJar(jar, HELLO_CLASS);
- return jar;
+ return writeClassesToJar(HELLO_CLASS);
}
@Test
diff --git a/src/test/java/com/android/tools/r8/R8CommandTest.java b/src/test/java/com/android/tools/r8/R8CommandTest.java
index 208d106..7da9dfa 100644
--- a/src/test/java/com/android/tools/r8/R8CommandTest.java
+++ b/src/test/java/com/android/tools/r8/R8CommandTest.java
@@ -70,15 +70,11 @@
static class B {}
private Path getJarWithA() throws Exception {
- Path jar = temp.newFolder().toPath().resolve("out.jar");
- writeClassesToJar(jar, A.class);
- return jar;
+ return writeClassesToJar(A.class);
}
private Path getJarWithB() throws Exception {
- Path jar = temp.newFolder().toPath().resolve("out.jar");
- writeClassesToJar(jar, B.class);
- return jar;
+ return writeClassesToJar(B.class);
}
private Path getTestResources() throws Exception {
diff --git a/src/test/java/com/android/tools/r8/d8/DexVersionTests.java b/src/test/java/com/android/tools/r8/d8/DexVersionTests.java
index 9804829..f84cccd 100644
--- a/src/test/java/com/android/tools/r8/d8/DexVersionTests.java
+++ b/src/test/java/com/android/tools/r8/d8/DexVersionTests.java
@@ -52,8 +52,7 @@
@Before
public void compileVersions() throws Exception {
- Path inputJar1 = getStaticTemp().newFolder().toPath().resolve("input1.jar");
- writeClassesToJar(inputJar1, Input1.class);
+ Path inputJar1 = writeClassesToJar(Input1.class);
D8Command.Builder arrayAccessBuilder = D8Command.builder().addProgramFiles(inputJar1);
D8.run(
arrayAccessBuilder
@@ -70,8 +69,7 @@
.setMinApiLevel(AndroidApiLevel.N.getLevel())
.build());
- Path inputJar2 = getStaticTemp().newFolder().toPath().resolve("input2.jar");
- writeClassesToJar(inputJar2, Input2.class);
+ Path inputJar2 = writeClassesToJar(Input2.class);
D8Command.Builder arithmeticBuilder = D8Command.builder().addProgramFiles(inputJar2);
D8.run(
arithmeticBuilder
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/b148525512/B148525512.java b/src/test/java/com/android/tools/r8/kotlin/lambda/b148525512/B148525512.java
index a601fc8..28b5ade 100644
--- a/src/test/java/com/android/tools/r8/kotlin/lambda/b148525512/B148525512.java
+++ b/src/test/java/com/android/tools/r8/kotlin/lambda/b148525512/B148525512.java
@@ -16,7 +16,7 @@
import com.android.tools.r8.synthesis.SyntheticItemsTestUtils;
import com.android.tools.r8.utils.ArchiveResourceProvider;
import java.io.IOException;
-import java.nio.file.Files;
+import java.io.UncheckedIOException;
import java.nio.file.Path;
import java.util.Collection;
import org.junit.Test;
@@ -32,6 +32,7 @@
private static final String featureKtClassNamet = kotlinTestClassesPackage + ".FeatureKt";
private static final String baseClassName = kotlinTestClassesPackage + ".Base";
+ private static Path featureApiPath;
private static final KotlinCompileMemoizer kotlinBaseClasses =
getCompileMemoizer(getKotlinFileInTestPackage(pkg, "base"))
.configure(
@@ -62,16 +63,14 @@
}
private static Path getFeatureApiPath() {
- try {
- Path featureApiJar = getStaticTemp().getRoot().toPath().resolve("feature_api.jar");
- if (Files.exists(featureApiJar)) {
- return featureApiJar;
+ if (featureApiPath == null) {
+ try {
+ return writeClassesToJar(FeatureAPI.class);
+ } catch (IOException e) {
+ throw new UncheckedIOException(e);
}
- writeClassesToJar(featureApiJar, FeatureAPI.class);
- return featureApiJar;
- } catch (IOException e) {
- throw new RuntimeException(e);
}
+ return featureApiPath;
}
@Test
diff --git a/src/test/java/com/android/tools/r8/regress/b191296688/Regress191296688.java b/src/test/java/com/android/tools/r8/regress/b191296688/Regress191296688.java
index 7f9b488..d7e443b 100644
--- a/src/test/java/com/android/tools/r8/regress/b191296688/Regress191296688.java
+++ b/src/test/java/com/android/tools/r8/regress/b191296688/Regress191296688.java
@@ -44,8 +44,7 @@
@Test
public void testRegress191296688() throws Exception {
- Path aLib = temp.newFolder().toPath().resolve("alib.jar");
- writeClassesToJar(aLib, A.class);
+ Path aLib = writeClassesToJar(A.class);
String folder = DescriptorUtils.getBinaryNameFromJavaType(PKG);
CfRuntime cfRuntime = TestRuntime.getCheckedInJdk9();
Path ktClasses =
diff --git a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateClasspathWidenTest.java b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateClasspathWidenTest.java
index 5da6e09..e28f415 100644
--- a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateClasspathWidenTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateClasspathWidenTest.java
@@ -57,8 +57,7 @@
@BeforeClass
public static void createClassPathJar() throws IOException {
- classPathJar = getStaticTemp().newFile("classpath.jar").toPath();
- writeClassesToJar(classPathJar, CLASSPATH_CLASSES);
+ classPathJar = writeClassesToJar(CLASSPATH_CLASSES);
}
@Test
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 5512419..1351448 100644
--- a/src/test/testbase/java/com/android/tools/r8/TestBase.java
+++ b/src/test/testbase/java/com/android/tools/r8/TestBase.java
@@ -1442,8 +1442,10 @@
consumer.finished(null);
}
- protected static void writeClassesToJar(Path output, Class<?>... classes) throws IOException {
- writeClassesToJar(output, Arrays.asList(classes));
+ protected static Path writeClassesToJar(Class<?>... classes) throws IOException {
+ Path jar = staticTemp.newFolder().toPath().resolve("classes.jar");
+ writeClassesToJar(jar, Arrays.asList(classes));
+ return jar;
}
protected static void writeClassFileDataToJar(Path output, Collection<byte[]> classes) {