Author: jvanzyl
Date: Mon Feb 27 15:31:56 2006
New Revision: 381487

URL: http://svn.apache.org/viewcvs?rev=381487&view=rev
Log:
[MSUREFIRE-53] in progress

Added:
    
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/ForkingWriterStreamConsumer.java
   (with props)
    
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingConsoleReporter.java
   (with props)
    
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingReport.java
   (with props)
    
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingSummaryConsoleReporter.java
   (with props)
Removed:
    maven/surefire/trunk/surefire/src/main/java/org/codehaus/
Modified:
    
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/SurefireBooter.java
    
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java
    
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/SummaryConsoleReporter.java

Added: 
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/ForkingWriterStreamConsumer.java
URL: 
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/ForkingWriterStreamConsumer.java?rev=381487&view=auto
==============================================================================
--- 
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/ForkingWriterStreamConsumer.java
 (added)
+++ 
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/ForkingWriterStreamConsumer.java
 Mon Feb 27 15:31:56 2006
@@ -0,0 +1,50 @@
+package org.apache.maven.surefire;
+
+import org.codehaus.plexus.util.cli.StreamConsumer;
+import org.apache.maven.surefire.report.ForkingReport;
+
+import java.io.PrintWriter;
+import java.io.Writer;
+
+/**
+ * @author Jason van Zyl
+ * @version $Revision:$
+ */
+public class ForkingWriterStreamConsumer
+    implements StreamConsumer
+{
+    private PrintWriter printWriter;
+
+    private int standardPrefixLength;
+
+    private int headingPrefixLength;
+
+    boolean showHeading;
+
+    public ForkingWriterStreamConsumer( Writer writer, boolean showHeading )
+    {
+        this.showHeading = showHeading;
+
+        printWriter = new PrintWriter( writer );
+
+        standardPrefixLength = ForkingReport.FORKING_PREFIX_STANDARD.length();
+
+        headingPrefixLength = ForkingReport.FORKING_PREFIX_HEADING.length();
+    }
+
+    public void consumeLine( String line )
+    {
+        if ( line.startsWith( ForkingReport.FORKING_PREFIX_HEADING ) && 
showHeading )
+        {
+            printWriter.println( line.substring( headingPrefixLength ) );
+
+            printWriter.flush();
+        }
+        else if ( line.startsWith( ForkingReport.FORKING_PREFIX_STANDARD ) )
+        {
+            printWriter.println( line.substring( standardPrefixLength ) );
+
+            printWriter.flush();
+        }
+    }
+}

Propchange: 
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/ForkingWriterStreamConsumer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/ForkingWriterStreamConsumer.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: 
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/SurefireBooter.java
URL: 
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/SurefireBooter.java?rev=381487&r1=381486&r2=381487&view=diff
==============================================================================
--- 
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/SurefireBooter.java
 (original)
+++ 
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/SurefireBooter.java
 Mon Feb 27 15:31:56 2006
@@ -16,10 +16,16 @@
  * limitations under the License.
  */
 
+import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
+import org.codehaus.plexus.util.cli.Commandline;
+import org.codehaus.plexus.util.cli.StreamConsumer;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import java.io.StringWriter;
+import java.io.OutputStreamWriter;
 import java.io.Writer;
 import java.lang.reflect.Method;
 import java.net.URL;
@@ -31,13 +37,6 @@
 import java.util.Map;
 import java.util.Properties;
 
