You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kr...@apache.org on 2011/06/06 21:47:24 UTC

svn commit: r1132734 - in /maven/surefire/trunk: surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/ surefire-integration-tests/src/test/resources/junit-ignore/ surefire-integration-tests/src/test/resources/junit-ignore/src/ surefir...

Author: krosenvold
Date: Mon Jun  6 19:47:23 2011
New Revision: 1132734

URL: http://svn.apache.org/viewvc?rev=1132734&view=rev
Log:
[SUREFIRE-744] NPE with multiple class-level ignores for parallel runner.

Main patch by Aslak Knutsen, applied unmodified. Prefered to extend existing integration test over
the unit test included in the issue patch

Added:
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/pom.xml   (contents, props changed)
      - copied, changed from r1126721, maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-ignore/pom.xml
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/junit/
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/junit/ignore/
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/junit/ignore/BasicTest.java
      - copied, changed from r1126721, maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-ignore/src/test/java/junit44/ignore/BasicTest.java
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/junit/ignore/ClassLevelIgnore1Test.java
      - copied, changed from r1126721, maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-ignore/src/test/java/junit44/ignore/BasicTest.java
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/junit/ignore/ClassLevelIgnore2Test.java   (contents, props changed)
      - copied, changed from r1126721, maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-ignore/src/test/java/junit44/ignore/BasicTest.java
Removed:
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-ignore/pom.xml
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-ignore/src/test/java/junit44/ignore/BasicTest.java
Modified:
    maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Junit4IgnoreIT.java
    maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreRunListener.java

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Junit4IgnoreIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Junit4IgnoreIT.java?rev=1132734&r1=1132733&r2=1132734&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Junit4IgnoreIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Junit4IgnoreIT.java Mon Jun  6 19:47:23 2011
@@ -29,7 +29,7 @@ public class Junit4IgnoreIT
 {
     public Junit4IgnoreIT()
     {
-        super( "/junit44-ignore");
+        super( "/junit-ignore");
     }
 
     public void testJunit4Ignore()
@@ -37,6 +37,18 @@ public class Junit4IgnoreIT
     {
         executeTest();
         verifyErrorFreeLog();
-        assertTestSuiteResults( 1, 0, 0, 1 );
+        assertTestSuiteResults( 3, 0, 0, 3 );
     }
+
+    public void testJunit47ParallelIgnore()
+        throws Exception
+    {
+
+        addGoal( "-Djunit.version=4.8.1" );
+        addGoal( "-Dsurefire.parallel=classes" );
+        executeTest();
+        verifyErrorFreeLog();
+        assertTestSuiteResults( 3, 0, 0, 3 );
+    }
+
 }

