aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/junit/internal/requests
diff options
context:
space:
mode:
authorDavid Srbecky <dsrbecky@google.com>2021-02-24 15:52:50 +0000
committerDavid Srbecky <dsrbecky@google.com>2021-02-24 15:52:50 +0000
commit08a6d4b74555db6d01048fc7065eb1e2bfaf33bc (patch)
tree81124de095a6b4a53b223d0f70cadde9744ee44a /src/main/java/org/junit/internal/requests
parent6a658e7a4df0cc8ea6465da46fcf1a823cb0d491 (diff)
downloadjunit-08a6d4b74555db6d01048fc7065eb1e2bfaf33bc.tar.gz
Revert "Upgrade external/junit to 4.13.2"
Revert submission 1601635 Reason for revert: b/181123058 Reverted Changes: I8f5cd1266:Remove support for stuck threads Ifdb59336d:Remove DisableOnDebug (new in 4.12) as it is not s... I6abae5aed:Extra generic type information to aid certain java... I5ec909df6:Upgrade external/junit to 4.13.2 Change-Id: Idaddfc2039816a8d7b12c91fdd540b801ab854ff
Diffstat (limited to 'src/main/java/org/junit/internal/requests')
-rw-r--r--src/main/java/org/junit/internal/requests/ClassRequest.java41
-rw-r--r--src/main/java/org/junit/internal/requests/FilterRequest.java2
-rw-r--r--src/main/java/org/junit/internal/requests/MemoizingRequest.java30
-rw-r--r--src/main/java/org/junit/internal/requests/OrderingRequest.java29
4 files changed, 14 insertions, 88 deletions
diff --git a/src/main/java/org/junit/internal/requests/ClassRequest.java b/src/main/java/org/junit/internal/requests/ClassRequest.java
index d60e360..3d6b100 100644
--- a/src/main/java/org/junit/internal/requests/ClassRequest.java
+++ b/src/main/java/org/junit/internal/requests/ClassRequest.java
@@ -1,18 +1,20 @@
package org.junit.internal.requests;
import org.junit.internal.builders.AllDefaultPossibilitiesBuilder;
-import org.junit.internal.builders.SuiteMethodBuilder;
+import org.junit.runner.Request;
import org.junit.runner.Runner;
-import org.junit.runners.model.RunnerBuilder;
-public class ClassRequest extends MemoizingRequest {
+public class ClassRequest extends Request {
+ private final Object runnerLock = new Object();
+
/*
* We have to use the f prefix, because IntelliJ's JUnit4IdeaTestRunner uses
* reflection to access this field. See
- * https://github.com/junit-team/junit4/issues/960
+ * https://github.com/junit-team/junit/issues/960
*/
private final Class<?> fTestClass;
private final boolean canUseSuiteMethod;
+ private volatile Runner runner;
public ClassRequest(Class<?> testClass, boolean canUseSuiteMethod) {
this.fTestClass = testClass;
@@ -24,31 +26,14 @@ public class ClassRequest extends MemoizingRequest {
}
@Override
- protected Runner createRunner() {
- return new CustomAllDefaultPossibilitiesBuilder().safeRunnerForClass(fTestClass);
- }
-
- private class CustomAllDefaultPossibilitiesBuilder extends AllDefaultPossibilitiesBuilder {
-
- @Override
- protected RunnerBuilder suiteMethodBuilder() {
- return new CustomSuiteMethodBuilder();
- }
- }
-
- /*
- * Customization of {@link SuiteMethodBuilder} that prevents use of the
- * suite method when creating a runner for fTestClass when canUseSuiteMethod
- * is false.
- */
- private class CustomSuiteMethodBuilder extends SuiteMethodBuilder {
-
- @Override
- public Runner runnerForClass(Class<?> testClass) throws Throwable {
- if (testClass == fTestClass && !canUseSuiteMethod) {
- return null;
+ public Runner getRunner() {
+ if (runner == null) {
+ synchronized (runnerLock) {
+ if (runner == null) {
+ runner = new AllDefaultPossibilitiesBuilder(canUseSuiteMethod).safeRunnerForClass(fTestClass);
+ }
}
- return super.runnerForClass(testClass);
}
+ return runner;
}
} \ No newline at end of file
diff --git a/src/main/java/org/junit/internal/requests/FilterRequest.java b/src/main/java/org/junit/internal/requests/FilterRequest.java
index 5f00399..066cba3 100644
--- a/src/main/java/org/junit/internal/requests/FilterRequest.java
+++ b/src/main/java/org/junit/internal/requests/FilterRequest.java
@@ -14,7 +14,7 @@ public final class FilterRequest extends Request {
/*
* We have to use the f prefix, because IntelliJ's JUnit4IdeaTestRunner uses
* reflection to access this field. See
- * https://github.com/junit-team/junit4/issues/960
+ * https://github.com/junit-team/junit/issues/960
*/
private final Filter fFilter;
diff --git a/src/main/java/org/junit/internal/requests/MemoizingRequest.java b/src/main/java/org/junit/internal/requests/MemoizingRequest.java
deleted file mode 100644
index 191c230..0000000
--- a/src/main/java/org/junit/internal/requests/MemoizingRequest.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.junit.internal.requests;
-
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
-
-import org.junit.runner.Request;
-import org.junit.runner.Runner;
-
-abstract class MemoizingRequest extends Request {
- private final Lock runnerLock = new ReentrantLock();
- private volatile Runner runner;
-
- @Override
- public final Runner getRunner() {
- if (runner == null) {
- runnerLock.lock();
- try {
- if (runner == null) {
- runner = createRunner();
- }
- } finally {
- runnerLock.unlock();
- }
- }
- return runner;
- }
-
- /** Creates the {@link Runner} to return from {@link #getRunner()}. Called at most once. */
- protected abstract Runner createRunner();
-}
diff --git a/src/main/java/org/junit/internal/requests/OrderingRequest.java b/src/main/java/org/junit/internal/requests/OrderingRequest.java
deleted file mode 100644
index 441e595..0000000
--- a/src/main/java/org/junit/internal/requests/OrderingRequest.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.junit.internal.requests;
-
-import org.junit.internal.runners.ErrorReportingRunner;
-import org.junit.runner.Request;
-import org.junit.runner.Runner;
-import org.junit.runner.manipulation.InvalidOrderingException;
-import org.junit.runner.manipulation.Ordering;
-
-/** @since 4.13 */
-public class OrderingRequest extends MemoizingRequest {
- private final Request request;
- private final Ordering ordering;
-
- public OrderingRequest(Request request, Ordering ordering) {
- this.request = request;
- this.ordering = ordering;
- }
-
- @Override
- protected Runner createRunner() {
- Runner runner = request.getRunner();
- try {
- ordering.apply(runner);
- } catch (InvalidOrderingException e) {
- return new ErrorReportingRunner(ordering.getClass(), e);
- }
- return runner;
- }
-}