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/03/24 22:14:34 UTC
svn commit: r1304923 - in /lucene/dev/trunk/lucene:
core/src/test/org/apache/lucene/util/junitcompat/TestSeedFromUncaught.java
test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
Author: dweiss
Date: Sat Mar 24 21:14:34 2012
New Revision: 1304923
URL: http://svn.apache.org/viewvc?rev=1304923&view=rev
Log:
LUCENE-3908: include test method even in a failure is caught in a non-test thread.
Modified:
lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestSeedFromUncaught.java
lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestSeedFromUncaught.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestSeedFromUncaught.java?rev=1304923&r1=1304922&r2=1304923&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestSeedFromUncaught.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestSeedFromUncaught.java Sat Mar 24 21:14:34 2012
@@ -55,6 +55,7 @@ public class TestSeedFromUncaught extend
Assert.assertEquals(1, result.getFailureCount());
String consoleOut = super.getSysErr() + "\n\n" + super.getSysOut();
Assert.assertTrue(consoleOut.contains("-Dtests.seed="));
+ Assert.assertTrue(consoleOut.contains("-Dtestmethod=testFoo"));
Assert.assertTrue(consoleOut.contains("foobar"));
}
}
Modified: lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java?rev=1304923&r1=1304922&r2=1304923&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java (original)
+++ lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java Sat Mar 24 21:14:34 2012
@@ -304,7 +304,7 @@ public abstract class LuceneTestCase ext
*/
@Rule
public final TestRule ruleChain = RuleChain
- .outerRule(new RememberThreadRule())
+ .outerRule(new SaveThreadAndTestNameRule())
.around(new UncaughtExceptionsRule(this))
.around(new TestResultInterceptorRule())
.around(new SystemPropertiesInvariantRule(ignoredInvariantProperties))
@@ -561,7 +561,6 @@ public abstract class LuceneTestCase ext
return new Statement() {
@Override
public void evaluate() throws Throwable {
- starting(description);
try {
base.evaluate();
} catch (AssumptionViolatedException e) {
@@ -570,8 +569,6 @@ public abstract class LuceneTestCase ext
} catch (Throwable t) {
failed(t, description);
throw t;
- } finally {
- ending(description);
}
}
};
@@ -593,16 +590,6 @@ public abstract class LuceneTestCase ext
reportAdditionalFailureInfo();
assert !(e instanceof AssumptionViolatedException);
}
-
- private void starting(Description description) {
- // set current method name for logging
- LuceneTestCase.this.name = description.getMethodName();
- }
-
- private void ending(Description description) {
- // clear the current method name.
- LuceneTestCase.this.name = null;
- }
};
/**
@@ -614,21 +601,23 @@ public abstract class LuceneTestCase ext
/**
* @see LuceneTestCase#testCaseThread
*/
- private class RememberThreadRule implements TestRule {
+ private class SaveThreadAndTestNameRule implements TestRule {
private String previousName;
@Override
- public Statement apply(final Statement base, Description description) {
+ public Statement apply(final Statement base, final Description description) {
return new Statement() {
public void evaluate() throws Throwable {
try {
Thread current = Thread.currentThread();
previousName = current.getName();
LuceneTestCase.this.testCaseThread = current;
+ LuceneTestCase.this.name = description.getMethodName();
base.evaluate();
} finally {
LuceneTestCase.this.testCaseThread.setName(previousName);
LuceneTestCase.this.testCaseThread = null;
+ LuceneTestCase.this.name = null;
}
}
};
@@ -1497,9 +1486,16 @@ public abstract class LuceneTestCase ext
// We get here from InterceptTestCaseEvents on the 'failed' event....
public void reportAdditionalFailureInfo() {
- System.err.println("NOTE: reproduce with: ant test -Dtestcase=" + getClass().getSimpleName()
- + " -Dtestmethod=" + getName() + " -Dtests.seed=" + new ThreeLongs(staticSeed, seed, LuceneTestCaseRunner.runnerSeed)
- + reproduceWithExtraParams());
+ StringBuilder b = new StringBuilder();
+ b.append("NOTE: reproduce with: ant test -Dtestcase=")
+ .append(getClass().getSimpleName());
+ if (getName() != null) {
+ b.append(" -Dtestmethod=").append(getName());
+ }
+ b.append(" -Dtests.seed=")
+ .append(new ThreeLongs(staticSeed, seed, LuceneTestCaseRunner.runnerSeed))
+ .append(reproduceWithExtraParams());
+ System.err.println(b.toString());
}
// extra params that were overridden needed to reproduce the command