Copied: maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/pom.xml (from r1126721, maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-ignore/pom.xml)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/pom.xml?p2=maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/pom.xml&p1=maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-ignore/pom.xml&r1=1126721&r2=1132734&rev=1132734&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-ignore/pom.xml (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/pom.xml Mon Jun  6 19:47:23 2011
@@ -24,15 +24,20 @@
   <modelVersion>4.0.0</modelVersion>
 
   <groupId>org.apache.maven.plugins.surefire</groupId>
-  <artifactId>junit44-ignore</artifactId>
+  <artifactId>junit-ignore</artifactId>
   <version>1.0-SNAPSHOT</version>
   <name>Test of @Ignore annotation</name>
 
+  <properties>
+    <junit.version>4.4</junit.version>
+    <surefire.parallel></surefire.parallel>
+  </properties>
+
   <dependencies>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
-      <version>4.4</version>
+      <version>${junit.version}</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
@@ -50,9 +55,11 @@
       <plugin>
         <artifactId>maven-surefire-plugin</artifactId>
         <version>${surefire.version}</version>
+        <configuration>
+          <parallel>${surefire.parallel}</parallel>
+          <threadCount>3</threadCount>
+        </configuration>
       </plugin>
-      
     </plugins>
   </build>
-
 </project>

Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/junit/ignore/BasicTest.java (from r1126721, maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-ignore/src/test/java/junit44/ignore/BasicTest.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/junit/ignore/BasicTest.java?p2=maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/junit/ignore/BasicTest.java&p1=maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-ignore/src/test/java/junit44/ignore/BasicTest.java&r1=1126721&r2=1132734&rev=1132734&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-ignore/src/test/java/junit44/ignore/BasicTest.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/junit/ignore/BasicTest.java Mon Jun  6 19:47:23 2011
@@ -1,11 +1,10 @@
-package junit44.ignore;
-import static org.hamcrest.core.Is.*;
-import static org.hamcrest.core.IsNull.*;
+package junit.ignore;
 import org.junit.Assert;
-import org.junit.Test;
 import org.junit.Ignore;
+import org.junit.Test;
 
 
+@Ignore("ignore this test")
 public class BasicTest
 {
 

Copied: maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/junit/ignore/ClassLevelIgnore1Test.java (from r1126721, maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-ignore/src/test/java/junit44/ignore/BasicTest.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/junit/ignore/ClassLevelIgnore1Test.java?p2=maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/junit/ignore/ClassLevelIgnore1Test.java&p1=maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-ignore/src/test/java/junit44/ignore/BasicTest.java&r1=1126721&r2=1132734&rev=1132734&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-ignore/src/test/java/junit44/ignore/BasicTest.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/junit/ignore/ClassLevelIgnore1Test.java Mon Jun  6 19:47:23 2011
@@ -1,15 +1,14 @@
-package junit44.ignore;
-import static org.hamcrest.core.Is.*;
-import static org.hamcrest.core.IsNull.*;
+package junit.ignore;
+
 import org.junit.Assert;
-import org.junit.Test;
 import org.junit.Ignore;
+import org.junit.Test;
 
 
-public class BasicTest
+@Ignore("ignore this test")
+public class ClassLevelIgnore1Test
 {
 
-    @Ignore("ignore this test")
     @Test
     public void testIgnorable()
     {

Copied: maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/junit/ignore/ClassLevelIgnore2Test.java (from r1126721, maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-ignore/src/test/java/junit44/ignore/BasicTest.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/junit/ignore/ClassLevelIgnore2Test.java?p2=maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/junit/ignore/ClassLevelIgnore2Test.java&p1=maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-ignore/src/test/java/junit44/ignore/BasicTest.java&r1=1126721&r2=1132734&rev=1132734&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-ignore/src/test/java/junit44/ignore/BasicTest.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/junit/ignore/ClassLevelIgnore2Test.java Mon Jun  6 19:47:23 2011
@@ -1,15 +1,14 @@
-package junit44.ignore;
-import static org.hamcrest.core.Is.*;
-import static org.hamcrest.core.IsNull.*;
+package junit.ignore;
+
 import org.junit.Assert;
-import org.junit.Test;
 import org.junit.Ignore;
+import org.junit.Test;
 
 
-public class BasicTest
+@Ignore("ignore this test")
+public class ClassLevelIgnore2Test
 {
 
-    @Ignore("ignore this test")
     @Test
     public void testIgnorable()
     {

Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit-ignore/src/test/java/junit/ignore/ClassLevelIgnore2Test.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreRunListener.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreRunListener.java?rev=1132734&r1=1132733&r2=1132734&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreRunListener.java (original)
+++ maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreRunListener.java Mon Jun  6 19:47:23 2011
@@ -19,11 +19,10 @@ package org.apache.maven.surefire.junitc
  * under the License.
  */
 
-import org.apache.maven.surefire.common.junit4.JUnit4RunListener;
-import org.apache.maven.surefire.report.RunListener;
-
 import java.util.ArrayList;
 import java.util.Map;
+import org.apache.maven.surefire.common.junit4.JUnit4RunListener;
+import org.apache.maven.surefire.report.RunListener;
 
 import org.junit.runner.Description;
 import org.junit.runner.Result;
@@ -70,7 +69,7 @@ public class JUnitCoreRunListener
         Class<?> itemTestClass = null;
         for ( Description item : children )
         {
-            if ( item.isTest() )
+            if ( item.isTest() && item.getMethodName() != null )
             {
                 testSet.incrementTestMethodCount();
                 if ( itemTestClass == null )
@@ -82,6 +81,10 @@ public class JUnitCoreRunListener
             {
                 fillTestCountMap( item );
             }
+            else
+            {
+                classMethodCounts.put( item.getClassName(), testSet );
+            }
         }
         if ( itemTestClass != null )
         {