Use zip file builder in tracereferences tests
Bug: 169127026
Bug: 169546956
Change-Id: Ie4fcd0f06859f3e3c105437613422cf7fb41642d
diff --git a/src/test/java/com/android/tools/r8/tracereferences/TraceReferencesArrayTypesTest.java b/src/test/java/com/android/tools/r8/tracereferences/TraceReferencesArrayTypesTest.java
index 7d76052..35f215e 100644
--- a/src/test/java/com/android/tools/r8/tracereferences/TraceReferencesArrayTypesTest.java
+++ b/src/test/java/com/android/tools/r8/tracereferences/TraceReferencesArrayTypesTest.java
@@ -15,7 +15,7 @@
import com.android.tools.r8.references.Reference;
import com.android.tools.r8.references.TypeReference;
import com.android.tools.r8.utils.AndroidApiLevel;
-import com.android.tools.r8.utils.ZipUtils;
+import com.android.tools.r8.utils.ZipUtils.ZipBuilder;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
import java.nio.file.Path;
@@ -71,22 +71,24 @@
@Test
public void arrayTypes() throws Throwable {
Path dir = temp.newFolder().toPath();
- Path targetJar = dir.resolve("target.jar");
- Path sourceJar = dir.resolve("source.jar");
- ZipUtils.zip(
- targetJar,
- ToolHelper.getClassPathForTests(),
- ToolHelper.getClassFileForTestClass(Target.class),
- ToolHelper.getClassFileForTestClass(TargetFieldType.class),
- ToolHelper.getClassFileForTestClass(TargetArgType.class),
- ToolHelper.getClassFileForTestClass(TargetReturnType.class),
- ToolHelper.getClassFileForTestClass(TargetInstantiatedType.class),
- ToolHelper.getClassFileForTestClass(TargetInstanceOfType.class),
- ToolHelper.getClassFileForTestClass(TargetCheckCastType.class));
- ZipUtils.zip(
- sourceJar,
- ToolHelper.getClassPathForTests(),
- ToolHelper.getClassFileForTestClass(Source.class));
+ Path targetJar =
+ ZipBuilder.builder(dir.resolve("target.jar"))
+ .addFilesRelative(
+ ToolHelper.getClassPathForTests(),
+ ToolHelper.getClassFileForTestClass(Target.class),
+ ToolHelper.getClassFileForTestClass(TargetFieldType.class),
+ ToolHelper.getClassFileForTestClass(TargetArgType.class),
+ ToolHelper.getClassFileForTestClass(TargetReturnType.class),
+ ToolHelper.getClassFileForTestClass(TargetInstantiatedType.class),
+ ToolHelper.getClassFileForTestClass(TargetInstanceOfType.class),
+ ToolHelper.getClassFileForTestClass(TargetCheckCastType.class))
+ .build();
+ Path sourceJar =
+ ZipBuilder.builder(dir.resolve("source.jar"))
+ .addFilesRelative(
+ ToolHelper.getClassPathForTests(),
+ ToolHelper.getClassFileForTestClass(Source.class))
+ .build();
DiagnosticsChecker diagnosticsChecker = new DiagnosticsChecker();
MissingReferencesConsumer consumer = new MissingReferencesConsumer();
diff --git a/src/test/java/com/android/tools/r8/tracereferences/TraceReferencesCommandTest.java b/src/test/java/com/android/tools/r8/tracereferences/TraceReferencesCommandTest.java
index 5ea9bd0..77c1e53 100644
--- a/src/test/java/com/android/tools/r8/tracereferences/TraceReferencesCommandTest.java
+++ b/src/test/java/com/android/tools/r8/tracereferences/TraceReferencesCommandTest.java
@@ -21,18 +21,15 @@
import com.android.tools.r8.utils.FileUtils;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.ZipUtils;
+import com.android.tools.r8.utils.ZipUtils.ZipBuilder;
import com.google.common.collect.ImmutableList;
-import java.io.BufferedOutputStream;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
-import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import java.util.function.Consumer;
import java.util.stream.Collectors;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
import kotlin.text.Charsets;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -213,20 +210,22 @@
Consumer<DiagnosticsChecker> diagnosticsCheckerConsumer)
throws Throwable {
Path dir = temp.newFolder().toPath();
- Path targetJar = dir.resolve("target.jar");
- Path sourceJar = dir.resolve("source.jar");
- ZipUtils.zip(
- targetJar,
- ToolHelper.getClassPathForTests(),
- targetClasses.stream()
- .map(ToolHelper::getClassFileForTestClass)
- .collect(Collectors.toList()));
- ZipUtils.zip(
- sourceJar,
- ToolHelper.getClassPathForTests(),
- sourceClasses.stream()
- .map(ToolHelper::getClassFileForTestClass)
- .collect(Collectors.toList()));
+ Path targetJar =
+ ZipBuilder.builder(dir.resolve("target.jar"))
+ .addFilesRelative(
+ ToolHelper.getClassPathForTests(),
+ targetClasses.stream()
+ .map(ToolHelper::getClassFileForTestClass)
+ .collect(Collectors.toList()))
+ .build();
+ Path sourceJar =
+ ZipBuilder.builder(dir.resolve("source.jar"))
+ .addFilesRelative(
+ ToolHelper.getClassPathForTests(),
+ sourceClasses.stream()
+ .map(ToolHelper::getClassFileForTestClass)
+ .collect(Collectors.toList()))
+ .build();
runAndCheckOutput(targetJar, sourceJar, format, expected, diagnosticsCheckerConsumer);
}
@@ -344,17 +343,19 @@
@Test
public void testMissingReference_errorToWarning() throws Throwable {
Path dir = temp.newFolder().toPath();
- Path targetJar = dir.resolve("target.jar");
- Path sourceJar = dir.resolve("source.jar");
+ Path targetJar =
+ ZipBuilder.builder(dir.resolve("target.jar"))
+ .addFilesRelative(
+ ToolHelper.getClassPathForTests(),
+ ToolHelper.getClassFileForTestClass(OtherTarget.class))
+ .build();
+ Path sourceJar =
+ ZipBuilder.builder(dir.resolve("source.jar"))
+ .addFilesRelative(
+ ToolHelper.getClassPathForTests(),
+ ToolHelper.getClassFileForTestClass(Source.class))
+ .build();
Path output = dir.resolve("output.txt");
- ZipUtils.zip(
- targetJar,
- ToolHelper.getClassPathForTests(),
- ToolHelper.getClassFileForTestClass(OtherTarget.class));
- ZipUtils.zip(
- sourceJar,
- ToolHelper.getClassPathForTests(),
- ToolHelper.getClassFileForTestClass(Source.class));
DiagnosticsChecker diagnosticsChecker = new DiagnosticsChecker();
TraceReferences.run(
TraceReferencesCommand.parse(
@@ -382,16 +383,6 @@
assertEquals(0, diagnosticsChecker.infos.size());
}
- public static void zip(Path zipFile, String path, byte[] data) throws IOException {
- try (ZipOutputStream stream =
- new ZipOutputStream(new BufferedOutputStream(Files.newOutputStream(zipFile)))) {
- ZipEntry zipEntry = new ZipEntry(path);
- stream.putNextEntry(zipEntry);
- stream.write(data);
- stream.closeEntry();
- }
- }
-
private void checkTargetPartlyMissing(DiagnosticsChecker diagnosticsChecker) {
Field field;
Method method;
@@ -411,13 +402,17 @@
@Test
public void testMissingDefinition_printUses() throws Throwable {
Path dir = temp.newFolder().toPath();
- Path targetJar = dir.resolve("target.jar");
- Path sourceJar = dir.resolve("source.jar");
- zip(targetJar, DescriptorUtils.getPathFromJavaType(Target.class), getClassWithTargetRemoved());
- ZipUtils.zip(
- sourceJar,
- ToolHelper.getClassPathForTests(),
- ToolHelper.getClassFileForTestClass(Source.class));
+ Path targetJar =
+ ZipBuilder.builder(dir.resolve("target.jar"))
+ .addBytes(
+ DescriptorUtils.getPathFromJavaType(Target.class), getClassWithTargetRemoved())
+ .build();
+ Path sourceJar =
+ ZipBuilder.builder(dir.resolve("source.jar"))
+ .addFilesRelative(
+ ToolHelper.getClassPathForTests(),
+ ToolHelper.getClassFileForTestClass(Source.class))
+ .build();
try {
runAndCheckOutput(
targetJar,
@@ -436,9 +431,17 @@
@Test
public void testMissingDefinition_keepRules() throws Throwable {
Path dir = temp.newFolder().toPath();
- Path targetJar = dir.resolve("target.jar");
- Path sourceJar = dir.resolve("source.jar");
- zip(targetJar, DescriptorUtils.getPathFromJavaType(Target.class), getClassWithTargetRemoved());
+ Path targetJar =
+ ZipBuilder.builder(dir.resolve("target.jar"))
+ .addBytes(
+ DescriptorUtils.getPathFromJavaType(Target.class), getClassWithTargetRemoved())
+ .build();
+ Path sourceJar =
+ ZipBuilder.builder(dir.resolve("source.jar"))
+ .addFilesRelative(
+ ToolHelper.getClassPathForTests(),
+ ToolHelper.getClassFileForTestClass(Source.class))
+ .build();
ZipUtils.zip(
sourceJar,
ToolHelper.getClassPathForTests(),
@@ -465,13 +468,17 @@
@Test
public void testMissingDefinition_keepRulesAllowObfuscation() throws Throwable {
Path dir = temp.newFolder().toPath();
- Path targetJar = dir.resolve("target.jar");
- Path sourceJar = dir.resolve("source.jar");
- zip(targetJar, DescriptorUtils.getPathFromJavaType(Target.class), getClassWithTargetRemoved());
- ZipUtils.zip(
- sourceJar,
- ToolHelper.getClassPathForTests(),
- ToolHelper.getClassFileForTestClass(Source.class));
+ Path targetJar =
+ ZipBuilder.builder(dir.resolve("target.jar"))
+ .addBytes(
+ DescriptorUtils.getPathFromJavaType(Target.class), getClassWithTargetRemoved())
+ .build();
+ Path sourceJar =
+ ZipBuilder.builder(dir.resolve("source.jar"))
+ .addFilesRelative(
+ ToolHelper.getClassPathForTests(),
+ ToolHelper.getClassFileForTestClass(Source.class))
+ .build();
try {
runAndCheckOutput(
targetJar,