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;