Author: jkf Date: Sat Jul 8 05:30:43 2006 New Revision: 420102 URL: http://svn.apache.org/viewvc?rev=420102&view=rev Log: Give better information in case of timeout for JUnit test,as requested in Bug 39946.
Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTaskMirrorImpl.java Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java?rev=420102&r1=420101&r2=420102&view=diff ============================================================================== --- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java (original) +++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java Sat Jul 8 05:30:43 2006 @@ -1336,7 +1336,7 @@ */ private void logTimeout(FormatterElement[] feArray, JUnitTest test) { - logVmExit(feArray, test, "Timeout occurred"); + logVmExit(feArray, test, "Timeout occurred."); } /** @@ -1347,7 +1347,7 @@ * @since Ant 1.7 */ private void logVmCrash(FormatterElement[] feArray, JUnitTest test) { - logVmExit(feArray, test, "forked Java VM exited abnormally"); + logVmExit(feArray, test, "Forked Java VM exited abnormally."); } /** Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTaskMirrorImpl.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTaskMirrorImpl.java?rev=420102&r1=420101&r2=420102&view=diff ============================================================================== --- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTaskMirrorImpl.java (original) +++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTaskMirrorImpl.java Sat Jul 8 05:30:43 2006 @@ -19,7 +19,7 @@ import java.io.OutputStream; import junit.framework.AssertionFailedError; -import junit.framework.Test; +import junit.framework.TestCase; import junit.framework.TestResult; import org.apache.tools.ant.AntClassLoader; @@ -31,28 +31,22 @@ * @since 1.7 */ public final class JUnitTaskMirrorImpl implements JUnitTaskMirror { - + private final JUnitTask task; - + public JUnitTaskMirrorImpl(JUnitTask task) { this.task = task; } - + public void addVmExit(JUnitTest test, JUnitTaskMirror.JUnitResultFormatterMirror _formatter, OutputStream out, final String message) { JUnitResultFormatter formatter = (JUnitResultFormatter) _formatter; formatter.setOutput(out); formatter.startTestSuite(test); - //the trick to integrating test output to the formatter, is to //create a special test class that asserts an error //and tell the formatter that it raised. - Test t = new Test() { - public int countTestCases() { return 1; } - public void run(TestResult r) { - throw new AssertionFailedError(message); - } - }; + TestCase t = new VmExitErrorTest(message, test); formatter.startTest(t); formatter.addError(t, new AssertionFailedError(message)); formatter.endTestSuite(test); @@ -68,5 +62,31 @@ public JUnitTaskMirror.SummaryJUnitResultFormatterMirror newSummaryJUnitResultFormatter() { return new SummaryJUnitResultFormatter(); } - + + static class VmExitErrorTest extends TestCase { + + private String message; + private JUnitTest test; + + VmExitErrorTest(String aMessage, JUnitTest anOriginalTest) { + message = aMessage; + test = anOriginalTest; + } + + public int countTestCases() { + return 1; + } + + public void run(TestResult r) { + throw new AssertionFailedError(message); + } + + public String getName() { + return test.getName(); + } + + public String toString() { + return test.getName(); + } + } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]