Attempt to fix tests
Change-Id: I5f7ae40848fe8024b60aa52c68ec33f4c7b7776f
diff --git a/src/main/java/com/android/tools/r8/ClassFileConsumer.java b/src/main/java/com/android/tools/r8/ClassFileConsumer.java
index a557881..e124571 100644
--- a/src/main/java/com/android/tools/r8/ClassFileConsumer.java
+++ b/src/main/java/com/android/tools/r8/ClassFileConsumer.java
@@ -18,6 +18,7 @@
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.util.List;
+import java.util.Set;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
@@ -151,7 +152,7 @@
}
public static void writeResources(
- Path archive, List<ProgramResource> resources, List<DataEntryResource> dataResources)
+ Path archive, List<ProgramResource> resources, Set<DataEntryResource> dataResources)
throws IOException, ResourceException {
OpenOption[] options =
new OpenOption[] {StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING};
diff --git a/src/main/java/com/android/tools/r8/DexIndexedConsumer.java b/src/main/java/com/android/tools/r8/DexIndexedConsumer.java
index 85da043..3ca4bf2 100644
--- a/src/main/java/com/android/tools/r8/DexIndexedConsumer.java
+++ b/src/main/java/com/android/tools/r8/DexIndexedConsumer.java
@@ -180,7 +180,7 @@
}
public static void writeResources(
- Path archive, List<ProgramResource> resources, List<DataEntryResource> dataResources)
+ Path archive, List<ProgramResource> resources, Set<DataEntryResource> dataResources)
throws IOException, ResourceException {
OpenOption[] options =
new OpenOption[] {StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING};
diff --git a/src/main/java/com/android/tools/r8/utils/AndroidApp.java b/src/main/java/com/android/tools/r8/utils/AndroidApp.java
index d22adac..4c15524 100644
--- a/src/main/java/com/android/tools/r8/utils/AndroidApp.java
+++ b/src/main/java/com/android/tools/r8/utils/AndroidApp.java
@@ -32,6 +32,7 @@
import com.android.tools.r8.shaking.FilteredClassPath;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
+import com.google.common.io.ByteStreams;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
@@ -39,10 +40,12 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.TreeSet;
/**
* Collection of program files needed for processing.
@@ -214,8 +217,8 @@
}
}
- public List<DataEntryResource> getDataEntryResourcesForTesting() throws ResourceException {
- List<DataEntryResource> out = new ArrayList<>();
+ public Set<DataEntryResource> getDataEntryResourcesForTesting() throws ResourceException {
+ Set<DataEntryResource> out = new TreeSet<>(Comparator.comparing(DataResource::getName));
for (ProgramResourceProvider programResourceProvider : getProgramResourceProviders()) {
DataResourceProvider dataResourceProvider = programResourceProvider.getDataResourceProvider();
if (dataResourceProvider != null) {
@@ -229,7 +232,14 @@
@Override
public void visit(DataEntryResource file) {
- out.add(file);
+ try {
+ byte[] bytes = ByteStreams.toByteArray(file.getByteStream());
+ DataEntryResource copy =
+ DataEntryResource.fromBytes(bytes, file.getName(), file.getOrigin());
+ out.add(copy);
+ } catch (IOException | ResourceException e) {
+ throw new RuntimeException(e);
+ }
}
});
}
diff --git a/src/main/java/com/android/tools/r8/utils/AndroidAppConsumers.java b/src/main/java/com/android/tools/r8/utils/AndroidAppConsumers.java
index 4b986b8..b7beb82 100644
--- a/src/main/java/com/android/tools/r8/utils/AndroidAppConsumers.java
+++ b/src/main/java/com/android/tools/r8/utils/AndroidAppConsumers.java
@@ -113,7 +113,8 @@
@Override
public DataResourceConsumer getDataResourceConsumer() {
- DataResourceConsumer dataResourceConsumer = consumer.getDataResourceConsumer();
+ DataResourceConsumer dataResourceConsumer =
+ consumer != null ? consumer.getDataResourceConsumer() : null;
return new DataResourceConsumer() {
@Override
@@ -194,7 +195,8 @@
@Override
public DataResourceConsumer getDataResourceConsumer() {
- DataResourceConsumer dataResourceConsumer = consumer.getDataResourceConsumer();
+ DataResourceConsumer dataResourceConsumer =
+ consumer != null ? consumer.getDataResourceConsumer() : null;
return new DataResourceConsumer() {
@Override
@@ -265,23 +267,38 @@
@Override
public DataResourceConsumer getDataResourceConsumer() {
- assert consumer.getDataResourceConsumer() == null;
+ DataResourceConsumer dataResourceConsumer =
+ consumer != null ? consumer.getDataResourceConsumer() : null;
return new DataResourceConsumer() {
@Override
public void accept(
DataDirectoryResource directory, DiagnosticsHandler diagnosticsHandler) {
- // Ignore.
+ if (dataResourceConsumer != null) {
+ dataResourceConsumer.accept(directory, diagnosticsHandler);
+ }
}
@Override
public void accept(DataEntryResource file, DiagnosticsHandler diagnosticsHandler) {
- builder.addDataResource(file);
+ try {
+ byte[] bytes = ByteStreams.toByteArray(file.getByteStream());
+ DataEntryResource copy =
+ DataEntryResource.fromBytes(bytes, file.getName(), file.getOrigin());
+ builder.addDataResource(copy);
+ if (dataResourceConsumer != null) {
+ dataResourceConsumer.accept(copy, diagnosticsHandler);
+ }
+ } catch (IOException | ResourceException e) {
+ throw new RuntimeException(e);
+ }
}
@Override
public void finished(DiagnosticsHandler handler) {
- // Ignore.
+ if (dataResourceConsumer != null) {
+ dataResourceConsumer.finished(handler);
+ }
}
};
}