aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/junit/internal/runners/ErrorReportingRunner.java
diff options
context:
space:
mode:
authorDavid Srbecky <dsrbecky@google.com>2021-02-24 18:09:21 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-02-24 18:09:21 +0000
commit23e304a839c5924c7ac7399076318adc511e9985 (patch)
tree81124de095a6b4a53b223d0f70cadde9744ee44a /src/main/java/org/junit/internal/runners/ErrorReportingRunner.java
parentd8911c6e959a1bda9b2b77d9aa0d35eea7a401f9 (diff)
parent565f36d28118dce0c0a08fe71924dcd25e039022 (diff)
downloadjunit-23e304a839c5924c7ac7399076318adc511e9985.tar.gz
Merge changes from topic "revert-1601635-AIQYZOHWTP" am: 565f36d281
Original change: https://android-review.googlesource.com/c/platform/external/junit/+/1605377 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I1b6b1c8147b46e6c2a0ebd81a22edbb370082ded
Diffstat (limited to 'src/main/java/org/junit/internal/runners/ErrorReportingRunner.java')
-rw-r--r--src/main/java/org/junit/internal/runners/ErrorReportingRunner.java50
1 files changed, 13 insertions, 37 deletions
diff --git a/src/main/java/org/junit/internal/runners/ErrorReportingRunner.java b/src/main/java/org/junit/internal/runners/ErrorReportingRunner.java
index f52abab..1d32beb 100644
--- a/src/main/java/org/junit/internal/runners/ErrorReportingRunner.java
+++ b/src/main/java/org/junit/internal/runners/ErrorReportingRunner.java
@@ -1,44 +1,33 @@
package org.junit.internal.runners;
import java.lang.reflect.InvocationTargetException;
+import java.util.Arrays;
import java.util.List;
import org.junit.runner.Description;
import org.junit.runner.Runner;
import org.junit.runner.notification.Failure;
import org.junit.runner.notification.RunNotifier;
-import org.junit.runners.model.InvalidTestClassError;
import org.junit.runners.model.InitializationError;
-import static java.util.Collections.singletonList;
-
public class ErrorReportingRunner extends Runner {
private final List<Throwable> causes;
- private final String classNames;
+ private final Class<?> testClass;
public ErrorReportingRunner(Class<?> testClass, Throwable cause) {
- this(cause, testClass);
- }
-
- public ErrorReportingRunner(Throwable cause, Class<?>... testClasses) {
- if (testClasses == null || testClasses.length == 0) {
- throw new NullPointerException("Test classes cannot be null or empty");
+ if (testClass == null) {
+ throw new NullPointerException("Test class cannot be null");
}
- for (Class<?> testClass : testClasses) {
- if (testClass == null) {
- throw new NullPointerException("Test class cannot be null");
- }
- }
- classNames = getClassNames(testClasses);
+ this.testClass = testClass;
causes = getCauses(cause);
}
-
+
@Override
public Description getDescription() {
- Description description = Description.createSuiteDescription(classNames);
+ Description description = Description.createSuiteDescription(testClass);
for (Throwable each : causes) {
- description.addChild(describeCause());
+ description.addChild(describeCause(each));
}
return description;
}
@@ -50,25 +39,11 @@ public class ErrorReportingRunner extends Runner {
}
}
- private String getClassNames(Class<?>... testClasses) {
- final StringBuilder builder = new StringBuilder();
- for (Class<?> testClass : testClasses) {
- if (builder.length() != 0) {
- builder.append(", ");
- }
- builder.append(testClass.getName());
- }
- return builder.toString();
- }
-
@SuppressWarnings("deprecation")
private List<Throwable> getCauses(Throwable cause) {
if (cause instanceof InvocationTargetException) {
return getCauses(cause.getCause());
}
- if (cause instanceof InvalidTestClassError) {
- return singletonList(cause);
- }
if (cause instanceof InitializationError) {
return ((InitializationError) cause).getCauses();
}
@@ -76,15 +51,16 @@ public class ErrorReportingRunner extends Runner {
return ((org.junit.internal.runners.InitializationError) cause)
.getCauses();
}
- return singletonList(cause);
+ return Arrays.asList(cause);
}
- private Description describeCause() {
- return Description.createTestDescription(classNames, "initializationError");
+ private Description describeCause(Throwable child) {
+ return Description.createTestDescription(testClass,
+ "initializationError");
}
private void runCause(Throwable child, RunNotifier notifier) {
- Description description = describeCause();
+ Description description = describeCause(child);
notifier.fireTestStarted(description);
notifier.fireTestFailure(new Failure(description, child));
notifier.fireTestFinished(description);