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 2012/12/10 19:47:38 UTC
git commit: [SUREFIRE-934] remove getLocatedClasses() and size() from
TestsToRun
Updated Branches:
refs/heads/master 06801079f -> f35f1efb5
[SUREFIRE-934] remove getLocatedClasses() and size() from TestsToRun
.., to avoid potential programming errors with forkMode=onceperthread
Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/f35f1efb
Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/f35f1efb
Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/f35f1efb
Branch: refs/heads/master
Commit: f35f1efb55696b0202ff042d5d1058c5c5b3cc73
Parents: 0680107
Author: agudian <an...@gmail.com>
Authored: Sun Dec 9 23:17:53 2012 +0100
Committer: Kristian Rosenvold <kr...@apache.org>
Committed: Mon Dec 10 19:41:09 2012 +0100
----------------------------------------------------------------------
.../surefire/util/DefaultRunOrderCalculator.java | 9 ++++-
.../apache/maven/surefire/util/LazyTestsToRun.java | 19 ---------
.../org/apache/maven/surefire/util/TestsToRun.java | 10 -----
.../apache/maven/surefire/util/TestsToRunTest.java | 12 +++--
.../surefire/testng/TestNGDirectoryTestSuite.java | 30 ++++++++++----
5 files changed, 36 insertions(+), 44 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/f35f1efb/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultRunOrderCalculator.java
----------------------------------------------------------------------
diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultRunOrderCalculator.java b/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultRunOrderCalculator.java
index 52ad510..b1950c4 100644
--- a/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultRunOrderCalculator.java
+++ b/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultRunOrderCalculator.java
@@ -24,6 +24,7 @@ import java.util.Arrays;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
+import java.util.Iterator;
import java.util.List;
import org.apache.maven.plugin.surefire.runorder.RunEntryStatisticsMap;
import org.apache.maven.surefire.testset.RunOrderParameters;
@@ -54,7 +55,13 @@ public class DefaultRunOrderCalculator
public TestsToRun orderTestClasses( TestsToRun scannedClasses )
{
- List result = new ArrayList( Arrays.asList( scannedClasses.getLocatedClasses() ) );
+
+ List result = new ArrayList( 500 );
+
+ for ( Iterator it = scannedClasses.iterator(); it.hasNext(); )
+ {
+ result.add(it.next());
+ }
orderTestClasses( result, runOrder.length != 0 ? runOrder[0] : null );
return new TestsToRun( result );
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/f35f1efb/surefire-api/src/main/java/org/apache/maven/surefire/util/LazyTestsToRun.java
----------------------------------------------------------------------
diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/util/LazyTestsToRun.java b/surefire-api/src/main/java/org/apache/maven/surefire/util/LazyTestsToRun.java
index 874c971..3a6dba7 100644
--- a/surefire-api/src/main/java/org/apache/maven/surefire/util/LazyTestsToRun.java
+++ b/surefire-api/src/main/java/org/apache/maven/surefire/util/LazyTestsToRun.java
@@ -36,9 +36,6 @@ import org.apache.maven.surefire.booter.ForkingRunListener;
* {@link #iterator()} returns an Iterator that blocks on calls to
* {@link Iterator#hasNext()} until new classes are available, or no more
* classes will be available.
- * <p/>
- * The methods {@link #getLocatedClasses()} and {@link #size()} will throw an
- * {@link UnsupportedOperationException}.
*
* @author Andreas Gudian
*/
@@ -161,22 +158,6 @@ public class LazyTestsToRun
return new BlockingIterator();
}
- /**
- * Unsupported. Use {@link #iterator()} instead.
- */
- public int size()
- {
- throw new UnsupportedOperationException( "use method iterator()" );
- }
-
- /**
- * Unsupported. Use {@link #iterator()} instead.
- */
- public Class[] getLocatedClasses()
- {
- throw new UnsupportedOperationException( "use method iterator()" );
- }
-
/* (non-Javadoc)
* @see org.apache.maven.surefire.util.TestsToRun#toString()
*/
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/f35f1efb/surefire-api/src/main/java/org/apache/maven/surefire/util/TestsToRun.java
----------------------------------------------------------------------
diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/util/TestsToRun.java b/surefire-api/src/main/java/org/apache/maven/surefire/util/TestsToRun.java
index 734783e..210aa5a 100644
--- a/surefire-api/src/main/java/org/apache/maven/surefire/util/TestsToRun.java
+++ b/surefire-api/src/main/java/org/apache/maven/surefire/util/TestsToRun.java
@@ -64,16 +64,6 @@ public class TestsToRun
return new TestsToRun( Arrays.asList( new Class[]{ clazz } ) );
}
- public int size()
- {
- return locatedClasses.size();
- }
-
- public Class[] getLocatedClasses()
- {
- return (Class[]) locatedClasses.toArray( new Class[locatedClasses.size()] );
- }
-
/**
* Returns an iterator over the located java.lang.Class objects
*
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/f35f1efb/surefire-api/src/test/java/org/apache/maven/surefire/util/TestsToRunTest.java
----------------------------------------------------------------------
diff --git a/surefire-api/src/test/java/org/apache/maven/surefire/util/TestsToRunTest.java b/surefire-api/src/test/java/org/apache/maven/surefire/util/TestsToRunTest.java
index 8aacfb1..d0a0ca0 100644
--- a/surefire-api/src/test/java/org/apache/maven/surefire/util/TestsToRunTest.java
+++ b/surefire-api/src/test/java/org/apache/maven/surefire/util/TestsToRunTest.java
@@ -20,6 +20,7 @@ package org.apache.maven.surefire.util;
*/
import java.util.Arrays;
+import java.util.Iterator;
import junit.framework.TestCase;
@@ -34,11 +35,12 @@ public class TestsToRunTest
throws Exception
{
TestsToRun testsToRun = new TestsToRun( Arrays.asList( new Class[]{ T1.class, T2.class } ) );
- assertEquals( 2, testsToRun.size() );
- Class[] stringJUnitCoreTestSetMap = testsToRun.getLocatedClasses();
- assertEquals( stringJUnitCoreTestSetMap[0], T1.class );
- assertEquals( stringJUnitCoreTestSetMap[1], T2.class );
- assertEquals( 2, stringJUnitCoreTestSetMap.length );
+ Iterator it = testsToRun.iterator();
+ assertTrue( it.hasNext() );
+ assertEquals( it.next(), T1.class );
+ assertTrue( it.hasNext() );
+ assertEquals( it.next(), T2.class );
+ assertFalse( it.hasNext() );
}
class T1
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/f35f1efb/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java
----------------------------------------------------------------------
diff --git a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java
index 78b2e64..899cade 100644
--- a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java
+++ b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java
@@ -100,17 +100,32 @@ public class TestNGDirectoryTestSuite
{
executeLazy( testsToRun, reporterManagerFactory );
}
- else if ( testsToRun.size() > 1 )
+ else if ( containsAtLeast( testsToRun, 2 ) )
{
executeMulti( testsToRun, reporterManagerFactory );
}
- else if ( testsToRun.size() == 1 )
+ else if ( containsAtLeast( testsToRun, 1 ) )
{
Class testClass = (Class) testsToRun.iterator().next();
executeSingleClass( reporterManagerFactory, testClass );
}
}
+
+ private boolean containsAtLeast( TestsToRun testsToRun, int atLeast ) {
+ Iterator it = testsToRun.iterator();
+ for ( int i = 0; i < atLeast; i++ )
+ {
+ if ( !it.hasNext() )
+ {
+ return false;
+ }
+ it.next();
+ }
+
+ return true;
+ }
+
private void executeSingleClass( ReporterFactory reporterManagerFactory, Class testClass )
throws TestSetFailedException
{
@@ -159,10 +174,9 @@ public class TestNGDirectoryTestSuite
{
List testNgTestClasses = new ArrayList();
List junitTestClasses = new ArrayList();
- Class[] allClasses = testsToRun.getLocatedClasses();
- for ( int i = 0; i < allClasses.length; i++ )
+ for ( Iterator it = testsToRun.iterator(); it.hasNext(); )
{
- Class c = allClasses[i];
+ Class c = (Class) it.next();
if ( isJUnitTest( c ) )
{
junitTestClasses.add( c );
@@ -181,7 +195,6 @@ public class TestNGDirectoryTestSuite
junitReportsDirectory = new File( reportsDirectory, "testng-junit-results" );
}
-// RunListener reporterManager = new SynchronizedReporterManager( reporterFactory.createReporter() );
RunListener reporterManager = reporterFactory.createReporter();
ConsoleOutputCapture.startCapture( (ConsoleOutputReceiver) reporterManager );
startTestSuite( reporterManager, this );
@@ -303,11 +316,10 @@ public class TestNGDirectoryTestSuite
final TestsToRun scanned = scanResult.applyFilter( new NonAbstractClassFilter(), classLoader );
final TestsToRun testsToRun = runOrderCalculator.orderTestClasses( scanned );
- Class[] locatedClasses = testsToRun.getLocatedClasses();
- for ( int i = 0; i < locatedClasses.length; i++ )
+ for ( Iterator it = testsToRun.iterator(); it.hasNext(); )
{
- Class testClass = locatedClasses[i];
+ Class testClass = (Class) it.next();
TestNGTestSet testSet = new TestNGTestSet( testClass );
if ( testSets.containsKey( testSet.getName() ) )