Always close resourceshrinker debug consumer
Change-Id: I14c5cfdd4de88616e8b845af1e9fb1d8a234eb7c
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index 44c289f..32658ea 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -704,6 +704,9 @@
if (desugarGraphConsumer != null) {
desugarGraphConsumer.finished();
}
+ if (resourceShrinkerConfiguration.getDebugConsumer() != null) {
+ resourceShrinkerConfiguration.getDebugConsumer().finished(reporter);
+ }
}
public boolean shouldDesugarNests() {
diff --git a/src/test/java/com/android/tools/r8/androidresources/ResourceShrinkerLoggingTest.java b/src/test/java/com/android/tools/r8/androidresources/ResourceShrinkerLoggingTest.java
index 5ed2e09..72f9d40 100644
--- a/src/test/java/com/android/tools/r8/androidresources/ResourceShrinkerLoggingTest.java
+++ b/src/test/java/com/android/tools/r8/androidresources/ResourceShrinkerLoggingTest.java
@@ -6,10 +6,13 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import com.android.tools.r8.DiagnosticsHandler;
+import com.android.tools.r8.StringConsumer;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.androidresources.AndroidResourceTestingUtils.AndroidTestResource;
import com.android.tools.r8.androidresources.AndroidResourceTestingUtils.AndroidTestResourceBuilder;
+import com.android.tools.r8.utils.BooleanBox;
import com.android.tools.r8.utils.BooleanUtils;
import com.android.tools.r8.utils.StringUtils;
import com.google.common.collect.ImmutableList;
@@ -47,6 +50,7 @@
@Test
public void testR8() throws Exception {
StringBuilder log = new StringBuilder();
+ BooleanBox finished = new BooleanBox(false);
testForR8(parameters.getBackend())
.setMinApi(parameters)
.addProgramClasses(FooBar.class)
@@ -59,7 +63,17 @@
configurationBuilder.enableOptimizedShrinkingWithR8();
}
configurationBuilder.setDebugConsumer(
- (string, handler) -> log.append(string + "\n"));
+ new StringConsumer() {
+ @Override
+ public void accept(String string, DiagnosticsHandler handler) {
+ log.append(string + "\n");
+ }
+
+ @Override
+ public void finished(DiagnosticsHandler handler) {
+ finished.set(true);
+ }
+ });
return configurationBuilder.build();
}))
.addAndroidResources(getTestResources(temp))
@@ -79,6 +93,7 @@
.assertSuccess();
// TODO(b/360284664): Add (non compatible) logging for optimized shrinking
if (!optimized) {
+ assertTrue(finished.get());
// Consistent with the old AGP embedded shrinker
List<String> strings = StringUtils.splitLines(log.toString());
// string:bar reachable from code