You are viewing a plain text version of this content. The canonical link for it is here.
Posted to surefire-commits@maven.apache.org by br...@apache.org on 2006/03/01 03:25:14 UTC

svn commit: r381872 - in /maven/surefire/branches/surefire-testng: surefire-booter/src/main/java/org/apache/maven/surefire/ surefire/src/main/java/org/apache/maven/surefire/battery/ surefire/src/main/java/org/apache/maven/surefire/battery/assertion/ su...

Author: brett
Date: Tue Feb 28 18:25:08 2006
New Revision: 381872

URL: http://svn.apache.org/viewcvs?rev=381872&view=rev
Log:
merge r381061:381871 from trunk

Added:
    maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/ForkingWriterStreamConsumer.java
      - copied unchanged from r381871, maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/ForkingWriterStreamConsumer.java
    maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/ForkingConsoleReporter.java
      - copied unchanged from r381871, maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingConsoleReporter.java
    maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/ForkingReport.java
      - copied unchanged from r381871, maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingReport.java
    maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/ForkingSummaryConsoleReporter.java
      - copied unchanged from r381871, maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingSummaryConsoleReporter.java
Removed:
    maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/util/DirectoryScanner.java
    maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/util/SelectorUtils.java
    maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/util/StringUtils.java
    maven/surefire/branches/surefire-testng/surefire/src/main/java/org/codehaus/
Modified:
    maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/SurefireBooter.java
    maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/AbstractBattery.java
    maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/DirectoryBattery.java
    maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/JUnitBattery.java
    maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryAssert.java
    maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryComparisonFailure.java
    maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java
    maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/SummaryConsoleReporter.java
    maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/XMLReporter.java

Modified: maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/SurefireBooter.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/SurefireBooter.java?rev=381872&r1=381871&r2=381872&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/SurefireBooter.java (original)
+++ maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/SurefireBooter.java Tue Feb 28 18:25:08 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
@@ -362,7 +361,7 @@
     {
         getForkOnceArgs();
 
-        return fork();
+        return fork( true );
     }
 
     private boolean runTestsForkEach()
@@ -372,13 +371,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 )
             {
@@ -389,7 +389,7 @@
         return noFailures;
     }
 
-    private boolean fork()
+    private boolean fork( boolean showHeading )
         throws Exception
     {
         Commandline cli = new Commandline();
@@ -403,7 +403,7 @@
             cli.addArguments( StringUtils.split( argLine, " " ) );
         }
 
-        if ( environmentVariables != null)
+        if ( environmentVariables != null )
         {
             Iterator iter = environmentVariables.keySet().iterator();
 
@@ -417,18 +417,13 @@
 
                 if ( debug )
                 {
-                    System.out.println( "Environment: " + key + "="  + value + " added." );
+                    System.out.println( "Environment: " + key + "=" + value + " added." );
                 }
 
             }
 
         }
 
-        if ( workingDirectory != null )
-        {
-            cli.setWorkingDirectory( workingDirectory.getAbsolutePath() );
-        }
-
         cli.createArgument().setValue( "-classpath" );
 
         cli.createArgument().setValue( surefireBooterJar + PS + plexusUtilsJar );
@@ -437,16 +432,24 @@
 
         cli.createArgument().setValue( basedir );
 
