Author: jkf
Date: Sat Jul  8 06:27:33 2006
New Revision: 420106

URL: http://svn.apache.org/viewvc?rev=420106&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
    
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitVersionHelper.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=420106&r1=420105&r2=420106&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 06:27:33 2006
@@ -1336,7 +1336,7 @@
      */
 
     private void logTimeout(FormatterElement[] feArray, JUnitTest test) {
-        logVmExit(feArray, test, "Timeout occurred.");
+        logVmExit(feArray, test, "Timeout occurred. Please note the time in 
the report does not reflect the time until the timeout.");
     }
 
     /**
@@ -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. Please 
note the time in the report does not reflect the time until the VM exit.");
     }
 
     /**
@@ -1375,38 +1375,28 @@
             for (int i = 0; i < feArray.length; i++) {
                 FormatterElement fe = feArray[i];
                 File outFile = getOutput(fe, test);
-                JUnitTaskMirror.JUnitResultFormatterMirror formatter = 
+                JUnitTaskMirror.JUnitResultFormatterMirror formatter =
                     fe.createFormatter(classLoader);
                 if (outFile != null && formatter != null) {
                     try {
                         OutputStream out = new FileOutputStream(outFile);
-                        addVmExit(test, formatter, out, message);
+                        delegate.addVmExit(test, formatter, out, message);
                     } catch (IOException e) {
                         // ignore
                     }
                 }
             }
             if (summary) {
-                JUnitTaskMirror.SummaryJUnitResultFormatterMirror f = 
+                JUnitTaskMirror.SummaryJUnitResultFormatterMirror f =
                     delegate.newSummaryJUnitResultFormatter();
                 
f.setWithOutAndErr("withoutanderr".equalsIgnoreCase(summaryValue));
-                addVmExit(test, f, getDefaultOutput(), message);
+                delegate.addVmExit(test, f, getDefaultOutput(), message);
             }
         } finally {
             if (classLoader != null) {
                 classLoader.resetThreadContextLoader();
             }
         }
-    }
-
-    /**
-     * Adds the actual error message to the formatter.
-     * Only used from the logVmExit method.
-     * @since Ant 1.7
-     */
-    private void addVmExit(JUnitTest test, 
JUnitTaskMirror.JUnitResultFormatterMirror formatter,
-                           OutputStream out, final String message) {
-        delegate.addVmExit(test, formatter, out, message);
     }
 
     /**

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=420106&r1=420105&r2=420106&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 06:27:33 2006
@@ -38,9 +38,9 @@
         this.task = task;
     }
 
-    public void addVmExit(JUnitTest test, 
JUnitTaskMirror.JUnitResultFormatterMirror _formatter,
+    public void addVmExit(JUnitTest test, 
JUnitTaskMirror.JUnitResultFormatterMirror aFormatter,
             OutputStream out, final String message) {
-        JUnitResultFormatter formatter = (JUnitResultFormatter) _formatter;
+        JUnitResultFormatter formatter = (JUnitResultFormatter) aFormatter;
         formatter.setOutput(out);
         formatter.startTestSuite(test);
         //the trick to integrating test output to the formatter, is to
@@ -81,7 +81,7 @@
             throw new AssertionFailedError(message);
         }
 
-        public String getName() {
+        String getClassName() {
             return test.getName();
         }
 

Modified: 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitVersionHelper.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitVersionHelper.java?rev=420106&r1=420105&r2=420106&view=diff
==============================================================================
--- 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitVersionHelper.java
 (original)
+++ 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitVersionHelper.java
 Sat Jul  8 06:27:33 2006
@@ -24,7 +24,6 @@
 /**
  * Work around for some changes to the public JUnit API between
  * different JUnit releases.
- *
  */
 public class JUnitVersionHelper {
 
@@ -99,6 +98,9 @@
      */
     static String getTestCaseClassName(Test test) {
         String className = test.getClass().getName();
+        if (test instanceof JUnitTaskMirrorImpl.VmExitErrorTest) {
+            className = ((JUnitTaskMirrorImpl.VmExitErrorTest) 
test).getClassName();
+        } else
         if (className.equals("junit.framework.JUnit4TestCaseFacade")) {
             // JUnit 4 wraps solo tests this way. We can extract
             // the original test name with a little hack.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to