This is an automated email from the ASF dual-hosted git repository. tibordigana pushed a commit to branch test-run-id2 in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
commit 7f92897c458251fc730d3c66bfddd01340e7f3b9 Author: tibor.digana <tibordig...@apache.org> AuthorDate: Sat Feb 12 21:30:30 2022 +0100 [SUREFIRE-2011] Updated abstractions which helps associating standard out/err with a test --- .../surefire/booterclient/output/ForkClient.java | 11 ++++---- .../surefire/report/DefaultReporterFactory.java | 4 +-- .../plugin/surefire/report/TestSetRunListener.java | 19 +++++++------ .../report/TestcycleConsoleOutputReceiver.java | 4 +-- .../booterclient/ForkingRunListenerTest.java | 9 ++++--- .../plugin/surefire/booterclient/MockReporter.java | 5 ++-- .../booterclient/TestSetMockReporterFactory.java | 4 +-- .../maven/plugin/surefire/extensions/E2ETest.java | 4 +-- .../api/booter/ForkingReporterFactory.java | 4 +-- .../surefire/api/booter/ForkingRunListener.java | 5 ++-- .../surefire/api/report/ConsoleOutputCapture.java | 6 ++--- .../ConsoleOutputReceiverForCurrentThread.java | 8 +++--- .../maven/surefire/api/report/ReporterFactory.java | 2 +- ...OutputReceiver.java => TestOutputReceiver.java} | 2 +- .../{ReporterFactory.java => TestRunListener.java} | 21 ++------------- .../surefire/booter/SurefireReflectorTest.java | 8 +++--- .../surefire/common/junit4/JUnit4RunListener.java | 22 ++++++++++----- .../maven/surefire/common/junit4/MockReporter.java | 9 +++++-- .../junitplatform/JUnitPlatformProvider.java | 15 +++++------ .../surefire/junitplatform/RunListenerAdapter.java | 15 ++++++++--- .../junitplatform/JUnitPlatformProviderTest.java | 31 +++++++++++----------- .../junitplatform/RunListenerAdapterTest.java | 6 ++--- .../maven/surefire/junit/JUnit3Provider.java | 6 ++--- .../maven/surefire/junit4/JUnit4Provider.java | 9 ++++--- .../surefire/junitcore/ConcurrentRunListener.java | 17 ++++++------ .../surefire/junitcore/JUnitCoreProvider.java | 3 ++- .../surefire/junitcore/JUnitCoreRunListener.java | 4 +-- .../maven/surefire/junitcore/LogicalStream.java | 4 +-- .../junitcore/NonConcurrentRunListener.java | 10 +++---- .../maven/surefire/junitcore/TestMethod.java | 10 +++---- .../apache/maven/surefire/junitcore/TestSet.java | 8 +++--- .../junitcore/ConcurrentRunListenerTest.java | 4 +-- .../maven/surefire/junitcore/JUnitCoreTester.java | 9 +++---- .../maven/surefire/junitcore/MockReporter.java | 10 +++++-- .../maven/surefire/junitcore/Surefire746Test.java | 8 +++--- .../maven/surefire/testng/TestNGProvider.java | 7 +++-- 36 files changed, 165 insertions(+), 158 deletions(-) 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 9a2065b..7963980 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 @@ -23,9 +23,10 @@ import org.apache.maven.plugin.surefire.booterclient.lazytestprovider.Notifiable import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; import org.apache.maven.plugin.surefire.report.DefaultReporterFactory; import org.apache.maven.surefire.api.event.Event; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.extensions.EventHandler; import org.apache.maven.surefire.api.booter.MasterProcessChannelEncoder; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; +import org.apache.maven.surefire.api.report.TestOutputReceiver; import org.apache.maven.surefire.api.report.ReportEntry; import org.apache.maven.surefire.api.report.RunListener; import org.apache.maven.surefire.api.report.RunMode; @@ -78,7 +79,7 @@ public class ForkClient private final int forkNumber; - private volatile RunListener testSetReporter; + private volatile TestRunListener testSetReporter; /** * Written by one Thread and read by another: Main Thread and ForkStarter's Thread. @@ -379,7 +380,7 @@ public class ForkClient /** * Only {@link #getConsoleOutputReceiver()} may call this method in another Thread. */ - private RunListener getTestSetReporter() + private TestRunListener getTestSetReporter() { if ( testSetReporter == null ) { @@ -423,9 +424,9 @@ public class ForkClient return getTestSetReporter(); } - public ConsoleOutputReceiver getConsoleOutputReceiver() + public TestOutputReceiver getConsoleOutputReceiver() { - return (ConsoleOutputReceiver) getTestSetReporter(); + return getTestSetReporter(); } private ConsoleLogger getOrCreateConsoleLogger() 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 693e63d..39dd86c 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 @@ -29,7 +29,7 @@ import org.apache.maven.surefire.extensions.StatelessReportEventListener; import org.apache.maven.surefire.extensions.StatelessTestsetInfoConsoleReportEventListener; import org.apache.maven.surefire.extensions.StatelessTestsetInfoFileReportEventListener; import org.apache.maven.surefire.api.report.ReporterFactory; -import org.apache.maven.surefire.api.report.RunListener; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.report.RunStatistics; import org.apache.maven.surefire.api.report.StackTraceWriter; import org.apache.maven.surefire.api.suite.RunResult; @@ -97,7 +97,7 @@ public class DefaultReporterFactory } @Override - public RunListener createReporter() + public TestRunListener createReporter() { TestSetRunListener testSetRunListener = new TestSetRunListener( createConsoleReporter(), 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 9ab198c..4e6e461 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 @@ -31,10 +31,9 @@ import org.apache.maven.surefire.extensions.ConsoleOutputReportEventListener; import org.apache.maven.surefire.extensions.StatelessReportEventListener; import org.apache.maven.surefire.extensions.StatelessTestsetInfoConsoleReportEventListener; import org.apache.maven.surefire.extensions.StatelessTestsetInfoFileReportEventListener; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.api.report.ReportEntry; -import org.apache.maven.surefire.api.report.RunListener; import org.apache.maven.surefire.api.report.RunMode; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.api.report.TestSetReportEntry; import static org.apache.maven.plugin.surefire.report.ReportEntryType.ERROR; @@ -51,13 +50,13 @@ import static java.util.Objects.requireNonNull; * @author Kristian Rosenvold */ public class TestSetRunListener - implements RunListener, ConsoleOutputReceiver, ConsoleLogger + implements TestRunListener, ConsoleLogger { private final Queue<TestMethodStats> testMethodStats = new ConcurrentLinkedQueue<>(); private final TestSetStats detailsForThis; - private final ConsoleOutputReportEventListener consoleOutputReceiver; + private final ConsoleOutputReportEventListener testOutputReceiver; private final boolean briefOrPlainFormat; @@ -83,7 +82,7 @@ public class TestSetRunListener StatelessTestsetInfoFileReportEventListener<WrappedReportEntry, TestSetStats> fileReporter, StatelessReportEventListener<WrappedReportEntry, TestSetStats> simpleXMLReporter, - ConsoleOutputReportEventListener consoleOutputReceiver, + ConsoleOutputReportEventListener testOutputReceiver, StatisticsReporter statisticsReporter, boolean trimStackTrace, boolean isPlainFormat, boolean briefOrPlainFormat, Object lock ) { @@ -91,7 +90,7 @@ public class TestSetRunListener this.fileReporter = fileReporter; this.statisticsReporter = statisticsReporter; this.simpleXMLReporter = simpleXMLReporter; - this.consoleOutputReceiver = consoleOutputReceiver; + this.testOutputReceiver = testOutputReceiver; this.briefOrPlainFormat = briefOrPlainFormat; detailsForThis = new TestSetStats( trimStackTrace, isPlainFormat ); this.lock = lock; @@ -184,7 +183,7 @@ public class TestSetRunListener { Utf8RecodingDeferredFileOutputStream stream = stdout ? testStdOut : testStdErr; stream.write( output, newLine ); - consoleOutputReceiver.writeTestOutput( output, newLine, stdout ); + testOutputReceiver.writeTestOutput( output, newLine, stdout ); } } catch ( IOException e ) @@ -198,7 +197,7 @@ public class TestSetRunListener { detailsForThis.testSetStart(); consoleReporter.testSetStarting( report ); - consoleOutputReceiver.testSetStarting( report ); + testOutputReceiver.testSetStarting( report ); } private void clearCapture() @@ -217,7 +216,7 @@ public class TestSetRunListener simpleXMLReporter.testSetCompleted( wrap, detailsForThis ); statisticsReporter.testSetCompleted(); consoleReporter.testSetCompleted( wrap, detailsForThis, testResults ); - consoleOutputReceiver.testSetCompleted( wrap ); + testOutputReceiver.testSetCompleted( wrap ); consoleReporter.reset(); wrap.getStdout().free(); @@ -317,7 +316,7 @@ public class TestSetRunListener public void close() { - consoleOutputReceiver.close(); + testOutputReceiver.close(); } private void addTestMethodStats() diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestcycleConsoleOutputReceiver.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestcycleConsoleOutputReceiver.java index 3d32073..90cef51 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestcycleConsoleOutputReceiver.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestcycleConsoleOutputReceiver.java @@ -19,15 +19,15 @@ package org.apache.maven.plugin.surefire.report; * under the License. */ +import org.apache.maven.surefire.api.report.TestOutputReceiver; import org.apache.maven.surefire.extensions.ConsoleOutputReportEventListener; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.api.report.TestSetReportEntry; /** * @author Kristian Rosenvold */ public interface TestcycleConsoleOutputReceiver - extends ConsoleOutputReceiver, ConsoleOutputReportEventListener + extends TestOutputReceiver, ConsoleOutputReportEventListener { void testSetStarting( TestSetReportEntry reportEntry ); diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkingRunListenerTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkingRunListenerTest.java index 9853825..1e7a067 100644 --- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkingRunListenerTest.java +++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkingRunListenerTest.java @@ -31,14 +31,15 @@ import org.apache.maven.surefire.extensions.EventHandler; import org.apache.maven.surefire.api.fork.ForkNodeArguments; import org.apache.maven.surefire.extensions.util.CountdownCloseable; import org.apache.maven.surefire.api.report.CategorizedReportEntry; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.api.report.LegacyPojoStackTraceWriter; import org.apache.maven.surefire.api.report.ReportEntry; import org.apache.maven.surefire.api.report.ReporterException; import org.apache.maven.surefire.api.report.RunListener; import org.apache.maven.surefire.api.report.SimpleReportEntry; import org.apache.maven.surefire.api.report.StackTraceWriter; +import org.apache.maven.surefire.api.report.TestOutputReceiver; import org.apache.maven.surefire.api.report.TestSetReportEntry; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.api.util.internal.WritableBufferedByteChannel; import javax.annotation.Nonnull; @@ -180,7 +181,7 @@ public class ForkingRunListenerTest public void testConsoleOutput() throws Exception { final StandardTestRun standardTestRun = new StandardTestRun(); - ConsoleOutputReceiver directConsoleReporter = (ConsoleOutputReceiver) standardTestRun.run(); + TestOutputReceiver directConsoleReporter = standardTestRun.run(); directConsoleReporter.writeTestOutput( "HeyYou", false, true ); standardTestRun.assertExpected( MockReporter.STDOUT, "HeyYou" ); } @@ -461,7 +462,7 @@ public class ForkingRunListenerTest } } - private RunListener createForkingRunListener() + private TestRunListener createForkingRunListener() { WritableBufferedByteChannel channel = (WritableBufferedByteChannel) newChannel( printStream ); return new ForkingRunListener( new EventChannelEncoder( channel ), false ); @@ -471,7 +472,7 @@ public class ForkingRunListenerTest { private MockReporter reporter; - public RunListener run() + public TestRunListener run() throws ReporterException { reset(); diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/MockReporter.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/MockReporter.java index aab5731..337131d 100644 --- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/MockReporter.java +++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/MockReporter.java @@ -20,9 +20,8 @@ package org.apache.maven.plugin.surefire.booterclient; */ import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.api.report.ReportEntry; -import org.apache.maven.surefire.api.report.RunListener; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.api.report.TestSetReportEntry; import org.apache.maven.surefire.api.report.RunMode; @@ -34,7 +33,7 @@ import java.util.concurrent.atomic.AtomicInteger; * Internal tests use only. */ public class MockReporter - implements RunListener, ConsoleLogger, ConsoleOutputReceiver + implements TestRunListener, ConsoleLogger { private final List<String> events = new ArrayList<>(); diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/TestSetMockReporterFactory.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/TestSetMockReporterFactory.java index ace0e5d..7b05fb0 100644 --- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/TestSetMockReporterFactory.java +++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/TestSetMockReporterFactory.java @@ -25,7 +25,7 @@ import org.apache.maven.plugin.surefire.extensions.SurefireStatelessReporter; import org.apache.maven.plugin.surefire.extensions.SurefireStatelessTestsetInfoReporter; import org.apache.maven.plugin.surefire.report.DefaultReporterFactory; import org.apache.maven.plugin.surefire.log.api.NullConsoleLogger; -import org.apache.maven.surefire.api.report.RunListener; +import org.apache.maven.surefire.api.report.TestRunListener; import java.io.File; @@ -43,7 +43,7 @@ public class TestSetMockReporterFactory } @Override - public RunListener createReporter() + public TestRunListener createReporter() { return new MockReporter(); } diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/E2ETest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/E2ETest.java index d2a9c20..d059dd2 100644 --- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/E2ETest.java +++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/E2ETest.java @@ -25,7 +25,7 @@ import org.apache.maven.plugin.surefire.log.api.NullConsoleLogger; import org.apache.maven.surefire.api.booter.Command; import org.apache.maven.surefire.api.event.Event; import org.apache.maven.surefire.api.fork.ForkNodeArguments; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; +import org.apache.maven.surefire.api.report.TestOutputReceiver; import org.apache.maven.surefire.booter.spi.EventChannelEncoder; import org.apache.maven.surefire.booter.spi.SurefireMasterProcessChannelProcessorFactory; import org.apache.maven.surefire.extensions.CommandReader; @@ -133,7 +133,7 @@ public class E2ETest @Override public void run() { - ConsoleOutputReceiver target = new ConsoleOutputReceiver() + TestOutputReceiver target = new TestOutputReceiver() { @Override public void writeTestOutput( String output, boolean newLine, boolean stdout ) diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/ForkingReporterFactory.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/ForkingReporterFactory.java index 31bbfa5..e53eeb4 100644 --- a/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/ForkingReporterFactory.java +++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/ForkingReporterFactory.java @@ -20,7 +20,7 @@ package org.apache.maven.surefire.api.booter; */ import org.apache.maven.surefire.api.report.ReporterFactory; -import org.apache.maven.surefire.api.report.RunListener; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.api.suite.RunResult; /** @@ -43,7 +43,7 @@ public class ForkingReporterFactory } @Override - public RunListener createReporter() + public TestRunListener createReporter() { return new ForkingRunListener( eventChannel, trimstackTrace ); } diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/ForkingRunListener.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/ForkingRunListener.java index 169f358..0a44cfc 100644 --- a/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/ForkingRunListener.java +++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/ForkingRunListener.java @@ -20,10 +20,9 @@ package org.apache.maven.surefire.api.booter; */ import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.api.report.ConsoleStream; import org.apache.maven.surefire.api.report.ReportEntry; -import org.apache.maven.surefire.api.report.RunListener; import org.apache.maven.surefire.api.report.RunMode; import org.apache.maven.surefire.api.report.TestSetReportEntry; @@ -48,7 +47,7 @@ import static java.util.Objects.requireNonNull; * @author Kristian Rosenvold */ public class ForkingRunListener - implements RunListener, ConsoleLogger, ConsoleOutputReceiver, ConsoleStream + implements TestRunListener, ConsoleLogger, ConsoleStream { private final MasterProcessChannelEncoder target; diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ConsoleOutputCapture.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ConsoleOutputCapture.java index 2298e7f..96a8eff 100644 --- a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ConsoleOutputCapture.java +++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ConsoleOutputCapture.java @@ -32,7 +32,7 @@ import static java.lang.System.setOut; */ public final class ConsoleOutputCapture { - public static void startCapture( ConsoleOutputReceiver target ) + public static void startCapture( TestOutputReceiver target ) { setOut( new ForwardingPrintStream( true, target ) ); setErr( new ForwardingPrintStream( false, target ) ); @@ -42,9 +42,9 @@ public final class ConsoleOutputCapture extends PrintStream { private final boolean isStdout; - private final ConsoleOutputReceiver target; + private final TestOutputReceiver target; - ForwardingPrintStream( boolean stdout, ConsoleOutputReceiver target ) + ForwardingPrintStream( boolean stdout, TestOutputReceiver target ) { super( new NullOutputStream() ); isStdout = stdout; diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ConsoleOutputReceiverForCurrentThread.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ConsoleOutputReceiverForCurrentThread.java index 4843630..0874b2b 100644 --- a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ConsoleOutputReceiverForCurrentThread.java +++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ConsoleOutputReceiverForCurrentThread.java @@ -24,21 +24,21 @@ package org.apache.maven.surefire.api.report; */ public final class ConsoleOutputReceiverForCurrentThread { - private static final ThreadLocal<ConsoleOutputReceiver> CURRENT + private static final ThreadLocal<TestOutputReceiver> CURRENT = new InheritableThreadLocal<>(); private ConsoleOutputReceiverForCurrentThread() { } - public static ConsoleOutputReceiver get() + public static TestOutputReceiver get() { return CURRENT.get(); } - public static void set( ConsoleOutputReceiver consoleOutputReceiver ) + public static void set( TestOutputReceiver testOutputReceiver ) { - CURRENT.set( consoleOutputReceiver ); + CURRENT.set( testOutputReceiver ); } public static void remove() diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ReporterFactory.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ReporterFactory.java index af9057e..1e21236 100644 --- a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ReporterFactory.java +++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ReporterFactory.java @@ -33,7 +33,7 @@ public interface ReporterFactory * * @return A reporter instance */ - RunListener createReporter(); + TestRunListener createReporter(); /** * Closes the factory, freeing resources allocated in the factory. diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ConsoleOutputReceiver.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/TestOutputReceiver.java similarity index 97% rename from surefire-api/src/main/java/org/apache/maven/surefire/api/report/ConsoleOutputReceiver.java rename to surefire-api/src/main/java/org/apache/maven/surefire/api/report/TestOutputReceiver.java index 99e47f4..1bd7279 100644 --- a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ConsoleOutputReceiver.java +++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/TestOutputReceiver.java @@ -23,7 +23,7 @@ package org.apache.maven.surefire.api.report; * A receiver of stdout/sterr output from running tests. This receiver knows how to associate * the output with a given testset. */ -public interface ConsoleOutputReceiver +public interface TestOutputReceiver { /** diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ReporterFactory.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/TestRunListener.java similarity index 65% copy from surefire-api/src/main/java/org/apache/maven/surefire/api/report/ReporterFactory.java copy to surefire-api/src/main/java/org/apache/maven/surefire/api/report/TestRunListener.java index af9057e..29eaf35 100644 --- a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ReporterFactory.java +++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/TestRunListener.java @@ -19,27 +19,10 @@ package org.apache.maven.surefire.api.report; * under the License. */ -import org.apache.maven.surefire.api.suite.RunResult; - /** - * Used by the providers to request (per-thread) run listeners. * - * @author Kristian Rosenvold */ -public interface ReporterFactory +public interface TestRunListener + extends RunListener, TestOutputReceiver { - /** - * Creates a reporter. - * - * @return A reporter instance - */ - RunListener createReporter(); - - /** - * Closes the factory, freeing resources allocated in the factory. - * - * @return The run result - */ - RunResult close(); - } diff --git a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/SurefireReflectorTest.java b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/SurefireReflectorTest.java index b4290a7..1f275b5 100644 --- a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/SurefireReflectorTest.java +++ b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/SurefireReflectorTest.java @@ -25,7 +25,7 @@ import org.apache.maven.surefire.api.provider.ProviderParameters; import org.apache.maven.surefire.api.provider.SurefireProvider; import org.apache.maven.surefire.api.report.ReporterConfiguration; import org.apache.maven.surefire.api.report.ReporterFactory; -import org.apache.maven.surefire.api.report.RunListener; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.api.suite.RunResult; import org.apache.maven.surefire.api.testset.DirectoryScannerParameters; import org.apache.maven.surefire.api.testset.RunOrderParameters; @@ -55,7 +55,7 @@ public class SurefireReflectorTest ReporterFactory factory = new ReporterFactory() { @Override - public RunListener createReporter() + public TestRunListener createReporter() { return null; } @@ -255,7 +255,7 @@ public class SurefireReflectorTest ReporterFactory reporterFactory = new ReporterFactory() { @Override - public RunListener createReporter() + public TestRunListener createReporter() { return null; } @@ -279,7 +279,7 @@ public class SurefireReflectorTest ReporterFactory reporterFactory = new ReporterFactory() { @Override - public RunListener createReporter() + public TestRunListener createReporter() { return null; } diff --git a/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4RunListener.java b/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4RunListener.java index 7f4e97e..d316395 100644 --- a/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4RunListener.java +++ b/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4RunListener.java @@ -20,14 +20,16 @@ package org.apache.maven.surefire.common.junit4; */ import org.apache.maven.surefire.api.report.ReportEntry; -import org.apache.maven.surefire.api.report.RunListener; import org.apache.maven.surefire.api.report.SimpleReportEntry; import org.apache.maven.surefire.api.report.StackTraceWriter; +import org.apache.maven.surefire.api.report.TestOutputReceiver; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.api.testset.TestSetFailedException; import org.apache.maven.surefire.api.util.internal.ClassMethod; import org.junit.runner.Description; import org.junit.runner.Result; import org.junit.runner.notification.Failure; +import org.junit.runner.notification.RunListener; import static org.apache.maven.surefire.common.junit4.JUnit4ProviderUtil.isFailureInsideJUnitItself; import static org.apache.maven.surefire.common.junit4.JUnit4ProviderUtil.toClassMethod; @@ -41,12 +43,14 @@ import static org.apache.maven.surefire.api.report.SimpleReportEntry.withExcepti * */ public class JUnit4RunListener - extends org.junit.runner.notification.RunListener + extends RunListener + implements TestOutputReceiver { - protected final RunListener reporter; + protected final TestRunListener reporter; /** - * This flag is set after a failure has occurred so that a {@link RunListener#testSucceeded} event is not fired. + * This flag is set after a failure has occurred so that a + * {@link org.apache.maven.surefire.api.report.RunListener#testSucceeded} event is not fired. * This is necessary because JUnit4 always fires a * {@link org.junit.runner.notification.RunListener#testRunFinished(Result)} * event-- even if there was a failure. @@ -58,7 +62,7 @@ public class JUnit4RunListener * * @param reporter the reporter to log testing events to */ - public JUnit4RunListener( RunListener reporter ) + public JUnit4RunListener( TestRunListener reporter ) { this.reporter = reporter; } @@ -163,7 +167,7 @@ public class JUnit4RunListener } /** - * Delegates to {@link RunListener#testExecutionSkippedByUser()}. + * Delegates to {@link org.apache.maven.surefire.api.report.RunListener#testExecutionSkippedByUser()}. */ public void testExecutionSkippedByUser() { @@ -193,4 +197,10 @@ public class JUnit4RunListener } } } + + @Override + public void writeTestOutput( String output, boolean newLine, boolean stdout ) + { + reporter.writeTestOutput( output, newLine, stdout ); + } } diff --git a/surefire-providers/common-junit4/src/test/java/org/apache/maven/surefire/common/junit4/MockReporter.java b/surefire-providers/common-junit4/src/test/java/org/apache/maven/surefire/common/junit4/MockReporter.java index 39947fc..cf543b3 100644 --- a/surefire-providers/common-junit4/src/test/java/org/apache/maven/surefire/common/junit4/MockReporter.java +++ b/surefire-providers/common-junit4/src/test/java/org/apache/maven/surefire/common/junit4/MockReporter.java @@ -20,8 +20,8 @@ package org.apache.maven.surefire.common.junit4; */ import org.apache.maven.surefire.api.report.ReportEntry; -import org.apache.maven.surefire.api.report.RunListener; import org.apache.maven.surefire.api.report.RunMode; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.api.report.TestSetReportEntry; import java.util.ArrayList; @@ -32,7 +32,7 @@ import java.util.concurrent.atomic.AtomicInteger; * Internal tests use only. */ final class MockReporter - implements RunListener + implements TestRunListener { private final List<String> events = new ArrayList<>(); @@ -127,4 +127,9 @@ final class MockReporter public void testAssumptionFailure( ReportEntry report ) { } + + @Override + public void writeTestOutput( String output, boolean newLine, boolean stdout ) + { + } } diff --git a/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProvider.java b/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProvider.java index 8ff29c3..6c4e9ed 100644 --- a/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProvider.java +++ b/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProvider.java @@ -50,10 +50,8 @@ import java.util.logging.Logger; import org.apache.maven.surefire.api.provider.AbstractProvider; import org.apache.maven.surefire.api.provider.ProviderParameters; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.api.report.ReporterException; import org.apache.maven.surefire.api.report.ReporterFactory; -import org.apache.maven.surefire.api.report.RunListener; import org.apache.maven.surefire.api.suite.RunResult; import org.apache.maven.surefire.api.testset.TestListResolver; import org.apache.maven.surefire.api.testset.TestSetFailedException; @@ -122,20 +120,20 @@ public class JUnitPlatformProvider final RunResult runResult; try { - RunListener runListener = reporterFactory.createReporter(); - startCapture( ( ConsoleOutputReceiver ) runListener ); + RunListenerAdapter adapter = new RunListenerAdapter( reporterFactory.createReporter() ); + startCapture( adapter ); setupJunitLogger(); if ( forkTestSet instanceof TestsToRun ) { - invokeAllTests( (TestsToRun) forkTestSet, runListener ); + invokeAllTests( (TestsToRun) forkTestSet, adapter ); } else if ( forkTestSet instanceof Class ) { - invokeAllTests( fromClass( ( Class<?> ) forkTestSet ), runListener ); + invokeAllTests( fromClass( ( Class<?> ) forkTestSet ), adapter ); } else if ( forkTestSet == null ) { - invokeAllTests( scanClasspath(), runListener ); + invokeAllTests( scanClasspath(), adapter ); } else { @@ -167,9 +165,8 @@ public class JUnitPlatformProvider return parameters.getRunOrderCalculator().orderTestClasses( scannedClasses ); } - private void invokeAllTests( TestsToRun testsToRun, RunListener runListener ) + private void invokeAllTests( TestsToRun testsToRun, RunListenerAdapter adapter ) { - RunListenerAdapter adapter = new RunListenerAdapter( runListener ); try { execute( testsToRun, adapter ); diff --git a/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/RunListenerAdapter.java b/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/RunListenerAdapter.java index 101c6b8..59f6787 100644 --- a/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/RunListenerAdapter.java +++ b/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/RunListenerAdapter.java @@ -34,11 +34,12 @@ import java.util.concurrent.ConcurrentMap; import java.util.regex.Pattern; import java.util.stream.Stream; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.report.PojoStackTraceWriter; -import org.apache.maven.surefire.api.report.RunListener; import org.apache.maven.surefire.api.report.SafeThrowable; import org.apache.maven.surefire.api.report.SimpleReportEntry; import org.apache.maven.surefire.api.report.StackTraceWriter; +import org.apache.maven.surefire.api.report.TestOutputReceiver; import org.junit.platform.engine.TestExecutionResult; import org.junit.platform.engine.TestSource; import org.junit.platform.engine.support.descriptor.ClassSource; @@ -51,17 +52,17 @@ import org.junit.platform.launcher.TestPlan; * @since 2.22.0 */ final class RunListenerAdapter - implements TestExecutionListener + implements TestExecutionListener, TestOutputReceiver { private static final Pattern COMMA_PATTERN = Pattern.compile( "," ); private final ConcurrentMap<TestIdentifier, Long> testStartTime = new ConcurrentHashMap<>(); private final ConcurrentMap<TestIdentifier, TestExecutionResult> failures = new ConcurrentHashMap<>(); private final ConcurrentMap<String, TestIdentifier> runningTestIdentifiersByUniqueId = new ConcurrentHashMap<>(); - private final RunListener runListener; + private final TestRunListener runListener; private volatile TestPlan testPlan; - RunListenerAdapter( RunListener runListener ) + RunListenerAdapter( TestRunListener runListener ) { this.runListener = runListener; } @@ -358,4 +359,10 @@ final class RunListenerAdapter getFailures().clear(); testPlan = null; } + + @Override + public void writeTestOutput( String output, boolean newLine, boolean stdout ) + { + runListener.writeTestOutput( output, newLine, stdout ); + } } diff --git a/surefire-providers/surefire-junit-platform/src/test/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProviderTest.java b/surefire-providers/surefire-junit-platform/src/test/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProviderTest.java index f7a9a42..a6ad81b 100644 --- a/surefire-providers/surefire-junit-platform/src/test/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProviderTest.java +++ b/surefire-providers/surefire-junit-platform/src/test/java/org/apache/maven/surefire/junitplatform/JUnitPlatformProviderTest.java @@ -55,11 +55,12 @@ import java.util.Map; import java.util.Set; import org.apache.maven.surefire.api.provider.ProviderParameters; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; +import org.apache.maven.surefire.api.report.TestOutputReceiver; import org.apache.maven.surefire.api.report.ReportEntry; import org.apache.maven.surefire.api.report.ReporterFactory; import org.apache.maven.surefire.api.report.RunListener; import org.apache.maven.surefire.api.report.SimpleReportEntry; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.api.report.TestSetReportEntry; import org.apache.maven.surefire.api.testset.TestListResolver; import org.apache.maven.surefire.api.testset.TestRequest; @@ -95,7 +96,7 @@ public class JUnitPlatformProviderTest { Launcher launcher = LauncherFactory.create(); JUnitPlatformProvider provider = new JUnitPlatformProvider( providerParametersMock(), launcher ); - RunListener listener = mock( RunListener.class ); + TestRunListener listener = mock( TestRunListener.class ); ArgumentCaptor<ReportEntry> testCaptor = ArgumentCaptor.forClass( ReportEntry.class ); ArgumentCaptor<TestSetReportEntry> testSetCaptor = ArgumentCaptor.forClass( TestSetReportEntry.class ); @@ -142,7 +143,7 @@ public class JUnitPlatformProviderTest { Launcher launcher = LauncherFactory.create(); JUnitPlatformProvider provider = new JUnitPlatformProvider( providerParametersMock(), launcher ); - RunListener listener = mock( RunListener.class ); + TestRunListener listener = mock( TestRunListener.class ); ArgumentCaptor<ReportEntry> testCaptor = ArgumentCaptor.forClass( ReportEntry.class ); ArgumentCaptor<TestSetReportEntry> testSetCaptor = ArgumentCaptor.forClass( TestSetReportEntry.class ); @@ -426,7 +427,7 @@ public class JUnitPlatformProviderTest ProviderParameters parameters = providerParametersMock(); JUnitPlatformProvider provider = new JUnitPlatformProvider( parameters, launcher ); - RunListener listener = mock( RunListener.class ); + TestRunListener listener = mock( TestRunListener.class ); ArgumentCaptor<ReportEntry> entryCaptor = ArgumentCaptor.forClass( ReportEntry.class ); RunListenerAdapter adapter = new RunListenerAdapter( listener ); @@ -456,7 +457,7 @@ public class JUnitPlatformProviderTest TestPlanSummaryListener executionListener = new TestPlanSummaryListener(); - RunListener listener = mock( RunListener.class ); + TestRunListener listener = mock( TestRunListener.class ); ArgumentCaptor<ReportEntry> entryCaptor = ArgumentCaptor.forClass( ReportEntry.class ); RunListenerAdapter adapter = new RunListenerAdapter( listener ); @@ -494,7 +495,7 @@ public class JUnitPlatformProviderTest TestPlanSummaryListener executionListener = new TestPlanSummaryListener(); - RunListener listener = mock( RunListener.class ); + TestRunListener listener = mock( TestRunListener.class ); ArgumentCaptor<ReportEntry> entryCaptor = ArgumentCaptor.forClass( ReportEntry.class ); RunListenerAdapter adapter = new RunListenerAdapter( listener ); @@ -537,7 +538,7 @@ public class JUnitPlatformProviderTest TestPlanSummaryListener executionListener = new TestPlanSummaryListener(); - RunListener listener = mock( RunListener.class ); + TestRunListener listener = mock( TestRunListener.class ); ArgumentCaptor<ReportEntry> entryCaptor = ArgumentCaptor.forClass( ReportEntry.class ); RunListenerAdapter adapter = new RunListenerAdapter( listener ); @@ -597,7 +598,7 @@ public class JUnitPlatformProviderTest public void allDiscoveredTestsAreInvokedForNullArgument() throws Exception { - RunListener runListener = runListenerMock(); + TestRunListener runListener = runListenerMock(); ProviderParameters providerParameters = providerParametersMock( runListener, TestClass1.class, TestClass2.class ); Launcher launcher = LauncherFactory.create(); @@ -661,15 +662,15 @@ public class JUnitPlatformProviderTest throws Exception { Launcher launcher = LauncherFactory.create(); - RunListener runListener = runListenerMock(); + TestRunListener runListener = runListenerMock(); JUnitPlatformProvider provider = new JUnitPlatformProvider( providerParametersMock( runListener ), launcher ); invokeProvider( provider, VerboseTestClass.class ); ArgumentCaptor<String> captor = ArgumentCaptor.forClass( String.class ); - verify( (ConsoleOutputReceiver) runListener ) + verify( runListener ) .writeTestOutput( captor.capture(), eq( true ), eq( true ) ); - verify( (ConsoleOutputReceiver) runListener ) + verify( runListener ) .writeTestOutput( captor.capture(), eq( true ), eq( false ) ); assertThat( captor.getAllValues() ) .hasSize( 2 ) @@ -985,7 +986,7 @@ public class JUnitPlatformProviderTest } private static ProviderParameters providerParametersMock( - RunListener runListener, Class<?>... testClasses ) + TestRunListener runListener, Class<?>... testClasses ) { TestListResolver testListResolver = new TestListResolver( "" ); return providerParametersMock( runListener, testListResolver, testClasses ); @@ -998,7 +999,7 @@ public class JUnitPlatformProviderTest } private static ProviderParameters providerParametersMock( - RunListener runListener, TestListResolver testListResolver, Class<?>... testClasses ) + TestRunListener runListener, TestListResolver testListResolver, Class<?>... testClasses ) { TestsToRun testsToRun = newTestsToRun( testClasses ); @@ -1023,9 +1024,9 @@ public class JUnitPlatformProviderTest return providerParameters; } - private static RunListener runListenerMock() + private static TestRunListener runListenerMock() { - return mock( RunListener.class, withSettings().extraInterfaces( ConsoleOutputReceiver.class ) ); + return mock( TestRunListener.class, withSettings().extraInterfaces( TestOutputReceiver.class ) ); } private static Set<String> failedTestDisplayNames( TestExecutionSummary summary ) diff --git a/surefire-providers/surefire-junit-platform/src/test/java/org/apache/maven/surefire/junitplatform/RunListenerAdapterTest.java b/surefire-providers/surefire-junit-platform/src/test/java/org/apache/maven/surefire/junitplatform/RunListenerAdapterTest.java index d13176d..10c488d 100644 --- a/surefire-providers/surefire-junit-platform/src/test/java/org/apache/maven/surefire/junitplatform/RunListenerAdapterTest.java +++ b/surefire-providers/surefire-junit-platform/src/test/java/org/apache/maven/surefire/junitplatform/RunListenerAdapterTest.java @@ -45,9 +45,9 @@ import java.lang.reflect.Method; import java.util.Map; import java.util.Optional; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.report.PojoStackTraceWriter; import org.apache.maven.surefire.api.report.ReportEntry; -import org.apache.maven.surefire.api.report.RunListener; import org.apache.maven.surefire.api.report.SimpleReportEntry; import org.apache.maven.surefire.api.report.StackTraceWriter; import org.junit.Before; @@ -79,14 +79,14 @@ public class RunListenerAdapterTest { private static final ConfigurationParameters CONFIG_PARAMS = mock( ConfigurationParameters.class ); - private RunListener listener; + private TestRunListener listener; private RunListenerAdapter adapter; @Before public void setUp() { - listener = mock( RunListener.class ); + listener = mock( TestRunListener.class ); adapter = new RunListenerAdapter( listener ); adapter.testPlanExecutionStarted( TestPlan.from( emptyList() ) ); } diff --git a/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java b/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java index 3c9825d..1291e01 100644 --- a/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java +++ b/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java @@ -19,11 +19,11 @@ package org.apache.maven.surefire.junit; * under the License. */ +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.common.junit3.JUnit3Reflector; import org.apache.maven.surefire.common.junit3.JUnit3TestChecker; import org.apache.maven.surefire.api.provider.AbstractProvider; import org.apache.maven.surefire.api.provider.ProviderParameters; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.api.report.ReporterFactory; import org.apache.maven.surefire.api.report.RunListener; import org.apache.maven.surefire.api.report.SimpleReportEntry; @@ -95,8 +95,8 @@ public class JUnit3Provider RunResult runResult; try { - RunListener reporter = reporterFactory.createReporter(); - startCapture( (ConsoleOutputReceiver) reporter ); + TestRunListener reporter = reporterFactory.createReporter(); + startCapture( reporter ); Map<String, String> systemProperties = systemProps(); setSystemManager( System.getProperty( "surefire.security.manager" ) ); diff --git a/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java b/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java index 3f4b095..9db1cd8 100644 --- a/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java +++ b/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java @@ -22,13 +22,13 @@ package org.apache.maven.surefire.junit4; import org.apache.maven.surefire.api.booter.Command; import org.apache.maven.surefire.api.provider.CommandChainReader; import org.apache.maven.surefire.api.provider.CommandListener; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.common.junit4.JUnit4RunListener; import org.apache.maven.surefire.common.junit4.JUnit4TestChecker; import org.apache.maven.surefire.common.junit4.JUnitTestFailureListener; import org.apache.maven.surefire.common.junit4.Notifier; import org.apache.maven.surefire.api.provider.AbstractProvider; import org.apache.maven.surefire.api.provider.ProviderParameters; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.report.PojoStackTraceWriter; import org.apache.maven.surefire.api.report.ReporterFactory; import org.apache.maven.surefire.api.report.RunListener; @@ -121,9 +121,10 @@ public class JUnit4Provider RunResult runResult; try { - RunListener reporter = reporterFactory.createReporter(); + TestRunListener reporter = reporterFactory.createReporter(); + JUnit4RunListener listener = new JUnit4RunListener( reporter ); - startCapture( (ConsoleOutputReceiver) reporter ); + startCapture( listener ); // startCapture() called in prior to setTestsToRun() if ( testsToRun == null ) @@ -131,7 +132,7 @@ public class JUnit4Provider setTestsToRun( forkTestSet ); } - Notifier notifier = new Notifier( new JUnit4RunListener( reporter ), getSkipAfterFailureCount() ); + Notifier notifier = new Notifier( listener, getSkipAfterFailureCount() ); Result result = new Result(); notifier.addListeners( createCustomListeners( customRunListeners ) ) .addListener( result.createListener() ); diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/ConcurrentRunListener.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/ConcurrentRunListener.java index ce8ad88..550edf1 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/ConcurrentRunListener.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/ConcurrentRunListener.java @@ -20,13 +20,12 @@ package org.apache.maven.surefire.junitcore; */ import java.util.Map; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.api.report.ConsoleStream; import org.apache.maven.surefire.api.report.ReportEntry; import org.apache.maven.surefire.api.report.ReporterFactory; -import org.apache.maven.surefire.api.report.RunListener; import org.apache.maven.surefire.api.report.RunMode; import org.apache.maven.surefire.api.report.StackTraceWriter; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.api.report.TestSetReportEntry; import org.apache.maven.surefire.api.testset.TestSetFailedException; @@ -44,11 +43,11 @@ import static org.apache.maven.surefire.junitcore.TestMethod.getThreadTestMethod * @author Kristian Rosenvold */ public abstract class ConcurrentRunListener - implements RunListener, ConsoleOutputReceiver + implements TestRunListener { private final Map<String, TestSet> classMethodCounts; - private final ThreadLocal<RunListener> reporterManagerThreadLocal; + private final ThreadLocal<TestRunListener> reporterManagerThreadLocal; private final boolean reportImmediately; @@ -61,10 +60,10 @@ public abstract class ConcurrentRunListener this.reportImmediately = reportImmediately; this.classMethodCounts = classMethodCounts; this.consoleStream = consoleStream; - reporterManagerThreadLocal = new ThreadLocal<RunListener>() + reporterManagerThreadLocal = new ThreadLocal<TestRunListener>() { @Override - protected RunListener initialValue() + protected TestRunListener initialValue() { return reporterFactory.createReporter(); } @@ -81,7 +80,7 @@ public abstract class ConcurrentRunListener { try { - final RunListener reporterManager = getRunListener(); + final TestRunListener reporterManager = getRunListener(); for ( TestSet testSet : classMethodCounts.values() ) { testSet.replay( reporterManager ); @@ -201,12 +200,12 @@ public abstract class ConcurrentRunListener return classMethodCounts.get( description.getSourceName() ); } - RunListener getRunListener() + TestRunListener getRunListener() { return reporterManagerThreadLocal.get(); } - public static ConcurrentRunListener createInstance( Map<String, TestSet> classMethodCounts, + public static TestRunListener createInstance( Map<String, TestSet> classMethodCounts, ReporterFactory reporterFactory, boolean parallelClasses, boolean parallelBoth, ConsoleStream consoleStream ) diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java index 6877b00..a575281 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java @@ -22,6 +22,7 @@ package org.apache.maven.surefire.junitcore; import org.apache.maven.surefire.api.booter.Command; import org.apache.maven.surefire.api.provider.CommandChainReader; import org.apache.maven.surefire.api.provider.CommandListener; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.common.junit4.JUnit4RunListener; import org.apache.maven.surefire.common.junit4.JUnitTestFailureListener; import org.apache.maven.surefire.common.junit4.Notifier; @@ -251,7 +252,7 @@ public class JUnitCoreProvider { final Map<String, TestSet> testSetMap = new ConcurrentHashMap<>(); - ConcurrentRunListener listener = createInstance( testSetMap, reporterFactory, isParallelTypes(), + TestRunListener listener = createInstance( testSetMap, reporterFactory, isParallelTypes(), isParallelMethodsAndTypes(), consoleStream ); startCapture( listener ); diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreRunListener.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreRunListener.java index 37f3759..f272c21 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreRunListener.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreRunListener.java @@ -19,9 +19,9 @@ package org.apache.maven.surefire.junitcore; * under the License. */ +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.common.junit4.JUnit4RunListener; import org.apache.maven.surefire.common.junit4.JUnit4StackTraceWriter; -import org.apache.maven.surefire.api.report.RunListener; import org.apache.maven.surefire.api.report.StackTraceWriter; import org.junit.runner.Description; import org.junit.runner.Result; @@ -49,7 +49,7 @@ public class JUnitCoreRunListener * @param reporter the report manager to log testing events to * @param classMethodCounts A map of methods */ - public JUnitCoreRunListener( RunListener reporter, Map<String, TestSet> classMethodCounts ) + public JUnitCoreRunListener( TestRunListener reporter, Map<String, TestSet> classMethodCounts ) { super( reporter ); this.classMethodCounts = classMethodCounts; diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/LogicalStream.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/LogicalStream.java index cf70d17..db1840b 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/LogicalStream.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/LogicalStream.java @@ -19,7 +19,7 @@ package org.apache.maven.surefire.junitcore; * under the License. */ -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; +import org.apache.maven.surefire.api.report.TestOutputReceiver; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; @@ -50,7 +50,7 @@ final class LogicalStream output.add( new Entry( stdout, text, newLine ) ); } - void writeDetails( ConsoleOutputReceiver outputReceiver ) + void writeDetails( TestOutputReceiver outputReceiver ) { for ( Entry entry = output.poll(); entry != null; entry = output.poll() ) { diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/NonConcurrentRunListener.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/NonConcurrentRunListener.java index 262a4ee..c8f3d68 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/NonConcurrentRunListener.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/NonConcurrentRunListener.java @@ -19,10 +19,10 @@ package org.apache.maven.surefire.junitcore; * under the License. */ +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.api.util.internal.ClassMethod; import org.apache.maven.surefire.common.junit4.JUnit4RunListener; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; -import org.apache.maven.surefire.api.report.RunListener; +import org.apache.maven.surefire.api.report.TestOutputReceiver; import org.apache.maven.surefire.api.report.SimpleReportEntry; import org.apache.maven.surefire.api.report.TestSetReportEntry; import org.apache.maven.surefire.api.testset.TestSetFailedException; @@ -43,13 +43,13 @@ import static org.apache.maven.surefire.api.util.internal.ObjectUtils.systemProp */ public class NonConcurrentRunListener extends JUnit4RunListener - implements ConsoleOutputReceiver + implements TestOutputReceiver { private Description currentTestSetDescription; private Description lastFinishedDescription; - public NonConcurrentRunListener( RunListener reporter ) + public NonConcurrentRunListener( TestRunListener reporter ) throws TestSetFailedException { super( reporter ); @@ -58,7 +58,7 @@ public class NonConcurrentRunListener public synchronized void writeTestOutput( String output, boolean newLine, boolean stdout ) { // We can write immediately: no parallelism and a single class. - ( (ConsoleOutputReceiver) reporter ).writeTestOutput( output, newLine, stdout ); + reporter.writeTestOutput( output, newLine, stdout ); } @Override diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/TestMethod.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/TestMethod.java index ae38976..164c71d 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/TestMethod.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/TestMethod.java @@ -20,10 +20,10 @@ package org.apache.maven.surefire.junitcore; */ import org.apache.maven.surefire.api.report.CategorizedReportEntry; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; +import org.apache.maven.surefire.api.report.TestOutputReceiver; import org.apache.maven.surefire.api.report.ConsoleOutputReceiverForCurrentThread; import org.apache.maven.surefire.api.report.ReportEntry; -import org.apache.maven.surefire.api.report.RunListener; +import org.apache.maven.surefire.api.report.TestRunListener; import java.util.concurrent.atomic.AtomicReference; @@ -34,7 +34,7 @@ import java.util.concurrent.atomic.AtomicReference; * without any actual parallel access */ class TestMethod - implements ConsoleOutputReceiver + implements TestOutputReceiver { private static final InheritableThreadLocal<TestMethod> TEST_METHOD = new InheritableThreadLocal<>(); @@ -112,7 +112,7 @@ class TestMethod return endTime; } - void replay( RunListener reporter ) + void replay( TestRunListener reporter ) { if ( testIgnored != null ) { @@ -125,7 +125,7 @@ class TestMethod LogicalStream ls = output.get(); if ( ls != null ) { - ls.writeDetails( (ConsoleOutputReceiver) reporter ); + ls.writeDetails( reporter ); } if ( testFailure != null ) diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/TestSet.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/TestSet.java index 694257e..8f30186 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/TestSet.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/TestSet.java @@ -20,8 +20,8 @@ package org.apache.maven.surefire.junitcore; */ import org.apache.maven.surefire.api.report.ReportEntry; -import org.apache.maven.surefire.api.report.RunListener; import org.apache.maven.surefire.api.report.SimpleReportEntry; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.api.report.TestSetReportEntry; import java.util.Collection; @@ -60,7 +60,7 @@ public class TestSet this.testClassName = testClassName; } - public void replay( RunListener target ) + public void replay( TestRunListener target ) { if ( played.compareAndSet( false, true ) ) { @@ -133,7 +133,7 @@ public class TestSet testMethods.add( testMethod ); } - public void incrementFinishedTests( RunListener reporterManager, boolean reportImmediately ) + public void incrementFinishedTests( TestRunListener reporterManager, boolean reportImmediately ) { numberOfCompletedChildren.incrementAndGet(); if ( allScheduled && isAllTestsDone() && reportImmediately ) @@ -142,7 +142,7 @@ public class TestSet } } - public void setAllScheduled( RunListener reporterManager ) + public void setAllScheduled( TestRunListener reporterManager ) { allScheduled = true; if ( isAllTestsDone() ) diff --git a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/ConcurrentRunListenerTest.java b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/ConcurrentRunListenerTest.java index 8940b51..c512a51 100644 --- a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/ConcurrentRunListenerTest.java +++ b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/ConcurrentRunListenerTest.java @@ -27,7 +27,7 @@ import org.apache.maven.plugin.surefire.report.DefaultReporterFactory; import org.apache.maven.surefire.api.report.ConsoleStream; import org.apache.maven.surefire.api.report.DefaultDirectConsoleReporter; import org.apache.maven.surefire.api.report.ReporterFactory; -import org.apache.maven.surefire.api.report.RunListener; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.report.RunStatistics; import org.apache.maven.surefire.api.testset.TestSetFailedException; @@ -149,7 +149,7 @@ public class ConcurrentRunListenerTest DefaultReporterFactory reporterFactory = createReporterFactory(); HashMap<String, TestSet> classMethodCounts = new HashMap<>(); final ConsoleStream defaultConsoleReporter = new DefaultDirectConsoleReporter( System.out ); - RunListener reporter = + TestRunListener reporter = new ClassesParallelRunListener( classMethodCounts, reporterFactory, defaultConsoleReporter ); JUnitCoreRunListener runListener = new JUnitCoreRunListener( reporter, classMethodCounts ); RunStatistics result = runClasses( reporterFactory, runListener, classes ); diff --git a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/JUnitCoreTester.java b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/JUnitCoreTester.java index defc3a9..6a36bdc 100644 --- a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/JUnitCoreTester.java +++ b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/JUnitCoreTester.java @@ -25,10 +25,9 @@ import org.apache.maven.plugin.surefire.extensions.SurefireStatelessReporter; import org.apache.maven.plugin.surefire.extensions.SurefireStatelessTestsetInfoReporter; import org.apache.maven.plugin.surefire.log.api.NullConsoleLogger; import org.apache.maven.plugin.surefire.report.DefaultReporterFactory; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.api.report.DefaultDirectConsoleReporter; import org.apache.maven.surefire.api.report.ReporterFactory; -import org.apache.maven.surefire.api.report.RunListener; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.api.testset.TestSetFailedException; import org.junit.runner.Computer; import org.junit.runner.JUnitCore; @@ -66,9 +65,9 @@ public class JUnitCoreTester try { final HashMap<String, TestSet> classMethodCounts = new HashMap<>(); - RunListener reporter = createInstance( classMethodCounts, reporterManagerFactory, parallelClasses, false, - new DefaultDirectConsoleReporter( System.out ) ); - startCapture( (ConsoleOutputReceiver) reporter ); + TestRunListener reporter = createInstance( classMethodCounts, reporterManagerFactory, parallelClasses, + false, new DefaultDirectConsoleReporter( System.out ) ); + startCapture( reporter ); JUnitCoreRunListener runListener = new JUnitCoreRunListener( reporter, classMethodCounts ); JUnitCore junitCore = new JUnitCore(); diff --git a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/MockReporter.java b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/MockReporter.java index 3694f92..e533bf6 100644 --- a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/MockReporter.java +++ b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/MockReporter.java @@ -23,7 +23,7 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; import org.apache.maven.surefire.api.report.ReportEntry; -import org.apache.maven.surefire.api.report.RunListener; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.api.report.TestSetReportEntry; import org.apache.maven.surefire.api.report.RunMode; @@ -31,7 +31,7 @@ import org.apache.maven.surefire.api.report.RunMode; * Internal tests use only. */ final class MockReporter - implements RunListener + implements TestRunListener { private final List<String> events = new ArrayList<>(); @@ -136,4 +136,10 @@ final class MockReporter { return events.contains( event ); } + + @Override + public void writeTestOutput( String output, boolean newLine, boolean stdout ) + { + + } } diff --git a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/Surefire746Test.java b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/Surefire746Test.java index 38690ae..eb8f736 100644 --- a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/Surefire746Test.java +++ b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/Surefire746Test.java @@ -46,12 +46,12 @@ import java.util.concurrent.ConcurrentHashMap; import org.apache.maven.surefire.api.booter.BaseProviderFactory; import org.apache.maven.surefire.api.booter.ProviderParameterNames; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.common.junit4.JUnit4RunListener; import org.apache.maven.surefire.common.junit4.Notifier; import org.apache.maven.surefire.api.report.DefaultDirectConsoleReporter; import org.apache.maven.surefire.api.report.ReporterConfiguration; import org.apache.maven.surefire.api.report.ReporterFactory; -import org.apache.maven.surefire.api.report.RunListener; import org.apache.maven.surefire.api.suite.RunResult; import org.apache.maven.surefire.api.testset.TestSetFailedException; import org.apache.maven.surefire.api.util.TestsToRun; @@ -120,7 +120,7 @@ public class Surefire746Test final Map<String, TestSet> testSetMap = new ConcurrentHashMap<>(); - RunListener listener = ConcurrentRunListener.createInstance( testSetMap, reporterFactory, false, false, + TestRunListener listener = ConcurrentRunListener.createInstance( testSetMap, reporterFactory, false, false, new DefaultDirectConsoleReporter( System.out ) ); TestsToRun testsToRun = new TestsToRun( Collections.<Class<?>>singleton( TestClassTest.class ) ); @@ -172,13 +172,13 @@ public class Surefire746Test @Override public void run( RunNotifier notifier ) { - notifier.addListener( new TestRunListener() ); + notifier.addListener( new Listener() ); super.run( notifier ); } } - private static class TestRunListener extends org.junit.runner.notification.RunListener + private static class Listener extends org.junit.runner.notification.RunListener { @Override public void testFinished( Description description ) throws Exception diff --git a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java index 5878248..583ebd7 100644 --- a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java +++ b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java @@ -25,10 +25,9 @@ import org.apache.maven.surefire.api.provider.CommandListener; import org.apache.maven.surefire.api.cli.CommandLineOption; import org.apache.maven.surefire.api.provider.AbstractProvider; import org.apache.maven.surefire.api.provider.ProviderParameters; -import org.apache.maven.surefire.api.report.ConsoleOutputReceiver; import org.apache.maven.surefire.api.report.ReporterConfiguration; import org.apache.maven.surefire.api.report.ReporterFactory; -import org.apache.maven.surefire.api.report.RunListener; +import org.apache.maven.surefire.api.report.TestRunListener; import org.apache.maven.surefire.api.suite.RunResult; import org.apache.maven.surefire.testng.utils.FailFastEventsSingleton; import org.apache.maven.surefire.api.testset.TestListResolver; @@ -98,12 +97,12 @@ public class TestNGProvider } final ReporterFactory reporterFactory = providerParameters.getReporterFactory(); - final RunListener reporter = reporterFactory.createReporter(); + final TestRunListener reporter = reporterFactory.createReporter(); /* * {@link org.apache.maven.surefire.api.report.ConsoleOutputCapture#startCapture(ConsoleOutputReceiver)} * called in prior to initializing variable {@link #testsToRun} */ - startCapture( (ConsoleOutputReceiver) reporter ); + startCapture( reporter ); RunResult runResult; try