+        if ( workingDirectory != null )
+        {
+            //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;
 
@@ -463,25 +466,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;
@@ -725,12 +709,24 @@
     {
         String basedir = args[0];
 
+        String workingDirectory = null;
+
+        if ( args.length == 2 )
+        {
+            workingDirectory = args[1];
+        }
+
         ClassLoader classLoader = createForkingClassLoader( basedir );
 
 
         Thread.currentThread().setContextClassLoader( classLoader );
 
         setSystemProperties( basedir );
+
+        if ( workingDirectory != null )
+        {
+            System.setProperty( "user.dir", workingDirectory );
+        }
 
         Properties p = getSurefireProperties( basedir );
 

Modified: maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/AbstractBattery.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/AbstractBattery.java?rev=381872&r1=381871&r2=381872&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/AbstractBattery.java (original)
+++ maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/AbstractBattery.java Tue Feb 28 18:25:08 2006
@@ -16,10 +16,10 @@
  * limitations under the License.
  */
 
+import org.apache.maven.surefire.Surefire;
 import org.apache.maven.surefire.battery.assertion.BatteryAssert;
 import org.apache.maven.surefire.report.ReportEntry;
 import org.apache.maven.surefire.report.ReporterManager;
-import org.apache.maven.surefire.Surefire;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;

Modified: maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/DirectoryBattery.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/DirectoryBattery.java?rev=381872&r1=381871&r2=381872&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/DirectoryBattery.java (original)
+++ maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/DirectoryBattery.java Tue Feb 28 18:25:08 2006
@@ -16,12 +16,12 @@
  * limitations under the License.
  */
 
+import org.codehaus.plexus.util.DirectoryScanner;
+import org.codehaus.plexus.util.StringUtils;
+
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
-
-import org.apache.maven.surefire.util.DirectoryScanner;
-import org.apache.maven.surefire.util.StringUtils;
 
 public class DirectoryBattery extends AbstractBattery {
 

Modified: maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/JUnitBattery.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/JUnitBattery.java?rev=381872&r1=381871&r2=381872&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/JUnitBattery.java (original)
+++ maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/JUnitBattery.java Tue Feb 28 18:25:08 2006
@@ -21,8 +21,8 @@
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
 import java.lang.reflect.Modifier;
+import java.lang.reflect.Proxy;
 
 public class JUnitBattery
     extends AbstractBattery

Modified: maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryAssert.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryAssert.java?rev=381872&r1=381871&r2=381872&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryAssert.java (original)
+++ maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryAssert.java Tue Feb 28 18:25:08 2006
@@ -16,9 +16,8 @@
  * limitations under the License.
  */
 
-import org.apache.maven.surefire.Surefire;
-
 import junit.framework.TestCase;
+import org.apache.maven.surefire.Surefire;
 
 public class BatteryAssert extends TestCase
 {

Modified: maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryComparisonFailure.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryComparisonFailure.java?rev=381872&r1=381871&r2=381872&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryComparisonFailure.java (original)
+++ maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryComparisonFailure.java Tue Feb 28 18:25:08 2006
@@ -16,9 +16,6 @@
  * limitations under the License.
  */
 
-import org.apache.maven.surefire.battery.assertion.BatteryAssert;
-import org.apache.maven.surefire.battery.assertion.BatteryAssertionFailedError;
-
 /**
  * Thrown when an assertion equals for Strings failed.
  *

Modified: maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java?rev=381872&r1=381871&r2=381872&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java (original)
+++ maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java Tue Feb 28 18:25:08 2006
@@ -23,11 +23,11 @@
 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 +38,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 +90,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,8 +107,8 @@
             writer.print( " <<<<<<<< FAILURE !! " );
         }
         
-        writer.println();
-        
+        writer.println( "" );
+
         writer.flush();
 
         completedCount = 0;

Modified: maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/SummaryConsoleReporter.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/SummaryConsoleReporter.java?rev=381872&r1=381871&r2=381872&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/SummaryConsoleReporter.java (original)
+++ maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/SummaryConsoleReporter.java Tue Feb 28 18:25:08 2006
@@ -16,70 +16,25 @@
  * limitations under the License.
  */
 
-import java.io.BufferedOutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-
 /**
  * Summary format console reporter.
  * @author <a href="mailto:jruiz@exist.com">Johnny R. Ruiz III</a>
  * @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;
 

Modified: maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/XMLReporter.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/XMLReporter.java?rev=381872&r1=381871&r2=381872&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/XMLReporter.java (original)
+++ maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/XMLReporter.java Tue Feb 28 18:25:08 2006
@@ -16,19 +16,19 @@
  * limitations under the License.
  */
 
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+import org.codehaus.plexus.util.xml.Xpp3DomWriter;
+
+import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileOutputStream;
-import java.io.BufferedWriter;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.util.Enumeration;
 import java.util.Properties;
 import java.util.StringTokenizer;
-
-import org.codehaus.plexus.util.IOUtil;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
-import org.codehaus.plexus.util.xml.Xpp3DomWriter;
 
 
 /**