-import org.codehaus.plexus.util.StringUtils;
-import org.codehaus.plexus.util.cli.CommandLineException;
-import org.codehaus.plexus.util.cli.CommandLineUtils;
-import org.codehaus.plexus.util.cli.Commandline;
-import org.codehaus.plexus.util.cli.StreamConsumer;
-import org.codehaus.plexus.util.cli.WriterStreamConsumer;
-
 /**
  * @author Jason van Zyl
  * @author Emmanuel Venisse
@@ -314,7 +313,7 @@
     {
         getForkOnceArgs();
 
-        return fork();
+        return fork( true );
     }
 
     private boolean runTestsForkEach()
@@ -324,13 +323,14 @@
 
         List testClasses = getTestClasses();
 
-        for ( Iterator i = testClasses.iterator(); i.hasNext(); )
+        for ( int i = 0; i < testClasses.size(); i++ )
         {
-            String testClass = (String) i.next();
+            String testClass = (String) testClasses.get( i );
 
             getForkPerTestArgs( testClass );
 
-            boolean result = fork();
+            // Only show the heading for the first run
+            boolean result = fork( i == 0 );
 
             if ( !result )
             {
@@ -341,7 +341,7 @@
         return noFailures;
     }
 
-    private boolean fork()
+    private boolean fork( boolean showHeading )
         throws Exception
     {
         Commandline cli = new Commandline();
@@ -355,7 +355,7 @@
             cli.addArguments( StringUtils.split( argLine, " " ) );
         }
 
-        if ( environmentVariables != null)
+        if ( environmentVariables != null )
         {
             Iterator iter = environmentVariables.keySet().iterator();
 
@@ -369,7 +369,7 @@
 
                 if ( debug )
                 {
-                    System.out.println( "Environment: " + key + "="  + value + 
" added." );
+                    System.out.println( "Environment: " + key + "=" + value + 
" added." );
                 }
 
             }
@@ -388,19 +388,20 @@
         {
             //both cli's working directory and  system property "user.dir" 
must have the same value
             cli.setWorkingDirectory( workingDirectory.getAbsolutePath() );
+
             cli.createArgument().setValue( workingDirectory.getAbsolutePath() 
);
         }
-        
+
         if ( debug )
         {
             System.out.println( Commandline.toString( cli.getCommandline() ) );
         }
 
-        Writer stringWriter = new StringWriter();
+        Writer consoleWriter = new OutputStreamWriter( System.out );
 
-        StreamConsumer out = new WriterStreamConsumer( stringWriter );
+        StreamConsumer out = new ForkingWriterStreamConsumer( consoleWriter, 
showHeading );
 
-        StreamConsumer err = new WriterStreamConsumer( stringWriter );
+        StreamConsumer err = new ForkingWriterStreamConsumer( consoleWriter, 
showHeading );
 
         int returnCode;
 
@@ -417,25 +418,6 @@
             throw new SurefireBooterForkException( "Error while executing 
forked tests.", e );
         }
 
-        /*
-
-        The standard reporting modules should do this work ... jvz
-        
-        String string = stringWriter.toString();
-
-        if ( string != null && string.length() > 0 )
-        {
-            StringReader sr = new StringReader( string );
-
-            BufferedReader br = new BufferedReader( sr );
-
-            while ( ( string = br.readLine() ) != null )
-            {
-                System.out.println( string );
-            }
-        }
-        */
-
         if ( returnCode != 0 )
         {
             return false;
@@ -678,9 +660,9 @@
         throws Exception
     {
         String basedir = args[0];
-        
+
         String workingDirectory = null;
-        
+
         if ( args.length == 2 )
         {
             workingDirectory = args[1];
@@ -692,7 +674,7 @@
         Thread.currentThread().setContextClassLoader( classLoader );
 
         setSystemProperties( basedir );
-        
+
         if ( workingDirectory != null )
         {
             System.setProperty( "user.dir", workingDirectory );

Modified: 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java
URL: 
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java?rev=381487&r1=381486&r2=381487&view=diff
==============================================================================
--- 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java
 (original)
+++ 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java
 Mon Feb 27 15:31:56 2006
@@ -20,14 +20,18 @@
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 
+// 1. only output the report
+// 2. prevent the header from coming out everytime
+// 3. have a summary at the end of the forked run
+
 public class ConsoleReporter
     extends AbstractReporter
 {
-    private static final int BUFFER_SIZE = 4096;
+    protected static final int BUFFER_SIZE = 4096;
 
-    private PrintWriter writer;
+    protected PrintWriter writer;
     
-    private long batteryStartTime;
+    protected long batteryStartTime;
 
     public ConsoleReporter()
     {
@@ -38,43 +42,47 @@
     //
     // ----------------------------------------------------------------------
 
-    public void writeMessage( String message )
+    public void println( String message )
     {
         writer.println( message );
 
         writer.flush();
     }
 
+    public void print( String message )
+    {
+        writer.print( message );
+
+        writer.flush();
+    }
+
     // ----------------------------------------------------------------------
     // Run
     // ----------------------------------------------------------------------
 
     public void runStarting( int testCount )
     {
-        writer.println();
-        writer.println( 
"-------------------------------------------------------" );
-        writer.println( " T E S T S" );
-        writer.println( 
"-------------------------------------------------------" );
-        writer.flush();
+        println( "" );
+        println( "-------------------------------------------------------" );
+        println( " T E S T S" );
+        println( "-------------------------------------------------------" );
     }
 
     public void runAborted( ReportEntry report )
     {
-        writer.println( "RUN ABORTED" );
-        writer.println( report.getSource().getClass().getName() );
-        writer.println( report.getName() );
-        writer.println( report.getMessage() );
-        writer.println( report.getThrowable().getMessage() );
-        writer.flush();
+        println( "RUN ABORTED" );
+        println( report.getSource().getClass().getName() );
+        println( report.getName() );
+        println( report.getMessage() );
+        println( report.getThrowable().getMessage() );
     }
     public void batteryAborted( ReportEntry report )
     {
-        writer.println( "BATTERY ABORTED" );
-        writer.println( report.getSource().getClass().getName() );
-        writer.println( report.getName() );
-        writer.println( report.getMessage() );
-        writer.println( report.getThrowable().getMessage() );
-        writer.flush();
+        println( "BATTERY ABORTED" );
+        println( report.getSource().getClass().getName() );
+        println( report.getName() );
+        println( report.getMessage() );
+        println( report.getThrowable().getMessage() );
     }
 
     // ----------------------------------------------------------------------
@@ -86,14 +94,14 @@
     {
         batteryStartTime = System.currentTimeMillis();
         
-        writer.println( "[surefire] Running " + report.getName() );
+        println( "[surefire] Running " + report.getName() );
     }
 
     public void batteryCompleted( ReportEntry report )
     {
         long runTime = System.currentTimeMillis() - batteryStartTime;
 
-        writer.print( "[surefire] Tests run: " + completedCount +
+        print( "[surefire] Tests run: " + completedCount +
                              ", Failures: " + failures +
                              ", Errors: " + errors +
                              ", Time elapsed: " + elapsedTimeAsString( runTime 
) + " sec" );
@@ -103,9 +111,7 @@
             writer.print( " <<<<<<<< FAILURE !! " );
         }
         
-        writer.println();
-        
-        writer.flush();
+        writer.println( "" );
 
         completedCount = 0;
 

Added: 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingConsoleReporter.java
URL: 
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingConsoleReporter.java?rev=381487&view=auto
==============================================================================
--- 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingConsoleReporter.java
 (added)
+++ 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingConsoleReporter.java
 Mon Feb 27 15:31:56 2006
@@ -0,0 +1,44 @@
+package org.apache.maven.surefire.report;
+
+public class ForkingConsoleReporter
+    extends ConsoleReporter
+{
+    public void println( String message )
+    {
+        writer.write( ForkingReport.FORKING_PREFIX_STANDARD );
+
+        writer.println( message );
+
+        writer.flush();
+    }
+
+    public void print( String message )
+    {
+        writer.write( ForkingReport.FORKING_PREFIX_STANDARD );
+
+        writer.print( message );
+
+        writer.flush();
+    }
+
+    public void runStarting( int testCount )
+    {
+        writer.print( ForkingReport.FORKING_PREFIX_HEADING );
+
+        writer.println( "" );
+
+        writer.print( ForkingReport.FORKING_PREFIX_HEADING );
+
+        writer.println( 
"-------------------------------------------------------" );
+
+        writer.print( ForkingReport.FORKING_PREFIX_HEADING );
+
+        writer.println( " T E S T S" );
+
+        writer.print( ForkingReport.FORKING_PREFIX_HEADING );
+
+        writer.println( 
"-------------------------------------------------------" );
+
+        writer.flush();
+    }
+}

Propchange: 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingConsoleReporter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingConsoleReporter.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingReport.java
URL: 
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingReport.java?rev=381487&view=auto
==============================================================================
--- 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingReport.java
 (added)
+++ 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingReport.java
 Mon Feb 27 15:31:56 2006
@@ -0,0 +1,12 @@
+package org.apache.maven.surefire.report;
+
+/**
+ * @author Jason van Zyl
+ * @version $Revision:$
+ */
+public interface ForkingReport
+{
+    static final String FORKING_PREFIX_STANDARD = "@SL";
+
+    static final String FORKING_PREFIX_HEADING = "@HL";    
+}

Propchange: 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingReport.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingReport.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingSummaryConsoleReporter.java
URL: 
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingSummaryConsoleReporter.java?rev=381487&view=auto
==============================================================================
--- 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingSummaryConsoleReporter.java
 (added)
+++ 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingSummaryConsoleReporter.java
 Mon Feb 27 15:31:56 2006
@@ -0,0 +1,33 @@
+package org.apache.maven.surefire.report;
+
+import org.apache.maven.surefire.report.SummaryConsoleReporter;
+import org.apache.maven.surefire.report.ForkingReport;
+
+/**
+ * Summary format console reporter.
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Johnny R. Ruiz III</a>
+ * @version $Id$
+ */
+public class ForkingSummaryConsoleReporter
+    extends ForkingConsoleReporter
+{
+    public void batteryStarting( ReportEntry report )
+        throws Exception
+    {
+    }
+
+    public void batteryCompleted( ReportEntry report )
+    {
+        if ( failures > 0 || errors > 0 )
+        {
+            println( "[surefire] " + report.getName() + " <<<<<<<< FAILURE !! 
" );
+        }
+
+        completedCount = 0;
+
+        errors = 0;
+
+        failures = 0;
+    }
+}

Propchange: 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingSummaryConsoleReporter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingSummaryConsoleReporter.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/SummaryConsoleReporter.java
URL: 
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/SummaryConsoleReporter.java?rev=381487&r1=381486&r2=381487&view=diff
==============================================================================
--- 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/SummaryConsoleReporter.java
 (original)
+++ 
maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/SummaryConsoleReporter.java
 Mon Feb 27 15:31:56 2006
@@ -26,60 +26,19 @@
  * @version $Id$
  */
 public class SummaryConsoleReporter
-    extends AbstractReporter
+    extends ConsoleReporter
 {
-    private static final int BUFFER_SIZE = 4096;
-
-    private PrintWriter writer;
-    
-    public SummaryConsoleReporter()
-    {
-        writer = new PrintWriter( new OutputStreamWriter( new 
BufferedOutputStream( System.out, BUFFER_SIZE ) ) );
-    }
-
-    public void writeMessage( String message )
-    {
-        writer.println( message );
-        writer.flush();
-    }
-    
-    public void runStarting( int testCount )
-    {
-        writer.println();
-        writer.println( 
"-------------------------------------------------------" );
-        writer.println( " T E S T S" );
-        writer.println( 
"-------------------------------------------------------" );
-        writer.flush();
-    }
-
-    public void runAborted( ReportEntry report )
-    {
-        writer.println( "RUN ABORTED" );
-        writer.println( report.getSource().getClass().getName() );
-        writer.println( report.getName() );
-        writer.println( report.getMessage() );
-        writer.println( report.getThrowable().getMessage() );
-        writer.flush();
-    }
-    
-    public void batteryAborted( ReportEntry report )
+    public void batteryStarting( ReportEntry report )
+        throws Exception
     {
-        writer.println( "BATTERY ABORTED" );
-        writer.println( report.getSource().getClass().getName() );
-        writer.println( report.getName() );
-        writer.println( report.getMessage() );
-        writer.println( report.getThrowable().getMessage() );
-        writer.flush();
     }
 
     public void batteryCompleted( ReportEntry report )
     {
         if ( failures > 0 || errors > 0 )
         {
-            writer.println( "[surefire] " + report.getName() + " <<<<<<<< 
FAILURE !! " );
+            println( "[surefire] " + report.getName() + " <<<<<<<< FAILURE !! 
" );
         }
-        
-        writer.flush();
 
         completedCount = 0;
 


Reply via email to