You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by dw...@apache.org on 2012/08/23 08:58:21 UTC
svn commit: r1376391 -
/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/TestMaxFailuresRule.java
Author: dweiss
Date: Thu Aug 23 06:58:21 2012
New Revision: 1376391
URL: http://svn.apache.org/viewvc?rev=1376391&view=rev
Log:
Correcting the test for the pessimistic random seed.
Modified:
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/TestMaxFailuresRule.java
Modified: lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/TestMaxFailuresRule.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/TestMaxFailuresRule.java?rev=1376391&r1=1376390&r2=1376391&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/TestMaxFailuresRule.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/TestMaxFailuresRule.java Thu Aug 23 06:58:21 2012
@@ -19,9 +19,9 @@ package org.apache.lucene.util;
import org.apache.lucene.util.junitcompat.WithNestedTests;
import org.junit.Assert;
-import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.runner.Description;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
@@ -45,7 +45,7 @@ public class TestMaxFailuresRule extends
}
public static class Nested extends WithNestedTests.AbstractNestedTest {
- @Repeat(iterations = 100)
+ @Repeat(iterations = 500)
public void testFailSometimes() {
assertFalse(random().nextInt(5) == 0);
}
@@ -61,22 +61,40 @@ public class TestMaxFailuresRule extends
LuceneTestCase.ignoreAfterMaxFailures.failuresSoFar = 0;
JUnitCore core = new JUnitCore();
- final int [] assumptions = new int [1];
+ final StringBuilder results = new StringBuilder();
core.addListener(new RunListener() {
+ char lastTest;
+
+ @Override
+ public void testStarted(Description description) throws Exception {
+ lastTest = 'S'; // success.
+ }
+
@Override
public void testAssumptionFailure(Failure failure) {
- assumptions[0]++;
+ lastTest = 'A'; // assumption failure.
+ }
+
+ @Override
+ public void testFailure(Failure failure) throws Exception {
+ lastTest = 'F'; // failure
+ }
+
+ @Override
+ public void testFinished(Description description) throws Exception {
+ results.append(lastTest);
}
});
Result result = core.run(Nested.class);
- Assert.assertEquals(100, result.getRunCount());
+ Assert.assertEquals(500, result.getRunCount());
Assert.assertEquals(0, result.getIgnoreCount());
Assert.assertEquals(2, result.getFailureCount());
- // JUnit doesn't pass back the number of successful tests, just make sure
- // we did have enough assumption-failures.
- Assert.assertTrue(assumptions[0] > 50);
+ // Make sure we had exactly two failures followed by assumption-failures
+ // resulting from ignored tests.
+ Assert.assertTrue(results.toString(),
+ results.toString().matches("(S*F){2}A+"));
} finally {
LuceneTestCase.ignoreAfterMaxFailures.maxFailures = maxFailures;
LuceneTestCase.ignoreAfterMaxFailures.failuresSoFar = failuresSoFar;