aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java_tools/junitrunner/java/com/google/testing
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-10-10 21:37:46 +0000
committerGravatar Yue Gan <yueg@google.com>2016-10-11 08:45:23 +0000
commitd5f740d9809b84a8aeeb6fb0d70538d7b56b1dcf (patch)
treed5ec3722620c3e137d270bfe72cec6585366b2d3 /src/java_tools/junitrunner/java/com/google/testing
parent55ac95198d0441c2c13e415cc3b89e0ddc653cb1 (diff)
Move MemoizingRequest from c.g.testing.junit.junit4.runner to
c.g.testing.junit.runner.internal.junit4 Other minor changes: - reduce visibility of MemoizingRequest.createRunner() - Fix bug in CancellableRequestFactory where createRequest() can be called multiple times -- MOS_MIGRATED_REVID=135722005
Diffstat (limited to 'src/java_tools/junitrunner/java/com/google/testing')
-rw-r--r--src/java_tools/junitrunner/java/com/google/testing/junit/runner/internal/junit4/CancellableRequestFactory.java5
-rw-r--r--src/java_tools/junitrunner/java/com/google/testing/junit/runner/internal/junit4/MemoizingRequest.java (renamed from src/java_tools/junitrunner/java/com/google/testing/junit/junit4/runner/MemoizingRequest.java)6
-rw-r--r--src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/JUnit4RunnerBaseModule.java6
3 files changed, 10 insertions, 7 deletions
diff --git a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/internal/junit4/CancellableRequestFactory.java b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/internal/junit4/CancellableRequestFactory.java
index 74ee5de8df..39182c0565 100644
--- a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/internal/junit4/CancellableRequestFactory.java
+++ b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/internal/junit4/CancellableRequestFactory.java
@@ -14,7 +14,6 @@
package com.google.testing.junit.runner.internal.junit4;
-import com.google.testing.junit.junit4.runner.MemoizingRequest;
import com.google.testing.junit.junit4.runner.RunNotifierWrapper;
import javax.inject.Inject;
import javax.inject.Singleton;
@@ -45,9 +44,11 @@ public class CancellableRequestFactory {
if (requestCreated) {
throw new IllegalStateException("a request was already created");
}
+ requestCreated = true;
+
return new MemoizingRequest(delegate) {
@Override
- protected Runner createRunner(Request delegate) {
+ Runner createRunner(Request delegate) {
return new CancellableRunner(delegate.getRunner());
}
};
diff --git a/src/java_tools/junitrunner/java/com/google/testing/junit/junit4/runner/MemoizingRequest.java b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/internal/junit4/MemoizingRequest.java
index d4bb807333..6ff86cec5c 100644
--- a/src/java_tools/junitrunner/java/com/google/testing/junit/junit4/runner/MemoizingRequest.java
+++ b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/internal/junit4/MemoizingRequest.java
@@ -12,16 +12,14 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package com.google.testing.junit.junit4.runner;
+package com.google.testing.junit.runner.internal.junit4;
import org.junit.runner.Request;
import org.junit.runner.Runner;
/**
* A {@link Request} that memoizies another {@code Request}.
- * This class is meant to be overridden to modify some behaviors.
*/
-@Deprecated
public class MemoizingRequest extends Request {
private final Request requestDelegate;
private Runner runnerDelegate;
@@ -46,7 +44,7 @@ public class MemoizingRequest extends Request {
* @param delegate request to delegate to
* @return runner
*/
- protected Runner createRunner(Request delegate) {
+ Runner createRunner(Request delegate) {
return delegate.getRunner();
}
}
diff --git a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/JUnit4RunnerBaseModule.java b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/JUnit4RunnerBaseModule.java
index 517abd88e5..597a3b1f4a 100644
--- a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/JUnit4RunnerBaseModule.java
+++ b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/JUnit4RunnerBaseModule.java
@@ -16,8 +16,8 @@ package com.google.testing.junit.runner.junit4;
import static com.google.testing.junit.runner.sharding.ShardingFilters.DEFAULT_SHARDING_STRATEGY;
-import com.google.testing.junit.junit4.runner.MemoizingRequest;
import com.google.testing.junit.runner.internal.Stdout;
+import com.google.testing.junit.runner.internal.junit4.MemoizingRequest;
import com.google.testing.junit.runner.model.TestSuiteModel;
import com.google.testing.junit.runner.sharding.api.ShardingFilterFactory;
import com.google.testing.junit.runner.util.MemoizingSupplier;
@@ -72,6 +72,10 @@ public abstract class JUnit4RunnerBaseModule {
* JUnit4Runner requests the Runner twice, once to build the model (before
* filtering) and once to run the tests (after filtering). Constructing the
* Runner can be expensive, so Memoize the Runner.
+ *
+ * <p>Note that as of JUnit 4.11, Request.aClass() will memoize the runner,
+ * but users of Bazel might use an earlier version of JUnit, so to be safe
+ * we keep the memoization here.
*/
Request request = Request.aClass(suiteClass);
return new MemoizingRequest(request);