Updated Branches:
  refs/heads/master ff01970d8 -> 531826a77

[SUREFIRE-915] runOrder=failedfirst runs new tests last

Patch by Takeji Naigeon, applied with slight modifications


Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/531826a7
Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/531826a7
Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/531826a7

Branch: refs/heads/master
Commit: 531826a77fa977e54f8c7e28606cd5609e67868c
Parents: ff01970
Author: Kristian Rosenvold <krosenv...@apache.org>
Authored: Thu Oct 25 18:05:25 2012 +0200
Committer: Kristian Rosenvold <krosenv...@apache.org>
Committed: Thu Oct 25 18:05:25 2012 +0200

----------------------------------------------------------------------
 .../runorder/RunEntryStatisticsMapTest.java        |   12 ++++++++----
 .../maven/plugin/surefire/runorder/Priority.java   |   10 ++++++++--
 .../surefire/runorder/RunEntryStatisticsMap.java   |    2 +-
 3 files changed, 17 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/531826a7/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMapTest.java
----------------------------------------------------------------------
diff --git 
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMapTest.java
 
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMapTest.java
index 8224490..9d13c87 100644
--- 
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMapTest.java
+++ 
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMapTest.java
@@ -50,11 +50,12 @@ public class RunEntryStatisticsMapTest
         throws IOException
     {
         final RunEntryStatisticsMap runEntryStatisticsMap = 
RunEntryStatisticsMap.fromReader( getStatisticsFile() );
-        final List<?> list = Arrays.asList( new Class[]{ A.class, B.class, 
C.class } );
+        final List<?> list = Arrays.asList( A.class, B.class, NewClass.class, 
C.class );
         final List<?> prioritizedTestsClassRunTime = 
runEntryStatisticsMap.getPrioritizedTestsByFailureFirst( list );
         assertEquals( A.class, prioritizedTestsClassRunTime.get( 0 ) );
-        assertEquals( C.class, prioritizedTestsClassRunTime.get( 1 ) );
-        assertEquals( B.class, prioritizedTestsClassRunTime.get( 2 ) );
+        assertEquals( NewClass.class, prioritizedTestsClassRunTime.get( 1 ) );
+        assertEquals( C.class, prioritizedTestsClassRunTime.get( 2 ) );
+        assertEquals( B.class, prioritizedTestsClassRunTime.get( 3 ) );
     }
 
     private StringReader getStatisticsFile()
@@ -103,5 +104,8 @@ public class RunEntryStatisticsMapTest
     class C
     {
     }
-
+    
+    class NewClass
+    {
+    }
 }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/531826a7/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/Priority.java
----------------------------------------------------------------------
diff --git 
a/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/Priority.java
 
b/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/Priority.java
index 3264dd1..2295652 100644
--- 
a/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/Priority.java
+++ 
b/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/Priority.java
@@ -37,10 +37,15 @@ public class Priority
         this.className = className;
     }
 
-    public static Priority lowest( String className )
+    /**
+     * Returns a priority that applies to a new testclass (that has never been 
run/recorded)
+     * @param className The class name
+     * @return A priority
+     */
+    public static Priority newTestClassPriority( String className )
     {
         Priority priority1 = new Priority( className );
-        priority1.setPriority( Integer.MAX_VALUE );
+        priority1.setPriority( 0 );
         priority1.minSuccessRate = 0;
         return priority1;
     }
@@ -51,6 +56,7 @@ public class Priority
         minSuccessRate = Math.min( minSuccessRate, 
itemStat.getSuccessfulBuilds() );
     }
 
+
     public int getTotalRuntime()
     {
         return totalRuntime;

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/531826a7/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java
----------------------------------------------------------------------
diff --git 
a/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java
 
b/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java
index 51bdcd7..cd4e8eb 100644
--- 
a/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java
+++ 
b/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java
@@ -185,7 +185,7 @@ public class RunEntryStatisticsMap
             Priority pri = (Priority) classPriorities.get( clazz.getName() );
             if ( pri == null )
             {
-                pri = Priority.lowest( clazz.getName() );
+                pri = Priority.newTestClassPriority( clazz.getName() );
             }
             PrioritizedTest prioritizedTest = new PrioritizedTest( clazz, pri 
);
             tests.add( prioritizedTest );

Reply via email to