Revert "[SUREFIRE-1317] - Refactoring" This reverts commit b50ea3acf0701e4a66ad8f55930cb41dd2bfc999.
Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/e36fe19e Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/e36fe19e Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/e36fe19e Branch: refs/heads/master Commit: e36fe19ebd1e4db3ced9e853b4a60489a54e569c Parents: c12adb8 Author: Stephen Connolly <stephen.alan.conno...@gmail.com> Authored: Mon Jan 23 10:56:20 2017 +0000 Committer: Stephen Connolly <stephen.alan.conno...@gmail.com> Committed: Mon Jan 23 10:56:20 2017 +0000 ---------------------------------------------------------------------- maven-surefire-common/pom.xml | 1 - .../plugin/surefire/AbstractSurefireMojo.java | 1 - .../surefire/StartupReportConfiguration.java | 7 +-- .../surefire/booterclient/ForkStarter.java | 4 +- .../output/DeserializedStacktraceWriter.java | 2 +- .../booterclient/output/ForkClient.java | 13 +----- .../output/LostCommandsDumpSingleton.java | 7 --- .../output/ThreadedStreamConsumer.java | 49 ++++++++++++-------- .../surefire/report/DefaultReporterFactory.java | 13 +++--- .../report/NullStatelessXmlReporter.java | 2 +- .../surefire/report/StatelessXmlReporter.java | 10 ++-- .../surefire/report/TestSetRunListener.java | 2 +- .../surefire/runorder/StatisticsReporter.java | 4 +- .../report/DefaultReporterFactoryTest.java | 18 +++---- .../report/StatelessXmlReporterTest.java | 6 +-- .../maven/plugins/surefire/report/Utils.java | 1 - .../surefire/booter/MasterProcessCommand.java | 8 ++-- .../surefire/report/CategorizedReportEntry.java | 17 ++++--- .../maven/surefire/report/SafeThrowable.java | 5 -- .../surefire/util/internal/StringUtils.java | 28 ++++++++++- 20 files changed, 105 insertions(+), 93 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/maven-surefire-common/pom.xml ---------------------------------------------------------------------- diff --git a/maven-surefire-common/pom.xml b/maven-surefire-common/pom.xml index ae71f0d..54825b7 100644 --- a/maven-surefire-common/pom.xml +++ b/maven-surefire-common/pom.xml @@ -141,7 +141,6 @@ </executions> </plugin> <plugin> - <!-- Remove in 3.0 --> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java index 99eca2c..4f7744f 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java @@ -234,7 +234,6 @@ public abstract class AbstractSurefireMojo * unless overridden. */ @Parameter - // TODO use regex for fully qualified class names in 3.0 and change the filtering abilities private List<String> excludes; /** http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java index bf6e5ef..482ce00 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java @@ -171,16 +171,11 @@ public final class StartupReportConfiguration return rerunFailingTestsCount; } - public boolean hasRerunFailingTestsCount() - { - return getRerunFailingTestsCount() > 0; - } - public StatelessXmlReporter instantiateStatelessXmlReporter() { return isDisableXmlReport() ? null - : new StatelessXmlReporter( reportsDirectory, reportNameSuffix, trimStackTrace, hasRerunFailingTestsCount(), + : new StatelessXmlReporter( reportsDirectory, reportNameSuffix, trimStackTrace, rerunFailingTestsCount, testClassMethodRunHistory, xsdSchemaLocation ); } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java index b864076..05c4cc2 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java @@ -189,9 +189,9 @@ public class ForkStarter { closeable.close(); } - catch ( Throwable e ) + catch ( IOException e ) { - e.printStackTrace(); + // ignore } } } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/DeserializedStacktraceWriter.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/DeserializedStacktraceWriter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/DeserializedStacktraceWriter.java index 952feb8..8832a36 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/DeserializedStacktraceWriter.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/DeserializedStacktraceWriter.java @@ -64,6 +64,6 @@ public class DeserializedStacktraceWriter public SafeThrowable getThrowable() { - return new SafeThrowable( message ); + return new SafeThrowable( new Throwable( message ) ); } } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java index e37e82f..68ce40d 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java @@ -25,6 +25,7 @@ import org.apache.maven.plugin.surefire.report.DefaultReporterFactory; import org.apache.maven.shared.utils.cli.StreamConsumer; import org.apache.maven.surefire.report.ConsoleOutputReceiver; import org.apache.maven.surefire.report.ReportEntry; +import org.apache.maven.surefire.report.ReporterException; import org.apache.maven.surefire.report.RunListener; import org.apache.maven.surefire.report.StackTraceWriter; @@ -67,7 +68,6 @@ import static org.apache.maven.surefire.util.internal.StringUtils.isNotBlank; import static org.apache.maven.surefire.util.internal.StringUtils.unescapeBytes; import static org.apache.maven.surefire.util.internal.StringUtils.unescapeString; -// todo move to the same package with ForkStarter /** * Knows how to reconstruct *all* the state transmitted over stdout by the forked process. * @@ -284,25 +284,16 @@ public class ForkClient } catch ( NumberFormatException e ) { - // native stream sent a text e.g. GC verbose // SUREFIRE-859 LostCommandsDumpSingleton.getSingleton().dumpException( e, s, defaultReporterFactory ); } catch ( NoSuchElementException e ) { - // native stream sent a text e.g. GC verbose // SUREFIRE-859 LostCommandsDumpSingleton.getSingleton().dumpException( e, s, defaultReporterFactory ); } - catch ( IndexOutOfBoundsException e ) + catch ( ReporterException e ) { - // native stream sent a text e.g. GC verbose - // SUREFIRE-859 - LostCommandsDumpSingleton.getSingleton().dumpException( e, s, defaultReporterFactory ); - } - catch ( RuntimeException e ) - { - // e.g. ReporterException LostCommandsDumpSingleton.getSingleton().dumpException( e, s, defaultReporterFactory ); throw e; } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/LostCommandsDumpSingleton.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/LostCommandsDumpSingleton.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/LostCommandsDumpSingleton.java index a8f11e4..fa38c05 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/LostCommandsDumpSingleton.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/LostCommandsDumpSingleton.java @@ -21,15 +21,8 @@ package org.apache.maven.plugin.surefire.booterclient.output; import org.apache.maven.plugin.surefire.report.DefaultReporterFactory; import org.apache.maven.surefire.util.internal.DumpFileUtils; - import java.io.File; -/** - * Dumps lost commands and caused exceptions in {@link ForkClient}. - * - * @author <a href="mailto:tibordig...@apache.org">Tibor Digana (tibor17)</a> - * @since 2.19.2 - */ final class LostCommandsDumpSingleton { private static final LostCommandsDumpSingleton SINGLETON = new LostCommandsDumpSingleton(); http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java index c095199..ebf3edb 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java @@ -20,15 +20,12 @@ package org.apache.maven.plugin.surefire.booterclient.output; */ import org.apache.maven.shared.utils.cli.StreamConsumer; +import org.apache.maven.surefire.util.internal.DaemonThreadFactory; -import java.io.Closeable; -import java.io.IOException; import java.util.concurrent.BlockingQueue; +import java.io.Closeable; import java.util.concurrent.LinkedBlockingQueue; -import static java.util.concurrent.TimeUnit.SECONDS; -import static org.apache.maven.surefire.util.internal.DaemonThreadFactory.newDaemonThread; - /** * Knows how to reconstruct *all* the state transmitted over stdout by the forked process. * @@ -39,21 +36,27 @@ public final class ThreadedStreamConsumer { private static final String POISON = "Pioson"; + private static final int ITEM_LIMIT_BEFORE_SLEEP = 10000; + private final BlockingQueue<String> items = new LinkedBlockingQueue<String>(); private final Thread thread; private final Pumper pumper; - final class Pumper + static class Pumper implements Runnable { + private final BlockingQueue<String> queue; + private final StreamConsumer target; private volatile Throwable throwable; - Pumper( StreamConsumer target ) + + Pumper( BlockingQueue<String> queue, StreamConsumer target ) { + this.queue = queue; this.target = target; } @@ -74,7 +77,7 @@ public final class ThreadedStreamConsumer { try { - item = items.take(); + item = queue.take(); target.consumeLine( item ); } catch ( InterruptedException e ) @@ -96,8 +99,8 @@ public final class ThreadedStreamConsumer public ThreadedStreamConsumer( StreamConsumer target ) { - pumper = new Pumper( target ); - thread = newDaemonThread( pumper, ThreadedStreamConsumer.class.getSimpleName() ); + pumper = new Pumper( items, target ); + thread = DaemonThreadFactory.newDaemonThread( pumper, "ThreadedStreamConsumer" ); thread.start(); } @@ -105,29 +108,35 @@ public final class ThreadedStreamConsumer public void consumeLine( String s ) { items.add( s ); + if ( items.size() > ITEM_LIMIT_BEFORE_SLEEP ) + { + try + { + Thread.sleep( 100 ); + } + catch ( InterruptedException ignore ) + { + } + } } - public void close() throws IOException + + public void close() { try { items.add( POISON ); - if ( thread.isAlive() ) - { - thread.join( SECONDS.toMillis( 10L ) ); - thread.interrupt(); - } + thread.join(); } catch ( InterruptedException e ) { - throw new IOException( e ); + throw new RuntimeException( e ); } //noinspection ThrowableResultOfMethodCallIgnored - Throwable e = pumper.getThrowable(); - if ( e != null ) + if ( pumper.getThrowable() != null ) { - throw new IOException( e ); + throw new RuntimeException( pumper.getThrowable() ); } } } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactory.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactory.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactory.java index 1c2c68c..b4a6f30 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactory.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactory.java @@ -37,7 +37,6 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.TreeMap; import java.util.concurrent.ConcurrentLinkedQueue; @@ -219,11 +218,11 @@ public class DefaultReporterFactory * if it only has errors or failures, then count its result based on its first run * * @param reportEntries the list of test run report type for a given test - * @param hasRerunFailingTestsCount <tt>true</tt> if rerun count for failing tests is greater than zero + * @param rerunFailingTestsCount configured rerun count for failing tests * @return the type of test result */ // Use default visibility for testing - static TestResultType getTestResultType( List<ReportEntryType> reportEntries, boolean hasRerunFailingTestsCount ) + static TestResultType getTestResultType( List<ReportEntryType> reportEntries, int rerunFailingTestsCount ) { if ( reportEntries == null || reportEntries.isEmpty() ) { @@ -249,7 +248,7 @@ public class DefaultReporterFactory if ( seenFailure || seenError ) { - if ( seenSuccess & hasRerunFailingTestsCount ) + if ( seenSuccess && rerunFailingTestsCount > 0 ) { return flake; } @@ -311,7 +310,7 @@ public class DefaultReporterFactory // Update globalStatistics by iterating through mergedTestHistoryResult int completedCount = 0, skipped = 0; - for ( Entry<String, List<TestMethodStats>> entry : mergedTestHistoryResult.entrySet() ) + for ( Map.Entry<String, List<TestMethodStats>> entry : mergedTestHistoryResult.entrySet() ) { List<TestMethodStats> testMethodStats = entry.getValue(); String testClassMethodName = entry.getKey(); @@ -323,7 +322,7 @@ public class DefaultReporterFactory resultTypes.add( methodStats.getResultType() ); } - switch ( getTestResultType( resultTypes, reportConfiguration.hasRerunFailingTestsCount() ) ) + switch ( getTestResultType( resultTypes, reportConfiguration.getRerunFailingTestsCount() ) ) { case success: // If there are multiple successful runs of the same test, count all of them @@ -394,7 +393,7 @@ public class DefaultReporterFactory printed = true; } - for ( Entry<String, List<TestMethodStats>> entry : testStats.entrySet() ) + for ( Map.Entry<String, List<TestMethodStats>> entry : testStats.entrySet() ) { printed = true; List<TestMethodStats> testMethodStats = entry.getValue(); http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/NullStatelessXmlReporter.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/NullStatelessXmlReporter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/NullStatelessXmlReporter.java index e72adc7..5895c8a 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/NullStatelessXmlReporter.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/NullStatelessXmlReporter.java @@ -33,7 +33,7 @@ class NullStatelessXmlReporter private NullStatelessXmlReporter() { - super( null, null, false, false, null, null ); + super( null, null, false, 0, null, null ); } @Override http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java index 271d3f0..8ebeb96 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java @@ -92,7 +92,7 @@ public class StatelessXmlReporter private final boolean trimStackTrace; - private final boolean hasRerunFailingTestsCount; + private final int rerunFailingTestsCount; private final String xsdSchemaLocation; @@ -101,14 +101,14 @@ public class StatelessXmlReporter private final Map<String, Map<String, List<WrappedReportEntry>>> testClassMethodRunHistoryMap; public StatelessXmlReporter( File reportsDirectory, String reportNameSuffix, boolean trimStackTrace, - boolean hasRerunFailingTestsCount, + int rerunFailingTestsCount, Map<String, Map<String, List<WrappedReportEntry>>> testClassMethodRunHistoryMap, String xsdSchemaLocation ) { this.reportsDirectory = reportsDirectory; this.reportNameSuffix = reportNameSuffix; this.trimStackTrace = trimStackTrace; - this.hasRerunFailingTestsCount = hasRerunFailingTestsCount; + this.rerunFailingTestsCount = rerunFailingTestsCount; this.testClassMethodRunHistoryMap = testClassMethodRunHistoryMap; this.xsdSchemaLocation = xsdSchemaLocation; } @@ -147,7 +147,7 @@ public class StatelessXmlReporter if ( !methodEntryList.isEmpty() ) { - if ( hasRerunFailingTestsCount ) + if ( rerunFailingTestsCount > 0 ) { TestResultType resultType = getTestResultType( methodEntryList ); switch ( resultType ) @@ -268,7 +268,7 @@ public class StatelessXmlReporter testResultTypeList.add( singleRunEntry.getReportEntryType() ); } - return DefaultReporterFactory.getTestResultType( testResultTypeList, hasRerunFailingTestsCount ); + return DefaultReporterFactory.getTestResultType( testResultTypeList, rerunFailingTestsCount ); } private Map<String, List<WrappedReportEntry>> getAddMethodRunHistoryMap( String testClassName ) http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java index c5a17d3..f0f996d 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java @@ -269,7 +269,7 @@ public class TestSetRunListener } } - List<TestMethodStats> getTestMethodStats() + public List<TestMethodStats> getTestMethodStats() { return testMethodStats; } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/runorder/StatisticsReporter.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/runorder/StatisticsReporter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/runorder/StatisticsReporter.java index 3f78939..5776cc9 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/runorder/StatisticsReporter.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/runorder/StatisticsReporter.java @@ -42,11 +42,11 @@ public class StatisticsReporter this( dataFile, fromFile( dataFile ), new RunEntryStatisticsMap() ); } - protected StatisticsReporter( File dataFile, RunEntryStatisticsMap existing, RunEntryStatisticsMap newResults ) + protected StatisticsReporter( File dataFile, RunEntryStatisticsMap existing, RunEntryStatisticsMap newRestuls ) { this.dataFile = dataFile; this.existing = existing; - this.newResults = newResults; + this.newResults = newRestuls; } public synchronized void testSetCompleted() http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java index c4c2556..fbe875d 100644 --- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java +++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java @@ -185,41 +185,41 @@ public class DefaultReporterFactoryTest public void testGetTestResultType() { List<ReportEntryType> emptyList = new ArrayList<ReportEntryType>(); - assertEquals( unknown, getTestResultType( emptyList, true ) ); + assertEquals( unknown, getTestResultType( emptyList, 1 ) ); List<ReportEntryType> successList = new ArrayList<ReportEntryType>(); successList.add( ReportEntryType.SUCCESS ); successList.add( ReportEntryType.SUCCESS ); - assertEquals( success, getTestResultType( successList, true ) ); + assertEquals( success, getTestResultType( successList, 1 ) ); List<ReportEntryType> failureErrorList = new ArrayList<ReportEntryType>(); failureErrorList.add( ReportEntryType.FAILURE ); failureErrorList.add( ReportEntryType.ERROR ); - assertEquals( error, getTestResultType( failureErrorList, true ) ); + assertEquals( error, getTestResultType( failureErrorList, 1 ) ); List<ReportEntryType> errorFailureList = new ArrayList<ReportEntryType>(); errorFailureList.add( ReportEntryType.ERROR ); errorFailureList.add( ReportEntryType.FAILURE ); - assertEquals( error, getTestResultType( errorFailureList, true ) ); + assertEquals( error, getTestResultType( errorFailureList, 1 ) ); List<ReportEntryType> flakeList = new ArrayList<ReportEntryType>(); flakeList.add( ReportEntryType.SUCCESS ); flakeList.add( ReportEntryType.FAILURE ); - assertEquals( flake, getTestResultType( flakeList, true ) ); + assertEquals( flake, getTestResultType( flakeList, 1 ) ); - assertEquals( failure, getTestResultType( flakeList, false ) ); + assertEquals( failure, getTestResultType( flakeList, 0 ) ); flakeList = new ArrayList<ReportEntryType>(); flakeList.add( ReportEntryType.ERROR ); flakeList.add( ReportEntryType.SUCCESS ); flakeList.add( ReportEntryType.FAILURE ); - assertEquals( flake, getTestResultType( flakeList, true ) ); + assertEquals( flake, getTestResultType( flakeList, 1 ) ); - assertEquals( error, getTestResultType( flakeList, false ) ); + assertEquals( error, getTestResultType( flakeList, 0 ) ); List<ReportEntryType> skippedList = new ArrayList<ReportEntryType>(); skippedList.add( ReportEntryType.SKIPPED ); - assertEquals( skipped, getTestResultType( skippedList, true ) ); + assertEquals( skipped, getTestResultType( skippedList, 1 ) ); } static class DummyStackTraceWriter http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java index 553ee40..5b649e3 100644 --- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java +++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java @@ -83,7 +83,7 @@ public class StatelessXmlReporterTest public void testFileNameWithoutSuffix() { StatelessXmlReporter reporter = - new StatelessXmlReporter( reportDir, null, false, false, + new StatelessXmlReporter( reportDir, null, false, 0, new ConcurrentHashMap<String, Map<String, List<WrappedReportEntry>>>(), XSD ); reporter.cleanTestHistoryMap(); @@ -136,7 +136,7 @@ public class StatelessXmlReporterTest ReportEntryType.ERROR, 13, stdOut, stdErr ); stats.testSucceeded( t2 ); - StatelessXmlReporter reporter = new StatelessXmlReporter( reportDir, null, false, false, + StatelessXmlReporter reporter = new StatelessXmlReporter( reportDir, null, false, 0, new ConcurrentHashMap<String, Map<String, List<WrappedReportEntry>>>(), XSD ); reporter.testSetCompleted( testSetReportEntry, stats ); @@ -216,7 +216,7 @@ public class StatelessXmlReporterTest rerunStats.testSucceeded( testThreeSecondRun ); StatelessXmlReporter reporter = - new StatelessXmlReporter( reportDir, null, false, true, + new StatelessXmlReporter( reportDir, null, false, 1, new HashMap<String, Map<String, List<WrappedReportEntry>>>(), XSD ); reporter.testSetCompleted( testSetReportEntry, stats ); http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/Utils.java ---------------------------------------------------------------------- diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/Utils.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/Utils.java index d2cb04e..8fd91bf 100644 --- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/Utils.java +++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/Utils.java @@ -23,7 +23,6 @@ public final class Utils { private Utils() { - throw new IllegalStateException( "no instantiable constructor" ); } public static String toSystemNewLine( String s ) http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/surefire-api/src/main/java/org/apache/maven/surefire/booter/MasterProcessCommand.java ---------------------------------------------------------------------- diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/booter/MasterProcessCommand.java b/surefire-api/src/main/java/org/apache/maven/surefire/booter/MasterProcessCommand.java index 0bd7b89..a75aa83 100644 --- a/surefire-api/src/main/java/org/apache/maven/surefire/booter/MasterProcessCommand.java +++ b/surefire-api/src/main/java/org/apache/maven/surefire/booter/MasterProcessCommand.java @@ -19,6 +19,8 @@ package org.apache.maven.surefire.booter; * under the License. */ +import org.apache.maven.surefire.util.internal.StringUtils; + import java.io.DataInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; @@ -46,7 +48,7 @@ public enum MasterProcessCommand /** To tell a forked process that the master process is still alive. Repeated after 10 seconds. */ NOOP( 4, Void.class ); - private static final Charset ASCII = Charset.forName( "US-ASCII" ); + private static final Charset ASCII = Charset.forName( "ASCII" ); private final int id; @@ -150,7 +152,7 @@ public enum MasterProcessCommand case RUN_CLASS: return new String( data, FORK_STREAM_CHARSET_NAME ); case SHUTDOWN: - return new String( data, ASCII ); + return StringUtils.decode( data, ASCII ); default: return null; } @@ -168,7 +170,7 @@ public enum MasterProcessCommand case RUN_CLASS: return encodeStringForForkCommunication( data ); case SHUTDOWN: - return data.getBytes( ASCII ); + return StringUtils.encode( data, ASCII ); default: return new byte[0]; } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/surefire-api/src/main/java/org/apache/maven/surefire/report/CategorizedReportEntry.java ---------------------------------------------------------------------- diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/report/CategorizedReportEntry.java b/surefire-api/src/main/java/org/apache/maven/surefire/report/CategorizedReportEntry.java index 0cccd6e..77cfaf3 100644 --- a/surefire-api/src/main/java/org/apache/maven/surefire/report/CategorizedReportEntry.java +++ b/surefire-api/src/main/java/org/apache/maven/surefire/report/CategorizedReportEntry.java @@ -67,7 +67,17 @@ public class CategorizedReportEntry @Override public String getNameWithGroup() { - return isNameWithGroup() ? getName() + GROUP_PREFIX + getGroup() + GROUP_SUFIX : getName(); + StringBuilder result = new StringBuilder(); + result.append( getName() ); + + if ( getGroup() != null && !getName().equals( getGroup() ) ) + { + result.append( GROUP_PREFIX ); + result.append( getGroup() ); + result.append( GROUP_SUFIX ); + } + + return result.toString(); } public boolean equals( Object o ) @@ -97,9 +107,4 @@ public class CategorizedReportEntry result = 31 * result + ( group != null ? group.hashCode() : 0 ); return result; } - - private boolean isNameWithGroup() - { - return getGroup() != null && !getGroup().equals( getName() ); - } } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/surefire-api/src/main/java/org/apache/maven/surefire/report/SafeThrowable.java ---------------------------------------------------------------------- diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/report/SafeThrowable.java b/surefire-api/src/main/java/org/apache/maven/surefire/report/SafeThrowable.java index b3b86f2..60c7897 100644 --- a/surefire-api/src/main/java/org/apache/maven/surefire/report/SafeThrowable.java +++ b/surefire-api/src/main/java/org/apache/maven/surefire/report/SafeThrowable.java @@ -31,11 +31,6 @@ public class SafeThrowable this.target = target; } - public SafeThrowable( String message ) - { - this( new Throwable( message ) ); - } - public String getLocalizedMessage() { try http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e36fe19e/surefire-api/src/main/java/org/apache/maven/surefire/util/internal/StringUtils.java ---------------------------------------------------------------------- diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/util/internal/StringUtils.java b/surefire-api/src/main/java/org/apache/maven/surefire/util/internal/StringUtils.java index 352b5fd..830cace 100644 --- a/surefire-api/src/main/java/org/apache/maven/surefire/util/internal/StringUtils.java +++ b/surefire-api/src/main/java/org/apache/maven/surefire/util/internal/StringUtils.java @@ -57,7 +57,7 @@ import java.util.StringTokenizer; */ public final class StringUtils { - public static final String NL = System.getProperty( "line.separator", "\n" ); + public static final String NL = System.getProperty( "line.separator" ); private static final byte[] HEX_CHARS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; @@ -345,6 +345,32 @@ public final class StringUtils return ByteBuffer.wrap( out, 0, outPos ); } + public static String decode( byte[] toDecode, Charset charset ) + { + try + { + // @todo use new JDK 1.6 constructor String(byte bytes[], Charset charset) + return new String( toDecode, charset.name() ); + } + catch ( UnsupportedEncodingException e ) + { + throw new RuntimeException( "The JVM must support Charset " + charset, e ); + } + } + + public static byte[] encode( String toEncode, Charset charset ) + { + try + { + // @todo use new JDK 1.6 method getBytes(Charset charset) + return toEncode.getBytes( charset.name() ); + } + catch ( UnsupportedEncodingException e ) + { + throw new RuntimeException( "The JVM must support Charset " + charset, e ); + } + } + public static byte[] encodeStringForForkCommunication( String string ) { try