Extend testing utilities for diagnostic inspection.
Change-Id: I7c5578ad608b1dd180a8cf3965581c48d4a543c6
diff --git a/src/test/java/com/android/tools/r8/TestCompilerBuilder.java b/src/test/java/com/android/tools/r8/TestCompilerBuilder.java
index 111bc20..cdb2452 100644
--- a/src/test/java/com/android/tools/r8/TestCompilerBuilder.java
+++ b/src/test/java/com/android/tools/r8/TestCompilerBuilder.java
@@ -86,6 +86,19 @@
}
}
+ public CR compileWithExpectedDiagnostics(
+ Consumer<TestDiagnosticMessages> diagnosticsConsumer) throws CompilationFailedException {
+ TestDiagnosticMessages diagnosticsHandler = getState().getDiagnosticsMessages();
+ try {
+ CR result = compile();
+ diagnosticsConsumer.accept(diagnosticsHandler);
+ return result;
+ } catch (CompilationFailedException e) {
+ diagnosticsConsumer.accept(diagnosticsHandler);
+ throw e;
+ }
+ }
+
@Override
public RR run(String mainClass)
throws CompilationFailedException, ExecutionException, IOException {
diff --git a/src/test/java/com/android/tools/r8/TestDiagnosticMessages.java b/src/test/java/com/android/tools/r8/TestDiagnosticMessages.java
index 125329b..5759c3a 100644
--- a/src/test/java/com/android/tools/r8/TestDiagnosticMessages.java
+++ b/src/test/java/com/android/tools/r8/TestDiagnosticMessages.java
@@ -21,6 +21,8 @@
public TestDiagnosticMessages assertOnlyWarnings();
+ public TestDiagnosticMessages assertOnlyErrors();
+
public TestDiagnosticMessages assertInfosCount(int count);
public TestDiagnosticMessages assertWarningsCount(int count);
diff --git a/src/test/java/com/android/tools/r8/TestDiagnosticMessagesImpl.java b/src/test/java/com/android/tools/r8/TestDiagnosticMessagesImpl.java
index 8737581..aea4b4a 100644
--- a/src/test/java/com/android/tools/r8/TestDiagnosticMessagesImpl.java
+++ b/src/test/java/com/android/tools/r8/TestDiagnosticMessagesImpl.java
@@ -76,6 +76,13 @@
return this;
}
+ public TestDiagnosticMessages assertOnlyErrors() {
+ assertEmpty("info", getInfos());
+ assertEmpty("warning", getWarnings());
+ assertNotEquals(0, getErrors().size());
+ return this;
+ }
+
public TestDiagnosticMessages assertInfosCount(int count) {
assertEquals(count, getInfos().size());
return this;