Updated Branches:
  refs/heads/master 50912ac6f -> c5d936cdc

o Return tests in the same order as they are listed in the XML file (this also 
fixes CheckTestNgVersionsIT on JDK 1.5)


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

Branch: refs/heads/master
Commit: a563e2803e48934bfc3da291a4db44a619347183
Parents: 50912ac
Author: Andreas Gudian <[email protected]>
Authored: Wed Jul 10 13:59:47 2013 +0200
Committer: Andreas Gudian <[email protected]>
Committed: Wed Jul 10 13:59:47 2013 +0200

----------------------------------------------------------------------
 .../surefire/report/SurefireReportParser.java   |  9 +++---
 .../surefire/report/TestSuiteXmlParser.java     | 30 ++++++++++++--------
 2 files changed, 22 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/a563e280/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java
----------------------------------------------------------------------
diff --git 
a/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java
 
b/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java
index feba245..db6beae 100644
--- 
a/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java
+++ 
b/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java
@@ -23,18 +23,17 @@ import java.io.File;
 import java.io.IOException;
 import java.text.NumberFormat;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
-import org.apache.maven.reporting.MavenReportException;
-import org.apache.maven.shared.utils.StringUtils;
-import org.apache.maven.shared.utils.io.DirectoryScanner;
 
 import javax.xml.parsers.ParserConfigurationException;
 
+import org.apache.maven.reporting.MavenReportException;
+import org.apache.maven.shared.utils.StringUtils;
+import org.apache.maven.shared.utils.io.DirectoryScanner;
 import org.xml.sax.SAXException;
 
 /**
@@ -85,7 +84,7 @@ public class SurefireReportParser
         TestSuiteXmlParser parser = new TestSuiteXmlParser();
         for ( File aXmlReportFileList : xmlReportFileList )
         {
-            Collection<ReportTestSuite> suites;
+            List<ReportTestSuite> suites;
 
             try
             {

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/a563e280/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java
----------------------------------------------------------------------
diff --git 
a/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java
 
b/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java
index 3f600b2..e54443d 100644
--- 
a/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java
+++ 
b/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java
@@ -22,12 +22,10 @@ package org.apache.maven.plugins.surefire.report;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
-import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.text.NumberFormat;
 import java.text.ParseException;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
@@ -53,7 +51,9 @@ public class TestSuiteXmlParser
 
     private ReportTestSuite currentSuite;
 
-    private Map<String, ReportTestSuite> classesToSuites;
+    private Map<String, Integer> classesToSuitesIndex;
+
+    private List<ReportTestSuite> suites;
 
     private final NumberFormat numberFormat = NumberFormat.getInstance( 
Locale.ENGLISH );
 
@@ -66,7 +66,7 @@ public class TestSuiteXmlParser
 
     private boolean valid;
 
-    public Collection<ReportTestSuite> parse( String xmlPath )
+    public List<ReportTestSuite> parse( String xmlPath )
         throws ParserConfigurationException, SAXException, IOException
     {
 
@@ -87,7 +87,7 @@ public class TestSuiteXmlParser
         }
     }
 
-    public Collection<ReportTestSuite> parse( InputStreamReader stream )
+    public List<ReportTestSuite> parse( InputStreamReader stream )
         throws ParserConfigurationException, SAXException, IOException
     {
         SAXParserFactory factory = SAXParserFactory.newInstance();
@@ -96,7 +96,8 @@ public class TestSuiteXmlParser
 
         valid = true;
 
-        classesToSuites = new HashMap<String, ReportTestSuite>();
+        classesToSuitesIndex = new HashMap<String, Integer>();
+        suites = new ArrayList<ReportTestSuite>();
 
         saxParser.parse( new InputSource( stream ), this );
 
@@ -104,11 +105,11 @@ public class TestSuiteXmlParser
         { // omit the defaultSuite if it's empty and there are alternatives
             if ( defaultSuite.getNumberOfTests() == 0 )
             {
-                classesToSuites.remove( defaultSuite.getFullClassName() );
+                suites.remove( classesToSuitesIndex.get( 
defaultSuite.getFullClassName() ).intValue() );
             }
         }
 
-        return classesToSuites.values();
+        return suites;
     }
 
     /**
@@ -152,7 +153,8 @@ public class TestSuiteXmlParser
                     defaultSuite.setFullClassName( fullClassName );
                 }
 
-                classesToSuites.put( defaultSuite.getFullClassName(), 
defaultSuite );
+                suites.add( defaultSuite );
+                classesToSuitesIndex.put( defaultSuite.getFullClassName(), 
suites.size() - 1 );
             }
             else if ( "testcase".equals( qName ) )
             {
@@ -167,12 +169,16 @@ public class TestSuiteXmlParser
                 // if the testcase declares its own classname, it may need to 
belong to its own suite
                 if ( fullClassName != null )
                 {
-                    currentSuite = classesToSuites.get( fullClassName );
-                    if ( currentSuite == null )
+                    Integer currentSuiteIndex = classesToSuitesIndex.get( 
fullClassName );
+                    if ( currentSuiteIndex == null )
                     {
                         currentSuite = new ReportTestSuite();
                         currentSuite.setFullClassName( fullClassName );
-                        classesToSuites.put( fullClassName, currentSuite );
+                        suites.add( currentSuite );
+                        classesToSuitesIndex.put( fullClassName, suites.size() 
- 1 );
+                    } else
+                    {
+                        currentSuite = suites.get( currentSuiteIndex );
                     }
                 }
 

Reply via email to