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 7963980a70..158461efc5 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,7 +23,7 @@ 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.api.report.TestReportListener; import org.apache.maven.surefire.extensions.EventHandler; import org.apache.maven.surefire.api.booter.MasterProcessChannelEncoder; import org.apache.maven.surefire.api.report.TestOutputReceiver; @@ -79,7 +79,7 @@ public class ForkClient private final int forkNumber; - private volatile TestRunListener testSetReporter; + private volatile TestReportListener testSetReporter; /** * Written by one Thread and read by another: Main Thread and ForkStarter's Thread. @@ -380,7 +380,7 @@ public final boolean hadTimeout() /** * Only {@link #getConsoleOutputReceiver()} may call this method in another Thread. */ - private TestRunListener getTestSetReporter() + private TestReportListener getTestSetReporter() { if ( testSetReporter == null ) { @@ -388,7 +388,7 @@ private TestRunListener getTestSetReporter() { if ( testSetReporter == null ) { - testSetReporter = defaultReporterFactory.createReporter(); + testSetReporter = defaultReporterFactory.createTestReportListener(); } } } @@ -431,7 +431,7 @@ public TestOutputReceiver getConsoleOutputReceiver() private ConsoleLogger getOrCreateConsoleLogger() { - return (ConsoleLogger) getTestSetReporter(); + return getTestSetReporter(); } public void close( boolean hadTimeout ) 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 39dd86c76b..cf93b6bf15 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.StatelessTestsetInfoConsoleReportEventListener; import org.apache.maven.surefire.extensions.StatelessTestsetInfoFileReportEventListener; import org.apache.maven.surefire.api.report.ReporterFactory; -import org.apache.maven.surefire.api.report.TestRunListener; +import org.apache.maven.surefire.api.report.TestReportListener; 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 DefaultReporterFactory( StartupReportConfiguration reportConfiguration, C } @Override - public TestRunListener createReporter() + public TestReportListener createTestReportListener() { 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 4e6e46128d..cb81382c5d 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 @@ -25,7 +25,6 @@ import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; -import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; import org.apache.maven.plugin.surefire.runorder.StatisticsReporter; import org.apache.maven.surefire.extensions.ConsoleOutputReportEventListener; import org.apache.maven.surefire.extensions.StatelessReportEventListener; @@ -33,7 +32,7 @@ import org.apache.maven.surefire.extensions.StatelessTestsetInfoFileReportEventListener; import org.apache.maven.surefire.api.report.ReportEntry; import org.apache.maven.surefire.api.report.RunMode; -import org.apache.maven.surefire.api.report.TestRunListener; +import org.apache.maven.surefire.api.report.TestReportListener; import org.apache.maven.surefire.api.report.TestSetReportEntry; import static org.apache.maven.plugin.surefire.report.ReportEntryType.ERROR; @@ -50,7 +49,7 @@ * @author Kristian Rosenvold */ public class TestSetRunListener - implements TestRunListener, ConsoleLogger + implements TestReportListener { private final Queue testMethodStats = new ConcurrentLinkedQueue<>(); 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 1e7a06723a..6e5dbaf860 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 @@ -39,7 +39,7 @@ 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.report.TestReportListener; import org.apache.maven.surefire.api.util.internal.WritableBufferedByteChannel; import javax.annotation.Nonnull; @@ -173,7 +173,7 @@ public void testAssumptionFailure() throws Exception public void testConsole() throws Exception { final StandardTestRun standardTestRun = new StandardTestRun(); - ConsoleLogger directConsoleReporter = (ConsoleLogger) standardTestRun.run(); + ConsoleLogger directConsoleReporter = standardTestRun.run(); directConsoleReporter.info( "HeyYou" ); standardTestRun.assertExpected( MockReporter.CONSOLE_INFO, "HeyYou" ); } @@ -462,7 +462,7 @@ private SimpleReportEntry createReportEntryWithSpecialMessage( String message ) } } - private TestRunListener createForkingRunListener() + private TestReportListener createForkingRunListener() { WritableBufferedByteChannel channel = (WritableBufferedByteChannel) newChannel( printStream ); return new ForkingRunListener( new EventChannelEncoder( channel ), false ); @@ -472,7 +472,7 @@ private class StandardTestRun { private MockReporter reporter; - public TestRunListener run() + public TestReportListener 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 337131d3e8..79c70aeb59 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 @@ -19,9 +19,8 @@ * under the License. */ -import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; import org.apache.maven.surefire.api.report.ReportEntry; -import org.apache.maven.surefire.api.report.TestRunListener; +import org.apache.maven.surefire.api.report.TestReportListener; import org.apache.maven.surefire.api.report.TestSetReportEntry; import org.apache.maven.surefire.api.report.RunMode; @@ -33,7 +32,7 @@ * Internal tests use only. */ public class MockReporter - implements TestRunListener, ConsoleLogger + implements TestReportListener { private final List 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 7b05fb032f..ff0bbb34fe 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.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.TestRunListener; +import org.apache.maven.surefire.api.report.TestReportListener; import java.io.File; @@ -43,7 +43,7 @@ public TestSetMockReporterFactory() } @Override - public TestRunListener createReporter() + public TestReportListener createTestReportListener() { return new MockReporter(); } diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClientTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClientTest.java index fa360850ad..7822300b65 100644 --- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClientTest.java +++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClientTest.java @@ -477,14 +477,14 @@ public void shouldReceiveStdOut() when( factory.getReportsDirectory() ) .thenReturn( new File( target, "surefire-reports" ) ); MockReporter receiver = new MockReporter(); - when( factory.createReporter() ) + when( factory.createTestReportListener() ) .thenReturn( receiver ); NotifiableTestStream notifiableTestStream = mock( NotifiableTestStream.class ); ForkClient client = new ForkClient( factory, notifiableTestStream, 0 ); client.handleEvent( new StandardStreamOutEvent( NORMAL_RUN, "msg" ) ); verifyZeroInteractions( notifiableTestStream ); verify( factory, times( 1 ) ) - .createReporter(); + .createTestReportListener(); verifyNoMoreInteractions( factory ); assertThat( client.getReporter() ) .isNotNull(); @@ -519,14 +519,14 @@ public void shouldReceiveStdOutNewLine() when( factory.getReportsDirectory() ) .thenReturn( new File( target, "surefire-reports" ) ); MockReporter receiver = new MockReporter(); - when( factory.createReporter() ) + when( factory.createTestReportListener() ) .thenReturn( receiver ); NotifiableTestStream notifiableTestStream = mock( NotifiableTestStream.class ); ForkClient client = new ForkClient( factory, notifiableTestStream, 0 ); client.handleEvent( new StandardStreamOutWithNewLineEvent( NORMAL_RUN, "msg" ) ); verifyZeroInteractions( notifiableTestStream ); verify( factory, times( 1 ) ) - .createReporter(); + .createTestReportListener(); verifyNoMoreInteractions( factory ); assertThat( client.getReporter() ) .isNotNull(); @@ -561,14 +561,14 @@ public void shouldReceiveStdErr() when( factory.getReportsDirectory() ) .thenReturn( new File( target, "surefire-reports" ) ); MockReporter receiver = new MockReporter(); - when( factory.createReporter() ) + when( factory.createTestReportListener() ) .thenReturn( receiver ); NotifiableTestStream notifiableTestStream = mock( NotifiableTestStream.class ); ForkClient client = new ForkClient( factory, notifiableTestStream, 0 ); client.handleEvent( new StandardStreamErrEvent( NORMAL_RUN, "msg" ) ); verifyZeroInteractions( notifiableTestStream ); verify( factory, times( 1 ) ) - .createReporter(); + .createTestReportListener(); verifyNoMoreInteractions( factory ); assertThat( client.getReporter() ) .isNotNull(); @@ -603,14 +603,14 @@ public void shouldReceiveStdErrNewLine() when( factory.getReportsDirectory() ) .thenReturn( new File( target, "surefire-reports" ) ); MockReporter receiver = new MockReporter(); - when( factory.createReporter() ) + when( factory.createTestReportListener() ) .thenReturn( receiver ); NotifiableTestStream notifiableTestStream = mock( NotifiableTestStream.class ); ForkClient client = new ForkClient( factory, notifiableTestStream, 0 ); client.handleEvent( new StandardStreamErrWithNewLineEvent( NORMAL_RUN, "msg" ) ); verifyZeroInteractions( notifiableTestStream ); verify( factory, times( 1 ) ) - .createReporter(); + .createTestReportListener(); verifyNoMoreInteractions( factory ); assertThat( client.getReporter() ) .isNotNull(); @@ -641,7 +641,7 @@ public void shouldLogConsoleError() { DefaultReporterFactory factory = mock( DefaultReporterFactory.class ); MockReporter receiver = new MockReporter(); - when( factory.createReporter() ) + when( factory.createTestReportListener() ) .thenReturn( receiver ); NotifiableTestStream notifiableTestStream = mock( NotifiableTestStream.class ); ForkClient client = new ForkClient( factory, notifiableTestStream, 0 ); @@ -651,7 +651,7 @@ public void shouldLogConsoleError() client.handleEvent( event ); verifyZeroInteractions( notifiableTestStream ); verify( factory, times( 1 ) ) - .createReporter(); + .createTestReportListener(); verify( factory, times( 1 ) ) .getReportsDirectory(); verifyNoMoreInteractions( factory ); @@ -733,14 +733,14 @@ public void shouldLogConsoleWarning() when( factory.getReportsDirectory() ) .thenReturn( new File( target, "surefire-reports" ) ); MockReporter receiver = new MockReporter(); - when( factory.createReporter() ) + when( factory.createTestReportListener() ) .thenReturn( receiver ); NotifiableTestStream notifiableTestStream = mock( NotifiableTestStream.class ); ForkClient client = new ForkClient( factory, notifiableTestStream, 0 ); client.handleEvent( new ConsoleWarningEvent( "s1" ) ); verifyZeroInteractions( notifiableTestStream ); verify( factory, times( 1 ) ) - .createReporter(); + .createTestReportListener(); verifyNoMoreInteractions( factory ); assertThat( client.getReporter() ) .isNotNull(); @@ -775,14 +775,14 @@ public void shouldLogConsoleDebug() when( factory.getReportsDirectory() ) .thenReturn( new File( target, "surefire-reports" ) ); MockReporter receiver = new MockReporter(); - when( factory.createReporter() ) + when( factory.createTestReportListener() ) .thenReturn( receiver ); NotifiableTestStream notifiableTestStream = mock( NotifiableTestStream.class ); ForkClient client = new ForkClient( factory, notifiableTestStream, 0 ); client.handleEvent( new ConsoleDebugEvent( "s1" ) ); verifyZeroInteractions( notifiableTestStream ); verify( factory, times( 1 ) ) - .createReporter(); + .createTestReportListener(); verifyNoMoreInteractions( factory ); assertThat( client.getReporter() ) .isNotNull(); @@ -817,14 +817,14 @@ public void shouldLogConsoleInfo() when( factory.getReportsDirectory() ) .thenReturn( new File( target, "surefire-reports" ) ); MockReporter receiver = new MockReporter(); - when( factory.createReporter() ) + when( factory.createTestReportListener() ) .thenReturn( receiver ); NotifiableTestStream notifiableTestStream = mock( NotifiableTestStream.class ); ForkClient client = new ForkClient( factory, notifiableTestStream, 0 ); client.handleEvent( new ConsoleInfoEvent( "s1" ) ); verifyZeroInteractions( notifiableTestStream ); verify( factory, times( 1 ) ) - .createReporter(); + .createTestReportListener(); verifyNoMoreInteractions( factory ); assertThat( client.getReporter() ) .isNotNull(); @@ -859,7 +859,7 @@ public void shouldSendSystemProperty() when( factory.getReportsDirectory() ) .thenReturn( new File( target, "surefire-reports" ) ); MockReporter receiver = new MockReporter(); - when( factory.createReporter() ) + when( factory.createTestReportListener() ) .thenReturn( receiver ); NotifiableTestStream notifiableTestStream = mock( NotifiableTestStream.class ); ForkClient client = new ForkClient( factory, notifiableTestStream, 0 ); @@ -899,7 +899,7 @@ public void shouldSendTestsetStartingKilled() when( factory.getReportsDirectory() ) .thenReturn( new File( target, "surefire-reports" ) ); MockReporter receiver = new MockReporter(); - when( factory.createReporter() ) + when( factory.createTestReportListener() ) .thenReturn( receiver ); NotifiableTestStream notifiableTestStream = mock( NotifiableTestStream.class ); @@ -932,7 +932,7 @@ public void shouldSendTestsetStartingKilled() verify( notifiableTestStream ) .shutdown( Shutdown.KILL ); verifyNoMoreInteractions( notifiableTestStream ); - verify( factory ).createReporter(); + verify( factory ).createTestReportListener(); verifyNoMoreInteractions( factory ); assertThat( client.getReporter() ) .isNotNull(); @@ -994,7 +994,7 @@ public void shouldSendTestsetStarting() when( factory.getReportsDirectory() ) .thenReturn( new File( target, "surefire-reports" ) ); MockReporter receiver = new MockReporter(); - when( factory.createReporter() ) + when( factory.createTestReportListener() ) .thenReturn( receiver ); NotifiableTestStream notifiableTestStream = mock( NotifiableTestStream.class ); @@ -1026,7 +1026,7 @@ public void shouldSendTestsetStarting() client.tryToTimeout( System.currentTimeMillis(), 1 ); verifyZeroInteractions( notifiableTestStream ); - verify( factory ).createReporter(); + verify( factory ).createTestReportListener(); verifyNoMoreInteractions( factory ); assertThat( client.getReporter() ) .isNotNull(); @@ -1090,7 +1090,7 @@ public void shouldSendTestsetCompleted() when( factory.getReportsDirectory() ) .thenReturn( new File( target, "surefire-reports" ) ); MockReporter receiver = new MockReporter(); - when( factory.createReporter() ) + when( factory.createTestReportListener() ) .thenReturn( receiver ); NotifiableTestStream notifiableTestStream = mock( NotifiableTestStream.class ); @@ -1119,7 +1119,7 @@ public void shouldSendTestsetCompleted() client.handleEvent( new TestsetCompletedEvent( NORMAL_RUN, reportEntry ) ); verifyZeroInteractions( notifiableTestStream ); - verify( factory ).createReporter(); + verify( factory ).createTestReportListener(); verifyNoMoreInteractions( factory ); assertThat( client.getReporter() ) .isNotNull(); @@ -1183,7 +1183,7 @@ public void shouldSendTestStarting() when( factory.getReportsDirectory() ) .thenReturn( new File( target, "surefire-reports" ) ); MockReporter receiver = new MockReporter(); - when( factory.createReporter() ) + when( factory.createTestReportListener() ) .thenReturn( receiver ); NotifiableTestStream notifiableTestStream = mock( NotifiableTestStream.class ); @@ -1212,7 +1212,7 @@ public void shouldSendTestStarting() client.handleEvent( new TestStartingEvent( NORMAL_RUN, reportEntry ) ); verifyZeroInteractions( notifiableTestStream ); - verify( factory ).createReporter(); + verify( factory ).createTestReportListener(); verifyNoMoreInteractions( factory ); assertThat( client.hasTestsInProgress() ) .isTrue(); @@ -1277,7 +1277,7 @@ public void shouldSendTestSucceeded() when( factory.getReportsDirectory() ) .thenReturn( new File( target, "surefire-reports" ) ); MockReporter receiver = new MockReporter(); - when( factory.createReporter() ) + when( factory.createTestReportListener() ) .thenReturn( receiver ); NotifiableTestStream notifiableTestStream = mock( NotifiableTestStream.class ); @@ -1313,7 +1313,7 @@ public void shouldSendTestSucceeded() client.handleEvent( new TestSucceededEvent( NORMAL_RUN, reportEntry ) ); verifyZeroInteractions( notifiableTestStream ); - verify( factory ).createReporter(); + verify( factory ).createTestReportListener(); verifyNoMoreInteractions( factory ); assertThat( client.getReporter() ) .isNotNull(); @@ -1381,7 +1381,7 @@ public void shouldSendTestFailed() when( factory.getReportsDirectory() ) .thenReturn( new File( target, "surefire-reports" ) ); MockReporter receiver = new MockReporter(); - when( factory.createReporter() ) + when( factory.createTestReportListener() ) .thenReturn( receiver ); NotifiableTestStream notifiableTestStream = mock( NotifiableTestStream.class ); @@ -1417,7 +1417,7 @@ public void shouldSendTestFailed() client.handleEvent( new TestFailedEvent( NORMAL_RUN, reportEntry ) ); verifyZeroInteractions( notifiableTestStream ); - verify( factory ).createReporter(); + verify( factory ).createTestReportListener(); verifyNoMoreInteractions( factory ); assertThat( client.getReporter() ) .isNotNull(); @@ -1491,7 +1491,7 @@ public void shouldSendTestSkipped() when( factory.getReportsDirectory() ) .thenReturn( new File( target, "surefire-reports" ) ); MockReporter receiver = new MockReporter(); - when( factory.createReporter() ) + when( factory.createTestReportListener() ) .thenReturn( receiver ); NotifiableTestStream notifiableTestStream = mock( NotifiableTestStream.class ); @@ -1527,7 +1527,7 @@ public void shouldSendTestSkipped() client.handleEvent( new TestSkippedEvent( NORMAL_RUN, reportEntry ) ); verifyZeroInteractions( notifiableTestStream ); - verify( factory ).createReporter(); + verify( factory ).createTestReportListener(); verifyNoMoreInteractions( factory ); assertThat( client.getReporter() ) .isNotNull(); @@ -1599,7 +1599,7 @@ public void shouldSendTestError() when( factory.getReportsDirectory() ) .thenReturn( new File( target, "surefire-reports" ) ); MockReporter receiver = new MockReporter(); - when( factory.createReporter() ) + when( factory.createTestReportListener() ) .thenReturn( receiver ); NotifiableTestStream notifiableTestStream = mock( NotifiableTestStream.class ); @@ -1637,7 +1637,7 @@ public void shouldSendTestError() client.handleEvent( new TestErrorEvent( NORMAL_RUN, reportEntry ) ); verifyZeroInteractions( notifiableTestStream ); - verify( factory ).createReporter(); + verify( factory ).createTestReportListener(); verifyNoMoreInteractions( factory ); assertThat( client.getReporter() ) .isNotNull(); @@ -1705,7 +1705,7 @@ public void shouldSendTestAssumptionFailure() when( factory.getReportsDirectory() ) .thenReturn( new File( target, "surefire-reports" ) ); MockReporter receiver = new MockReporter(); - when( factory.createReporter() ) + when( factory.createTestReportListener() ) .thenReturn( receiver ); NotifiableTestStream notifiableTestStream = mock( NotifiableTestStream.class ); @@ -1742,7 +1742,7 @@ public void shouldSendTestAssumptionFailure() client.handleEvent( new TestAssumptionFailureEvent( NORMAL_RUN, reportEntry ) ); verifyZeroInteractions( notifiableTestStream ); - verify( factory ).createReporter(); + verify( factory ).createTestReportListener(); verifyNoMoreInteractions( factory ); assertThat( client.getReporter() ) .isNotNull(); 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 14e4d823e9..cb36c0d27c 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 @@ -33,6 +33,7 @@ import org.apache.maven.plugin.surefire.extensions.SurefireStatelessReporter; import org.apache.maven.plugin.surefire.extensions.SurefireStatelessTestsetInfoReporter; import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; +import org.apache.maven.surefire.api.report.TestReportListener; import org.apache.maven.surefire.shared.utils.logging.MessageUtils; import org.apache.maven.surefire.report.RunStatistics; import org.apache.maven.surefire.api.report.SafeThrowable; @@ -286,7 +287,7 @@ public void testLogger() DefaultReporterFactory factory = new DefaultReporterFactory( reportConfig, reporter ); - TestSetRunListener runListener = (TestSetRunListener) factory.createReporter(); + TestReportListener runListener = factory.createTestReportListener(); assertTrue( runListener.isDebugEnabled() ); assertTrue( runListener.isInfoEnabled() ); @@ -358,7 +359,7 @@ public void testCreateReporterWithZeroStatistics() DefaultReporterFactory factory = new DefaultReporterFactory( reportConfig, reporter ); assertEquals( reportsDirectory, factory.getReportsDirectory() ); - TestSetRunListener runListener = (TestSetRunListener) factory.createReporter(); + TestSetRunListener runListener = (TestSetRunListener) factory.createTestReportListener(); Collection listeners = getInternalState( factory, "listeners" ); assertEquals( 1, listeners.size() ); assertTrue( listeners.contains( runListener ) ); diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/BaseProviderFactory.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/BaseProviderFactory.java index 9654b14977..1436e98dc6 100644 --- a/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/BaseProviderFactory.java +++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/BaseProviderFactory.java @@ -22,8 +22,6 @@ import org.apache.maven.surefire.api.cli.CommandLineOption; import org.apache.maven.surefire.api.provider.CommandChainReader; import org.apache.maven.surefire.api.provider.ProviderParameters; -import org.apache.maven.surefire.api.report.ConsoleStream; -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.testset.DirectoryScannerParameters; @@ -53,8 +51,6 @@ public class BaseProviderFactory private ReporterFactory reporterFactory; - private MasterProcessChannelEncoder masterProcessChannelEncoder; - private List mainCliOptions = emptyList(); private Map providerProperties; @@ -148,14 +144,6 @@ public void setClassLoaders( ClassLoader testClassLoader ) this.testClassLoader = testClassLoader; } - @Override - public ConsoleStream getConsoleLogger() - { - return insideFork - ? new ForkingRunListener( masterProcessChannelEncoder, reporterConfiguration.isTrimStackTrace() ) - : new DefaultDirectConsoleReporter( reporterConfiguration.getOriginalSystemOut() ); - } - public void setTestRequest( TestRequest testRequest ) { this.testRequest = testRequest; @@ -260,9 +248,4 @@ public void setSystemExitTimeout( Integer systemExitTimeout ) { this.systemExitTimeout = systemExitTimeout; } - - public void setForkedChannelEncoder( MasterProcessChannelEncoder masterProcessChannelEncoder ) - { - this.masterProcessChannelEncoder = masterProcessChannelEncoder; - } } 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 e53eeb4514..cf7ad5b918 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 @@ */ import org.apache.maven.surefire.api.report.ReporterFactory; -import org.apache.maven.surefire.api.report.TestRunListener; +import org.apache.maven.surefire.api.report.TestReportListener; import org.apache.maven.surefire.api.suite.RunResult; /** @@ -43,7 +43,7 @@ public ForkingReporterFactory( boolean trimstackTrace, MasterProcessChannelEncod } @Override - public TestRunListener createReporter() + public TestReportListener createTestReportListener() { 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 0a44cfc455..1ccd952f06 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 @@ -19,9 +19,7 @@ * under the License. */ -import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; -import org.apache.maven.surefire.api.report.TestRunListener; -import org.apache.maven.surefire.api.report.ConsoleStream; +import org.apache.maven.surefire.api.report.TestReportListener; import org.apache.maven.surefire.api.report.ReportEntry; import org.apache.maven.surefire.api.report.RunMode; import org.apache.maven.surefire.api.report.TestSetReportEntry; @@ -30,27 +28,26 @@ import static java.util.Objects.requireNonNull; /** - * Encodes the full output of the test run to the stdout stream. + * Encodes the full output of the test run to the "target". *
* This class and the ForkClient contain the full definition of the * "wire-level" protocol used by the forked process. The protocol * is *not* part of any public api and may change without further * notice. *
- * This class is threadsafe. + * This class is thread-safe. *
- * The synchronization in the underlying PrintStream (target instance) - * is used to preserve thread safety of the output stream. To perform - * multiple writes/prints for a single request, they must - * synchronize on "target.out" variable in this class. + * The synchronization in the underlying (target instance) + * is used to preserve thread safety of the target stream. + * To perform multiple writes/prints for a single request, + * they must synchronize on "target" variable in this class. * * @author Kristian Rosenvold */ public class ForkingRunListener - implements TestRunListener, ConsoleLogger, ConsoleStream + implements TestReportListener { private final MasterProcessChannelEncoder target; - private final boolean trim; private volatile RunMode runMode = NORMAL_RUN; @@ -196,10 +193,4 @@ public void error( Throwable t ) { error( null, t ); } - - @Override - public void println( String message ) - { - writeTestOutput( message, true, true ); - } } diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/provider/ProviderParameters.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/provider/ProviderParameters.java index 048622f897..34a2ffa689 100644 --- a/surefire-api/src/main/java/org/apache/maven/surefire/api/provider/ProviderParameters.java +++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/provider/ProviderParameters.java @@ -20,7 +20,6 @@ */ import org.apache.maven.surefire.api.cli.CommandLineOption; -import org.apache.maven.surefire.api.report.ConsoleStream; import org.apache.maven.surefire.api.report.ReporterConfiguration; import org.apache.maven.surefire.api.report.ReporterFactory; import org.apache.maven.surefire.api.testset.DirectoryScannerParameters; @@ -77,16 +76,6 @@ public interface ProviderParameters */ ReporterFactory getReporterFactory(); - /** - * Gets a logger intended for console output. - *
- * This output is intended for provider-oriented messages that are not attached to a single test-set - * and will normally be written to something console-like immediately. - * - * @return A console stream logger - */ - ConsoleStream getConsoleLogger(); - /** * The raw parameters used in creating the directory scanner * diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ConsoleStream.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ConsoleStream.java deleted file mode 100644 index 269b68f78a..0000000000 --- a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ConsoleStream.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.apache.maven.surefire.api.report; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * Delegates to {@link System#out}. - */ -public interface ConsoleStream -{ - void println( String message ); -} diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/DefaultDirectConsoleReporter.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/DefaultDirectConsoleReporter.java deleted file mode 100644 index b3a4c1cdff..0000000000 --- a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/DefaultDirectConsoleReporter.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.apache.maven.surefire.api.report; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.io.PrintStream; - -/** - * @author Kristian Rosenvold - */ -public final class DefaultDirectConsoleReporter - implements ConsoleStream -{ - private final PrintStream systemOut; - - public DefaultDirectConsoleReporter( PrintStream systemOut ) - { - this.systemOut = systemOut; - } - - @Override - public void println( String message ) - { - systemOut.println( message ); - } -} diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ReporterConfiguration.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ReporterConfiguration.java index 03e7362b85..324ebbcf5b 100644 --- a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ReporterConfiguration.java +++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/ReporterConfiguration.java @@ -20,7 +20,6 @@ */ import java.io.File; -import java.io.PrintStream; /** * Bits and pieces of reporting configuration that seem to be necessary on the provider side. @@ -32,25 +31,12 @@ public class ReporterConfiguration { private final File reportsDirectory; - - private final PrintStream originalSystemOut; - - /** - * A non-null Boolean value - */ private final boolean trimStackTrace; public ReporterConfiguration( File reportsDirectory, boolean trimStackTrace ) { this.reportsDirectory = reportsDirectory; this.trimStackTrace = trimStackTrace; - - /* - * While this may seem slightly odd, when this object is constructed no user code has been run - * (including classloading), and we can be guaranteed that no-one has modified System.out/System.err. - * As soon as we start loading user code, all h*ll breaks loose in this respect. - */ - this.originalSystemOut = System.out; } /** @@ -72,15 +58,4 @@ public boolean isTrimStackTrace() { return trimStackTrace; } - - /** - * The original system out belonging to the (possibly forked) surefire process. - * Note that users of Reporter/ReporterFactory should normally not be using this. - * - * @return A printstream. - */ - public PrintStream getOriginalSystemOut() - { - return originalSystemOut; - } } 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 1e21236a60..81b2318cd8 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 @@ -29,11 +29,11 @@ public interface ReporterFactory { /** - * Creates a reporter. + * Creates a reporter listener. * - * @return A reporter instance + * @return new reporter listener instance */ - TestRunListener createReporter(); + TestReportListener createTestReportListener(); /** * Closes the factory, freeing resources allocated in the factory. diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/TestReportListener.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/TestReportListener.java new file mode 100644 index 0000000000..420de84086 --- /dev/null +++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/TestReportListener.java @@ -0,0 +1,45 @@ +package org.apache.maven.surefire.api.report; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; + +/** + * This architecture has two sides (forked JVM, plugin JVM) implementing the same interface {@link TestReportListener}: + *
+ * 1. publisher - surefire fork JVM: {@link org.apache.maven.surefire.api.booter.ForkingRunListener}
+ *    registered in {@link  org.apache.maven.surefire.api.provider.SurefireProvider}
+ * 2. consumer - plugin JVM: {@code TestSetRunListener} registered in the {@code ForkClient}
+ * 
+ * Both implementations of {@link TestReportListener}, i.e. + * {@link org.apache.maven.surefire.api.booter.ForkingRunListener} and {@code TestSetRunListener} + * are decorators. They are used as delegators in interface adapters, see the implementations of + * JUnit's {@code RunListener RunListener-s}. + *
+ * The serialization of data in {@link TestReportListener} ensures that the ReportEntries are transferred + * from the fork to the plugin. + *
+ * Note: The adapters in the module surefire-junit47 are temporal and will be removed after we have fixed + * the SUREFIRE-1860 and XML reporter in SUREFIRE-1643. The adapters are a workaround of a real fix in both Jira issues. + */ +public interface TestReportListener + extends RunListener, TestOutputReceiver, ConsoleLogger +{ +} diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/TestRunListener.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/TestRunListener.java deleted file mode 100644 index 29eaf350de..0000000000 --- a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/TestRunListener.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.apache.maven.surefire.api.report; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * - */ -public interface TestRunListener - extends RunListener, TestOutputReceiver -{ -} diff --git a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java index 6712ef16de..bd44d55c4b 100644 --- a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java +++ b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java @@ -137,7 +137,7 @@ private void setupBooter( String tmpDir, String dumpFileName, String surefirePro flushEventChannelOnExit(); forkingReporterFactory = createForkingReporterFactory(); - logger = (ConsoleLogger) forkingReporterFactory.createReporter(); + logger = forkingReporterFactory.createTestReportListener(); commandReader = new CommandReader( decoder, providerConfiguration.getShutdown(), logger ); pingScheduler = isDebugging ? null : listenToShutdownCommands( booterDeserializer.getPluginPid() ); @@ -453,7 +453,7 @@ public void update( Command command ) private void runSuitesInProcess() throws TestSetFailedException, InvocationTargetException { - createProviderInCurrentClassloader( forkingReporterFactory ).invoke( testSet ); + createProviderInCurrentClassloader().invoke( testSet ); } private ForkingReporterFactory createForkingReporterFactory() @@ -504,14 +504,13 @@ public void run() ); } - private SurefireProvider createProviderInCurrentClassloader( ForkingReporterFactory reporterManagerFactory ) + private SurefireProvider createProviderInCurrentClassloader() { BaseProviderFactory bpf = new BaseProviderFactory( true ); - bpf.setReporterFactory( reporterManagerFactory ); + bpf.setReporterFactory( forkingReporterFactory ); bpf.setCommandReader( commandReader ); bpf.setTestRequest( providerConfiguration.getTestSuiteDefinition() ); bpf.setReporterConfiguration( providerConfiguration.getReporterConfiguration() ); - bpf.setForkedChannelEncoder( eventChannel ); ClassLoader classLoader = currentThread().getContextClassLoader(); bpf.setClassLoaders( classLoader ); bpf.setTestArtifactInfo( providerConfiguration.getTestArtifact() ); 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 1f275b511c..18e34a0671 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.SurefireProvider; import org.apache.maven.surefire.api.report.ReporterConfiguration; import org.apache.maven.surefire.api.report.ReporterFactory; -import org.apache.maven.surefire.api.report.TestRunListener; +import org.apache.maven.surefire.api.report.TestReportListener; 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 void testShouldCreateFactoryWithoutException() ReporterFactory factory = new ReporterFactory() { @Override - public TestRunListener createReporter() + public TestReportListener createTestReportListener() { return null; } @@ -255,7 +255,7 @@ public void testReporterFactory() ReporterFactory reporterFactory = new ReporterFactory() { @Override - public TestRunListener createReporter() + public TestReportListener createTestReportListener() { return null; } @@ -279,7 +279,7 @@ public void testReporterFactoryAware() ReporterFactory reporterFactory = new ReporterFactory() { @Override - public TestRunListener createReporter() + public TestReportListener createTestReportListener() { 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 d3163955d5..4fbfafb699 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 @@ -19,11 +19,12 @@ * under the License. */ +import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; import org.apache.maven.surefire.api.report.ReportEntry; 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.report.TestReportListener; import org.apache.maven.surefire.api.testset.TestSetFailedException; import org.apache.maven.surefire.api.util.internal.ClassMethod; import org.junit.runner.Description; @@ -46,7 +47,7 @@ public class JUnit4RunListener extends RunListener implements TestOutputReceiver { - protected final TestRunListener reporter; + protected final TestReportListener reporter; /** * This flag is set after a failure has occurred so that a @@ -62,11 +63,16 @@ public class JUnit4RunListener * * @param reporter the reporter to log testing events to */ - public JUnit4RunListener( TestRunListener reporter ) + public JUnit4RunListener( TestReportListener reporter ) { this.reporter = reporter; } + public final ConsoleLogger getConsoleLogger() + { + return reporter; + } + // Testrun methods are not invoked when using the runner /** 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 cf543b372e..7fb8e3599c 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 @@ -21,7 +21,7 @@ import org.apache.maven.surefire.api.report.ReportEntry; import org.apache.maven.surefire.api.report.RunMode; -import org.apache.maven.surefire.api.report.TestRunListener; +import org.apache.maven.surefire.api.report.TestReportListener; import org.apache.maven.surefire.api.report.TestSetReportEntry; import java.util.ArrayList; @@ -32,7 +32,7 @@ * Internal tests use only. */ final class MockReporter - implements TestRunListener + implements TestReportListener { private final List events = new ArrayList<>(); @@ -132,4 +132,64 @@ public void testAssumptionFailure( ReportEntry report ) public void writeTestOutput( String output, boolean newLine, boolean stdout ) { } + + @Override + public boolean isDebugEnabled() + { + return false; + } + + @Override + public void debug( String message ) + { + + } + + @Override + public boolean isInfoEnabled() + { + return false; + } + + @Override + public void info( String message ) + { + + } + + @Override + public boolean isWarnEnabled() + { + return false; + } + + @Override + public void warning( String message ) + { + + } + + @Override + public boolean isErrorEnabled() + { + return false; + } + + @Override + public void error( String message ) + { + + } + + @Override + public void error( String message, Throwable t ) + { + + } + + @Override + public void error( Throwable t ) + { + + } } 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 6c4e9edded..5749e91480 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 @@ -120,7 +120,7 @@ public RunResult invoke( Object forkTestSet ) final RunResult runResult; try { - RunListenerAdapter adapter = new RunListenerAdapter( reporterFactory.createReporter() ); + RunListenerAdapter adapter = new RunListenerAdapter( reporterFactory.createTestReportListener() ); startCapture( adapter ); setupJunitLogger(); if ( forkTestSet instanceof TestsToRun ) 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 59f6787c91..dd482ec332 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,7 +34,7 @@ import java.util.regex.Pattern; import java.util.stream.Stream; -import org.apache.maven.surefire.api.report.TestRunListener; +import org.apache.maven.surefire.api.report.TestReportListener; import org.apache.maven.surefire.report.PojoStackTraceWriter; import org.apache.maven.surefire.api.report.SafeThrowable; import org.apache.maven.surefire.api.report.SimpleReportEntry; @@ -59,10 +59,10 @@ final class RunListenerAdapter private final ConcurrentMap testStartTime = new ConcurrentHashMap<>(); private final ConcurrentMap failures = new ConcurrentHashMap<>(); private final ConcurrentMap runningTestIdentifiersByUniqueId = new ConcurrentHashMap<>(); - private final TestRunListener runListener; + private final TestReportListener runListener; private volatile TestPlan testPlan; - RunListenerAdapter( TestRunListener runListener ) + RunListenerAdapter( TestReportListener runListener ) { this.runListener = runListener; } 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 a6ad81b188..7ef4f5e39f 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 @@ -60,7 +60,7 @@ 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.TestReportListener; import org.apache.maven.surefire.api.report.TestSetReportEntry; import org.apache.maven.surefire.api.testset.TestListResolver; import org.apache.maven.surefire.api.testset.TestRequest; @@ -96,7 +96,7 @@ public void shouldFailClassOnBeforeAll() { Launcher launcher = LauncherFactory.create(); JUnitPlatformProvider provider = new JUnitPlatformProvider( providerParametersMock(), launcher ); - TestRunListener listener = mock( TestRunListener.class ); + TestReportListener listener = mock( TestReportListener.class ); ArgumentCaptor testCaptor = ArgumentCaptor.forClass( ReportEntry.class ); ArgumentCaptor testSetCaptor = ArgumentCaptor.forClass( TestSetReportEntry.class ); @@ -143,7 +143,7 @@ public void shouldErrorClassOnBeforeAll() { Launcher launcher = LauncherFactory.create(); JUnitPlatformProvider provider = new JUnitPlatformProvider( providerParametersMock(), launcher ); - TestRunListener listener = mock( TestRunListener.class ); + TestReportListener listener = mock( TestReportListener.class ); ArgumentCaptor testCaptor = ArgumentCaptor.forClass( ReportEntry.class ); ArgumentCaptor testSetCaptor = ArgumentCaptor.forClass( TestSetReportEntry.class ); @@ -427,7 +427,7 @@ public void runDisplayNameTest() throws Exception ProviderParameters parameters = providerParametersMock(); JUnitPlatformProvider provider = new JUnitPlatformProvider( parameters, launcher ); - TestRunListener listener = mock( TestRunListener.class ); + TestReportListener listener = mock( TestReportListener.class ); ArgumentCaptor entryCaptor = ArgumentCaptor.forClass( ReportEntry.class ); RunListenerAdapter adapter = new RunListenerAdapter( listener ); @@ -457,7 +457,7 @@ public void detectErroredParameterized() TestPlanSummaryListener executionListener = new TestPlanSummaryListener(); - TestRunListener listener = mock( TestRunListener.class ); + TestReportListener listener = mock( TestReportListener.class ); ArgumentCaptor entryCaptor = ArgumentCaptor.forClass( ReportEntry.class ); RunListenerAdapter adapter = new RunListenerAdapter( listener ); @@ -495,7 +495,7 @@ public void detectFailedParameterized() TestPlanSummaryListener executionListener = new TestPlanSummaryListener(); - TestRunListener listener = mock( TestRunListener.class ); + TestReportListener listener = mock( TestReportListener.class ); ArgumentCaptor entryCaptor = ArgumentCaptor.forClass( ReportEntry.class ); RunListenerAdapter adapter = new RunListenerAdapter( listener ); @@ -538,7 +538,7 @@ public void rerunParameterized() TestPlanSummaryListener executionListener = new TestPlanSummaryListener(); - TestRunListener listener = mock( TestRunListener.class ); + TestReportListener listener = mock( TestReportListener.class ); ArgumentCaptor entryCaptor = ArgumentCaptor.forClass( ReportEntry.class ); RunListenerAdapter adapter = new RunListenerAdapter( listener ); @@ -598,7 +598,7 @@ public void rerunParameterized() public void allDiscoveredTestsAreInvokedForNullArgument() throws Exception { - TestRunListener runListener = runListenerMock(); + TestReportListener runListener = runListenerMock(); ProviderParameters providerParameters = providerParametersMock( runListener, TestClass1.class, TestClass2.class ); Launcher launcher = LauncherFactory.create(); @@ -662,7 +662,7 @@ public void outputIsCaptured() throws Exception { Launcher launcher = LauncherFactory.create(); - TestRunListener runListener = runListenerMock(); + TestReportListener runListener = runListenerMock(); JUnitPlatformProvider provider = new JUnitPlatformProvider( providerParametersMock( runListener ), launcher ); invokeProvider( provider, VerboseTestClass.class ); @@ -986,7 +986,7 @@ private static ProviderParameters providerParametersMock( Class... testClasse } private static ProviderParameters providerParametersMock( - TestRunListener runListener, Class... testClasses ) + TestReportListener runListener, Class... testClasses ) { TestListResolver testListResolver = new TestListResolver( "" ); return providerParametersMock( runListener, testListResolver, testClasses ); @@ -999,7 +999,7 @@ private static ProviderParameters providerParametersMock( } private static ProviderParameters providerParametersMock( - TestRunListener runListener, TestListResolver testListResolver, Class... testClasses ) + TestReportListener runListener, TestListResolver testListResolver, Class... testClasses ) { TestsToRun testsToRun = newTestsToRun( testClasses ); @@ -1010,7 +1010,7 @@ private static ProviderParameters providerParametersMock( when( runOrderCalculator.orderTestClasses( any() ) ).thenReturn( testsToRun ); ReporterFactory reporterFactory = mock( ReporterFactory.class ); - when( reporterFactory.createReporter() ).thenReturn( runListener ); + when( reporterFactory.createTestReportListener() ).thenReturn( runListener ); TestRequest testRequest = mock( TestRequest.class ); when( testRequest.getTestListResolver() ).thenReturn( testListResolver ); @@ -1024,9 +1024,9 @@ private static ProviderParameters providerParametersMock( return providerParameters; } - private static TestRunListener runListenerMock() + private static TestReportListener runListenerMock() { - return mock( TestRunListener.class, withSettings().extraInterfaces( TestOutputReceiver.class ) ); + return mock( TestReportListener.class, withSettings().extraInterfaces( TestOutputReceiver.class ) ); } private static Set failedTestDisplayNames( TestExecutionSummary summary ) @@ -1192,7 +1192,7 @@ public void usesClassNamesForXmlReport() TestsToRun testsToRun = newTestsToRun( Sub1Tests.class, Sub2Tests.class ); invokeProvider( jUnitPlatformProvider, testsToRun ); - RunListener reporter = providerParameters.getReporterFactory().createReporter(); + RunListener reporter = providerParameters.getReporterFactory().createTestReportListener(); ArgumentCaptor reportEntryArgumentCaptor = ArgumentCaptor.forClass( ReportEntry.class ); 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 10c488da83..6ca778f2eb 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,7 +45,7 @@ import java.util.Map; import java.util.Optional; -import org.apache.maven.surefire.api.report.TestRunListener; +import org.apache.maven.surefire.api.report.TestReportListener; import org.apache.maven.surefire.report.PojoStackTraceWriter; import org.apache.maven.surefire.api.report.ReportEntry; import org.apache.maven.surefire.api.report.SimpleReportEntry; @@ -79,14 +79,14 @@ public class RunListenerAdapterTest { private static final ConfigurationParameters CONFIG_PARAMS = mock( ConfigurationParameters.class ); - private TestRunListener listener; + private TestReportListener listener; private RunListenerAdapter adapter; @Before public void setUp() { - listener = mock( TestRunListener.class ); + listener = mock( TestReportListener.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 1291e01598..6a049fc484 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,7 +19,7 @@ * under the License. */ -import org.apache.maven.surefire.api.report.TestRunListener; +import org.apache.maven.surefire.api.report.TestReportListener; import org.apache.maven.surefire.common.junit3.JUnit3Reflector; import org.apache.maven.surefire.common.junit3.JUnit3TestChecker; import org.apache.maven.surefire.api.provider.AbstractProvider; @@ -95,7 +95,7 @@ else if ( forkTestSet instanceof Class ) RunResult runResult; try { - TestRunListener reporter = reporterFactory.createReporter(); + TestReportListener reporter = reporterFactory.createTestReportListener(); startCapture( reporter ); Map 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 9db1cd8b86..44cc0a1230 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,7 +22,7 @@ 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.api.report.TestReportListener; import org.apache.maven.surefire.common.junit4.JUnit4RunListener; import org.apache.maven.surefire.common.junit4.JUnit4TestChecker; import org.apache.maven.surefire.common.junit4.JUnitTestFailureListener; @@ -121,7 +121,7 @@ public RunResult invoke( Object forkTestSet ) RunResult runResult; try { - TestRunListener reporter = reporterFactory.createReporter(); + TestReportListener reporter = reporterFactory.createTestReportListener(); JUnit4RunListener listener = new JUnit4RunListener( reporter ); startCapture( listener ); diff --git a/surefire-providers/surefire-junit47/pom.xml b/surefire-providers/surefire-junit47/pom.xml index ddac05f92a..6e9a2bf15a 100644 --- a/surefire-providers/surefire-junit47/pom.xml +++ b/surefire-providers/surefire-junit47/pom.xml @@ -40,6 +40,7 @@ junit junit + 4.8.2 provided @@ -54,6 +55,11 @@ 1.0-1 test + + org.mockito + mockito-core + test + @@ -73,100 +79,6 @@ jacoco.agent - - maven-dependency-plugin - - - main - process-sources - - unpack - - - - - junit - junit - 4.7 - jar - true - ${project.build.directory}/endorsed-tmp - - - - - - main-junit47-patch - process-sources - - unpack - - - - - junit - junit - 4.12 - jar - true - ${project.build.directory}/endorsed-tmp - org/junit/runner/notification/RunListener* - - - - - - test - process-test-sources - - copy - - - ${project.build.directory}/endorsed-test - false - - - junit - junit - 4.12 - jar - - - - - - - - maven-assembly-plugin - - - patch-junit47 - process-sources - - single - - - false - junit-4.7 - ${project.build.directory}/endorsed - - src/assembly/assembly.xml - - - - - - - maven-compiler-plugin - - - ${project.build.directory}/endorsed - - - ${project.build.directory}/endorsed-test - - - maven-surefire-plugin diff --git a/surefire-providers/surefire-junit47/src/assembly/assembly.xml b/surefire-providers/surefire-junit47/src/assembly/assembly.xml deleted file mode 100644 index 7556763bc0..0000000000 --- a/surefire-providers/surefire-junit47/src/assembly/assembly.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - with-threadsafe-listener - - jar - - target/endorsed-tmp - false - - - true - ${project.build.directory}/endorsed-tmp - / - - - diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/ClassesParallelRunListener.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/ClassesParallelRunListener.java index 73a8682728..09c0f20f63 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/ClassesParallelRunListener.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/ClassesParallelRunListener.java @@ -19,25 +19,19 @@ * under the License. */ -import java.util.Map; - -import org.apache.maven.surefire.api.report.ConsoleStream; import org.apache.maven.surefire.api.report.ReporterFactory; -import org.apache.maven.surefire.api.testset.TestSetFailedException; -import org.junit.runner.notification.RunListener.ThreadSafe; + +import java.util.Map; /** * @author Kristian Rosenvold */ -@ThreadSafe -public class ClassesParallelRunListener +final class ClassesParallelRunListener extends ConcurrentRunListener { - public ClassesParallelRunListener( Map classMethodCounts, ReporterFactory reporterFactory, - ConsoleStream consoleStream ) - throws TestSetFailedException + ClassesParallelRunListener( Map classMethodCounts, ReporterFactory reporterFactory ) { - super( reporterFactory, consoleStream, false, classMethodCounts ); + super( reporterFactory, false, classMethodCounts ); } @Override 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 550edf18d0..51a02b901b 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,14 +20,14 @@ */ import java.util.Map; -import org.apache.maven.surefire.api.report.ConsoleStream; + +import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; import org.apache.maven.surefire.api.report.ReportEntry; import org.apache.maven.surefire.api.report.ReporterFactory; 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.TestReportListener; import org.apache.maven.surefire.api.report.TestSetReportEntry; -import org.apache.maven.surefire.api.testset.TestSetFailedException; import static org.apache.maven.surefire.junitcore.TestMethod.getThreadTestMethod; @@ -42,45 +42,37 @@ * @see org.apache.maven.surefire.junitcore.JUnitCoreRunListener for details about regular junit run listening * @author Kristian Rosenvold */ -public abstract class ConcurrentRunListener - implements TestRunListener +abstract class ConcurrentRunListener + implements TestReportListener { private final Map classMethodCounts; - private final ThreadLocal reporterManagerThreadLocal; + private final ThreadLocal reporterManagerThreadLocal; private final boolean reportImmediately; - private final ConsoleStream consoleStream; + private final ConsoleLogger logger; - ConcurrentRunListener( final ReporterFactory reporterFactory, ConsoleStream consoleStream, - boolean reportImmediately, Map classMethodCounts ) - throws TestSetFailedException + ConcurrentRunListener( final ReporterFactory reporterFactory, boolean reportImmediately, + Map classMethodCounts ) { this.reportImmediately = reportImmediately; this.classMethodCounts = classMethodCounts; - this.consoleStream = consoleStream; - reporterManagerThreadLocal = new ThreadLocal() - { - @Override - protected TestRunListener initialValue() - { - return reporterFactory.createReporter(); - } - }; + logger = reporterFactory.createTestReportListener(); + reporterManagerThreadLocal = ThreadLocal.withInitial( reporterFactory::createTestReportListener ); } @Override - public void testSetStarting( TestSetReportEntry description ) + public final void testSetStarting( TestSetReportEntry description ) { } @Override - public void testSetCompleted( TestSetReportEntry result ) + public final void testSetCompleted( TestSetReportEntry result ) { try { - final TestRunListener reporterManager = getRunListener(); + final TestReportListener reporterManager = getRunListener(); for ( TestSet testSet : classMethodCounts.values() ) { testSet.replay( reporterManager ); @@ -93,7 +85,7 @@ public void testSetCompleted( TestSetReportEntry result ) } @Override - public void testFailed( ReportEntry failure ) + public final void testFailed( ReportEntry failure ) { final TestMethod testMethod = getOrCreateThreadAttachedTestMethod( failure ); if ( testMethod != null ) @@ -104,7 +96,7 @@ public void testFailed( ReportEntry failure ) } @Override - public void testError( ReportEntry failure ) + public final void testError( ReportEntry failure ) { final TestMethod testMethod = getOrCreateThreadAttachedTestMethod( failure ); if ( testMethod != null ) @@ -115,7 +107,7 @@ public void testError( ReportEntry failure ) } @Override - public void testSkipped( ReportEntry description ) + public final void testSkipped( ReportEntry description ) { TestSet testSet = getTestSet( description ); TestMethod testMethod = testSet.createThreadAttachedTestMethod( description ); @@ -125,19 +117,19 @@ public void testSkipped( ReportEntry description ) } @Override - public void testExecutionSkippedByUser() + public final void testExecutionSkippedByUser() { // cannot guarantee proper call to all listeners getRunListener().testExecutionSkippedByUser(); } - public RunMode markAs( RunMode currentRunMode ) + public final RunMode markAs( RunMode currentRunMode ) { return reporterManagerThreadLocal.get().markAs( currentRunMode ); } @Override - public void testAssumptionFailure( ReportEntry failure ) + public final void testAssumptionFailure( ReportEntry failure ) { final TestMethod testMethod = getOrCreateThreadAttachedTestMethod( failure ); if ( testMethod != null ) @@ -148,7 +140,7 @@ public void testAssumptionFailure( ReportEntry failure ) } @Override - public void testStarting( ReportEntry description ) + public final void testStarting( ReportEntry description ) { TestSet testSet = getTestSet( description ); testSet.createThreadAttachedTestMethod( description ); @@ -158,7 +150,7 @@ public void testStarting( ReportEntry description ) } @Override - public void testSucceeded( ReportEntry report ) + public final void testSucceeded( ReportEntry report ) { TestMethod testMethod = getThreadTestMethod(); if ( testMethod != null ) @@ -179,11 +171,11 @@ private TestMethod getOrCreateThreadAttachedTestMethod( ReportEntry description TestSet testSet = getTestSet( description ); if ( testSet == null ) { - consoleStream.println( description.getName() ); + logger.warning( description.getName() ); StackTraceWriter writer = description.getStackTraceWriter(); if ( writer != null ) { - consoleStream.println( writer.writeTraceToString() ); + logger.error( writer.writeTraceToString() ); } return null; } @@ -200,25 +192,23 @@ private TestSet getTestSet( ReportEntry description ) return classMethodCounts.get( description.getSourceName() ); } - TestRunListener getRunListener() + final TestReportListener getRunListener() { return reporterManagerThreadLocal.get(); } - public static TestRunListener createInstance( Map classMethodCounts, - ReporterFactory reporterFactory, - boolean parallelClasses, boolean parallelBoth, - ConsoleStream consoleStream ) - throws TestSetFailedException + public static TestReportListener createInstance( Map classMethodCounts, + ReporterFactory reporterFactory, + boolean parallelClasses, boolean parallelBoth ) { return parallelClasses - ? new ClassesParallelRunListener( classMethodCounts, reporterFactory, consoleStream ) - : new MethodsParallelRunListener( classMethodCounts, reporterFactory, !parallelBoth, consoleStream ); + ? new ClassesParallelRunListener( classMethodCounts, reporterFactory ) + : new MethodsParallelRunListener( classMethodCounts, reporterFactory, !parallelBoth ); } @Override - public void writeTestOutput( String output, boolean newLine, boolean stdout ) + public final void writeTestOutput( String output, boolean newLine, boolean stdout ) { TestMethod threadTestMethod = getThreadTestMethod(); if ( threadTestMethod != null ) @@ -229,7 +219,67 @@ public void writeTestOutput( String output, boolean newLine, boolean stdout ) else { // Not able to associate output with any thread. Just dump to console - consoleStream.println( output ); + logger.info( output ); } } + + @Override + public final boolean isDebugEnabled() + { + return logger.isDebugEnabled(); + } + + @Override + public final void debug( String message ) + { + logger.debug( message ); + } + + @Override + public final boolean isInfoEnabled() + { + return logger.isInfoEnabled(); + } + + @Override + public final void info( String message ) + { + logger.info( message ); + } + + @Override + public final boolean isWarnEnabled() + { + return logger.isWarnEnabled(); + } + + @Override + public final void warning( String message ) + { + logger.warning( message ); + } + + @Override + public final boolean isErrorEnabled() + { + return logger.isErrorEnabled(); + } + + @Override + public final void error( String message ) + { + logger.error( message ); + } + + @Override + public final void error( String message, Throwable t ) + { + logger.error( message, t ); + } + + @Override + public final void error( Throwable t ) + { + logger.error( t ); + } } 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 a5752815a0..d01620cd9d 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 @@ -19,10 +19,11 @@ * under the License. */ +import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; 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.api.report.TestReportListener; import org.apache.maven.surefire.common.junit4.JUnit4RunListener; import org.apache.maven.surefire.common.junit4.JUnitTestFailureListener; import org.apache.maven.surefire.common.junit4.Notifier; @@ -31,7 +32,6 @@ import org.apache.maven.surefire.common.junit48.JUnit48TestChecker; import org.apache.maven.surefire.api.provider.AbstractProvider; import org.apache.maven.surefire.api.provider.ProviderParameters; -import org.apache.maven.surefire.api.report.ConsoleStream; import org.apache.maven.surefire.api.report.ReporterFactory; import org.apache.maven.surefire.api.suite.RunResult; import org.apache.maven.surefire.api.testset.TestListResolver; @@ -118,12 +118,10 @@ private boolean isSingleThreaded() public RunResult invoke( Object forkTestSet ) throws TestSetFailedException { - final ReporterFactory reporterFactory = providerParameters.getReporterFactory(); - - final ConsoleStream consoleStream = providerParameters.getConsoleLogger(); - - Notifier notifier = - new Notifier( createRunListener( reporterFactory, consoleStream ), getSkipAfterFailureCount() ); + ReporterFactory reporterFactory = providerParameters.getReporterFactory(); + JUnit4RunListener listener = createRunListener( reporterFactory ); + ConsoleLogger logger = listener.getConsoleLogger(); + Notifier notifier = new Notifier( listener, getSkipAfterFailureCount() ); // startCapture() called in createRunListener() in prior to setTestsToRun() Filter filter = jUnit48Reflector.isJUnit48Available() ? createJUnit48Filter() : null; @@ -146,7 +144,7 @@ public RunResult invoke( Object forkTestSet ) try { - JUnitCoreWrapper core = new JUnitCoreWrapper( notifier, jUnitCoreParameters, consoleStream ); + JUnitCoreWrapper core = new JUnitCoreWrapper( notifier, jUnitCoreParameters, logger ); if ( commandsReader != null ) { @@ -163,7 +161,7 @@ public RunResult invoke( Object forkTestSet ) { Notifier rerunNotifier = pureNotifier(); notifier.copyListenersTo( rerunNotifier ); - JUnitCoreWrapper rerunCore = new JUnitCoreWrapper( rerunNotifier, jUnitCoreParameters, consoleStream ); + JUnitCoreWrapper rerunCore = new JUnitCoreWrapper( rerunNotifier, jUnitCoreParameters, logger ); for ( int i = 0; i < rerunFailingTestsCount && !testFailureListener.getAllFailures().isEmpty(); i++ ) { Set failures = generateFailingTestDescriptions( testFailureListener.getAllFailures() ); @@ -239,23 +237,21 @@ public void update( Command command ) } ); } - private JUnit4RunListener createRunListener( ReporterFactory reporterFactory, ConsoleStream consoleStream ) - throws TestSetFailedException + private JUnit4RunListener createRunListener( ReporterFactory reporterFactory ) { if ( isSingleThreaded() ) { - NonConcurrentRunListener rm = new NonConcurrentRunListener( reporterFactory.createReporter() ); + NonConcurrentRunListener rm = new NonConcurrentRunListener( reporterFactory.createTestReportListener() ); startCapture( rm ); return rm; } else { - final Map testSetMap = new ConcurrentHashMap<>(); - - TestRunListener listener = createInstance( testSetMap, reporterFactory, isParallelTypes(), - isParallelMethodsAndTypes(), consoleStream ); + Map testSetMap = new ConcurrentHashMap<>(); + boolean parallelClasses = isParallelTypes(); + boolean parallelBoth = isParallelMethodsAndTypes(); + TestReportListener listener = createInstance( testSetMap, reporterFactory, parallelClasses, parallelBoth ); startCapture( listener ); - return new JUnitCoreRunListener( listener, testSetMap ); } } 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 f272c21ca7..93f4bc079c 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,7 +19,7 @@ * under the License. */ -import org.apache.maven.surefire.api.report.TestRunListener; +import org.apache.maven.surefire.api.report.TestReportListener; import org.apache.maven.surefire.common.junit4.JUnit4RunListener; import org.apache.maven.surefire.common.junit4.JUnit4StackTraceWriter; import org.apache.maven.surefire.api.report.StackTraceWriter; @@ -40,7 +40,7 @@ * * @see org.apache.maven.surefire.junitcore.ConcurrentRunListener for details about parallel running */ -public class JUnitCoreRunListener +final class JUnitCoreRunListener extends JUnit4RunListener { private final Map classMethodCounts; @@ -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( TestRunListener reporter, Map classMethodCounts ) + JUnitCoreRunListener( TestReportListener reporter, Map classMethodCounts ) { super( reporter ); this.classMethodCounts = classMethodCounts; diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreWrapper.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreWrapper.java index 60ba4708bb..3ae0b48e1f 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreWrapper.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreWrapper.java @@ -19,12 +19,12 @@ * under the License. */ +import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; +import org.apache.maven.surefire.api.testset.TestSetFailedException; +import org.apache.maven.surefire.api.util.TestsToRun; import org.apache.maven.surefire.common.junit4.Notifier; import org.apache.maven.surefire.junitcore.pc.ParallelComputer; import org.apache.maven.surefire.junitcore.pc.ParallelComputerBuilder; -import org.apache.maven.surefire.api.report.ConsoleStream; -import org.apache.maven.surefire.api.testset.TestSetFailedException; -import org.apache.maven.surefire.api.util.TestsToRun; import org.junit.Ignore; import org.junit.runner.Computer; import org.junit.runner.Description; @@ -54,9 +54,9 @@ final class JUnitCoreWrapper { private final Notifier notifier; private final JUnitCoreParameters jUnitCoreParameters; - private final ConsoleStream consoleStream; + private final ConsoleLogger consoleStream; - JUnitCoreWrapper( Notifier notifier, JUnitCoreParameters jUnitCoreParameters, ConsoleStream consoleStream ) + JUnitCoreWrapper( Notifier notifier, JUnitCoreParameters jUnitCoreParameters, ConsoleLogger consoleStream ) { this.notifier = notifier; this.jUnitCoreParameters = jUnitCoreParameters; diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/MethodsParallelRunListener.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/MethodsParallelRunListener.java index 4ca3603b3e..d60e0efc65 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/MethodsParallelRunListener.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/MethodsParallelRunListener.java @@ -19,29 +19,24 @@ * under the License. */ -import java.util.Map; - -import org.apache.maven.surefire.api.report.ConsoleStream; import org.apache.maven.surefire.api.report.ReporterFactory; -import org.apache.maven.surefire.api.testset.TestSetFailedException; -import org.junit.runner.notification.RunListener.ThreadSafe; + +import java.util.Map; /** * @author Kristian Rosenvold */ -@ThreadSafe -public class MethodsParallelRunListener +final class MethodsParallelRunListener extends ConcurrentRunListener { private volatile TestSet lastStarted; private final Object lock = new Object(); - public MethodsParallelRunListener( Map classMethodCounts, ReporterFactory reporterFactory, - boolean reportImmediately, ConsoleStream consoleStream ) - throws TestSetFailedException + MethodsParallelRunListener( Map classMethodCounts, ReporterFactory reporterFactory, + boolean reportImmediately ) { - super( reporterFactory, consoleStream, reportImmediately, classMethodCounts ); + super( reporterFactory, reportImmediately, classMethodCounts ); } @Override 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 c8f3d68922..b5428b066b 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,13 +19,11 @@ * under the License. */ -import org.apache.maven.surefire.api.report.TestRunListener; +import org.apache.maven.surefire.api.report.TestReportListener; import org.apache.maven.surefire.api.util.internal.ClassMethod; import org.apache.maven.surefire.common.junit4.JUnit4RunListener; -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; import org.junit.runner.Description; import org.junit.runner.Result; import org.junit.runner.notification.Failure; @@ -41,16 +39,14 @@ * limitation a la Junit4 provider. Specifically, we can redirect properly the output even if we don't have class * demarcation in JUnit. It works when if there is a JVM instance per test run, i.e. with forkMode=always or perthread. */ -public class NonConcurrentRunListener +class NonConcurrentRunListener extends JUnit4RunListener - implements TestOutputReceiver { private Description currentTestSetDescription; private Description lastFinishedDescription; - public NonConcurrentRunListener( TestRunListener reporter ) - throws TestSetFailedException + NonConcurrentRunListener( TestReportListener reporter ) { super( reporter ); } 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 164c71d64f..b81dc028b6 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 @@ -23,7 +23,7 @@ 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.TestRunListener; +import org.apache.maven.surefire.api.report.TestReportListener; import java.util.concurrent.atomic.AtomicReference; @@ -112,7 +112,7 @@ long getEndTime() return endTime; } - void replay( TestRunListener reporter ) + void replay( TestReportListener reporter ) { if ( testIgnored != 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 8f30186ba5..d295bb7a5a 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 @@ -21,7 +21,7 @@ import org.apache.maven.surefire.api.report.ReportEntry; import org.apache.maven.surefire.api.report.SimpleReportEntry; -import org.apache.maven.surefire.api.report.TestRunListener; +import org.apache.maven.surefire.api.report.TestReportListener; import org.apache.maven.surefire.api.report.TestSetReportEntry; import java.util.Collection; @@ -60,7 +60,7 @@ public TestSet( String testClassName ) this.testClassName = testClassName; } - public void replay( TestRunListener target ) + public void replay( TestReportListener target ) { if ( played.compareAndSet( false, true ) ) { @@ -133,7 +133,7 @@ private void addTestMethod( TestMethod testMethod ) testMethods.add( testMethod ); } - public void incrementFinishedTests( TestRunListener reporterManager, boolean reportImmediately ) + public void incrementFinishedTests( TestReportListener reporterManager, boolean reportImmediately ) { numberOfCompletedChildren.incrementAndGet(); if ( allScheduled && isAllTestsDone() && reportImmediately ) @@ -142,7 +142,7 @@ public void incrementFinishedTests( TestRunListener reporterManager, boolean rep } } - public void setAllScheduled( TestRunListener reporterManager ) + public void setAllScheduled( TestReportListener reporterManager ) { allScheduled = true; if ( isAllTestsDone() ) diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/AbstractThreadPoolStrategy.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/AbstractThreadPoolStrategy.java index bad29896fc..b226141860 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/AbstractThreadPoolStrategy.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/AbstractThreadPoolStrategy.java @@ -19,7 +19,7 @@ * under the License. */ -import org.apache.maven.surefire.api.report.ConsoleStream; +import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; import java.util.Collection; import java.util.concurrent.ExecutorService; @@ -47,12 +47,12 @@ abstract class AbstractThreadPoolStrategy private volatile boolean isDestroyed; - AbstractThreadPoolStrategy( ConsoleStream logger, ExecutorService threadPool ) + AbstractThreadPoolStrategy( ConsoleLogger logger, ExecutorService threadPool ) { this( logger, threadPool, null ); } - AbstractThreadPoolStrategy( ConsoleStream logger, ExecutorService threadPool, Collection> futureResults ) + AbstractThreadPoolStrategy( ConsoleLogger logger, ExecutorService threadPool, Collection> futureResults ) { super( logger ); this.threadPool = threadPool; diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/InvokerStrategy.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/InvokerStrategy.java index f4faadca66..55091dfe46 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/InvokerStrategy.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/InvokerStrategy.java @@ -19,7 +19,7 @@ * under the License. */ -import org.apache.maven.surefire.api.report.ConsoleStream; +import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; @@ -37,7 +37,7 @@ final class InvokerStrategy private final Queue activeThreads = new ConcurrentLinkedQueue<>(); - protected InvokerStrategy( ConsoleStream logger ) + protected InvokerStrategy( ConsoleLogger logger ) { super( logger ); } diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/NonSharedThreadPoolStrategy.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/NonSharedThreadPoolStrategy.java index 92a300dff8..eee8df5cba 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/NonSharedThreadPoolStrategy.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/NonSharedThreadPoolStrategy.java @@ -19,7 +19,7 @@ * under the License. */ -import org.apache.maven.surefire.api.report.ConsoleStream; +import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; @@ -34,7 +34,7 @@ final class NonSharedThreadPoolStrategy extends AbstractThreadPoolStrategy { - NonSharedThreadPoolStrategy( ConsoleStream logger, ExecutorService threadPool ) + NonSharedThreadPoolStrategy( ConsoleLogger logger, ExecutorService threadPool ) { super( logger, threadPool ); } diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerBuilder.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerBuilder.java index b17a9d7964..f9d178abef 100755 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerBuilder.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerBuilder.java @@ -34,8 +34,8 @@ import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; +import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; import org.apache.maven.surefire.junitcore.JUnitCoreParameters; -import org.apache.maven.surefire.api.report.ConsoleStream; import org.apache.maven.surefire.api.testset.TestSetFailedException; import org.apache.maven.surefire.api.util.internal.DaemonThreadFactory; import org.junit.internal.runners.ErrorReportingRunner; @@ -93,7 +93,7 @@ public final class ParallelComputerBuilder private final Map parallelGroups = new EnumMap<>( Type.class ); - private final ConsoleStream logger; + private final ConsoleLogger logger; private boolean useSeparatePools; @@ -110,7 +110,7 @@ public final class ParallelComputerBuilder * Can be used only in unit tests. * Do NOT call this constructor in production. */ - ParallelComputerBuilder( ConsoleStream logger ) + ParallelComputerBuilder( ConsoleLogger logger ) { this.logger = logger; runningInTests = true; @@ -120,7 +120,7 @@ public final class ParallelComputerBuilder parallelGroups.put( METHODS, 0 ); } - public ParallelComputerBuilder( ConsoleStream logger, JUnitCoreParameters parameters ) + public ParallelComputerBuilder( ConsoleLogger logger, JUnitCoreParameters parameters ) { this( logger ); runningInTests = false; diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/Scheduler.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/Scheduler.java index bb2d4ac283..61222a29fa 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/Scheduler.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/Scheduler.java @@ -19,12 +19,10 @@ * under the License. */ -import org.apache.maven.surefire.api.report.ConsoleStream; +import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; import org.junit.runner.Description; import org.junit.runners.model.RunnerScheduler; -import java.io.ByteArrayOutputStream; -import java.io.PrintStream; import java.util.Collection; import java.util.Set; import java.util.concurrent.ConcurrentLinkedQueue; @@ -56,7 +54,7 @@ public class Scheduler private final Description description; - private final ConsoleStream logger; + private final ConsoleLogger logger; private volatile boolean shutdown = false; @@ -76,7 +74,7 @@ public class Scheduler * @param description JUnit description of class * @param strategy scheduling strategy */ - public Scheduler( ConsoleStream logger, Description description, SchedulingStrategy strategy ) + public Scheduler( ConsoleLogger logger, Description description, SchedulingStrategy strategy ) { this( logger, description, strategy, -1 ); } @@ -85,8 +83,8 @@ public Scheduler( ConsoleStream logger, Description description, SchedulingStrat * Should be used if schedulers in parallel children and parent use one instance of bounded thread pool. *
* Set this scheduler in a e.g. one suite of classes, then every individual class runner should reference - * {@link #Scheduler(ConsoleStream, org.junit.runner.Description, Scheduler, SchedulingStrategy)} - * or {@link #Scheduler(ConsoleStream, org.junit.runner.Description, Scheduler, SchedulingStrategy, int)}. + * {@link #Scheduler(ConsoleLogger, org.junit.runner.Description, Scheduler, SchedulingStrategy)} + * or {@link #Scheduler(ConsoleLogger, org.junit.runner.Description, Scheduler, SchedulingStrategy, int)}. * * @param logger current logger implementation * @param description description of current runner @@ -94,7 +92,7 @@ public Scheduler( ConsoleStream logger, Description description, SchedulingStrat * @param concurrency determines maximum concurrent children scheduled a time via {@link #schedule(Runnable)} * @throws NullPointerException if null strategy */ - public Scheduler( ConsoleStream logger, Description description, SchedulingStrategy strategy, int concurrency ) + public Scheduler( ConsoleLogger logger, Description description, SchedulingStrategy strategy, int concurrency ) { this( logger, description, strategy, BalancerFactory.createBalancer( concurrency ) ); } @@ -103,7 +101,7 @@ public Scheduler( ConsoleStream logger, Description description, SchedulingStrat * New instances should be used by schedulers with limited concurrency by balancer * against other groups of schedulers. The schedulers share one pool. *
- * Unlike in {@link #Scheduler(ConsoleStream, org.junit.runner.Description, SchedulingStrategy, int)} which was + * Unlike in {@link #Scheduler(ConsoleLogger, org.junit.runner.Description, SchedulingStrategy, int)} which was * limiting the concurrency of children of a runner where this scheduler was set, {@code this} * balancer is limiting the concurrency of all children in runners having schedulers created by this * constructor. @@ -114,7 +112,7 @@ public Scheduler( ConsoleStream logger, Description description, SchedulingStrat * @param balancer determines maximum concurrent children scheduled a time via {@link #schedule(Runnable)} * @throws NullPointerException if null strategy or balancer */ - public Scheduler( ConsoleStream logger, Description description, SchedulingStrategy strategy, Balancer balancer ) + public Scheduler( ConsoleLogger logger, Description description, SchedulingStrategy strategy, Balancer balancer ) { strategy.setDefaultShutdownHandler( newShutdownHandler() ); this.logger = logger; @@ -135,7 +133,7 @@ public Scheduler( ConsoleStream logger, Description description, SchedulingStrat * @param balancer determines maximum concurrent children scheduled a time via {@link #schedule(Runnable)} * @throws NullPointerException if null masterScheduler, strategy or balancer */ - public Scheduler( ConsoleStream logger, Description description, Scheduler masterScheduler, + public Scheduler( ConsoleLogger logger, Description description, Scheduler masterScheduler, SchedulingStrategy strategy, Balancer balancer ) { this( logger, description, strategy, balancer ); @@ -147,15 +145,15 @@ public Scheduler( ConsoleStream logger, Description description, Scheduler maste * @param logger console logger * @param description JUnit description of class * @param masterScheduler a reference to - * {@link #Scheduler(ConsoleStream, org.junit.runner.Description, SchedulingStrategy, int)} - * or {@link #Scheduler(ConsoleStream, org.junit.runner.Description, SchedulingStrategy)} + * {@link #Scheduler(ConsoleLogger, org.junit.runner.Description, SchedulingStrategy, int)} + * or {@link #Scheduler(ConsoleLogger, org.junit.runner.Description, SchedulingStrategy)} * @param strategy scheduling strategy * @param concurrency determines maximum concurrent children scheduled a time via {@link #schedule(Runnable)} * - * @see #Scheduler(ConsoleStream, org.junit.runner.Description, SchedulingStrategy) - * @see #Scheduler(ConsoleStream, org.junit.runner.Description, SchedulingStrategy, int) + * @see #Scheduler(ConsoleLogger, org.junit.runner.Description, SchedulingStrategy) + * @see #Scheduler(ConsoleLogger, org.junit.runner.Description, SchedulingStrategy, int) */ - public Scheduler( ConsoleStream logger, Description description, Scheduler masterScheduler, + public Scheduler( ConsoleLogger logger, Description description, Scheduler masterScheduler, SchedulingStrategy strategy, int concurrency ) { this( logger, description, strategy, concurrency ); @@ -174,7 +172,7 @@ public Scheduler( ConsoleStream logger, Description description, Scheduler maste * @param masterScheduler parent scheduler * @param strategy scheduling strategy */ - public Scheduler( ConsoleStream logger, Description description, Scheduler masterScheduler, + public Scheduler( ConsoleLogger logger, Description description, Scheduler masterScheduler, SchedulingStrategy strategy ) { this( logger, description, masterScheduler, strategy, 0 ); @@ -219,17 +217,12 @@ private boolean canSchedule() protected void logQuietly( Throwable t ) { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - try ( PrintStream stream = new PrintStream( out ) ) - { - t.printStackTrace( stream ); - } - logger.println( out.toString() ); + logger.error( t ); } protected void logQuietly( String msg ) { - logger.println( msg ); + logger.warning( msg ); } /** diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SchedulingStrategies.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SchedulingStrategies.java index 37c0e15d23..b021d9e7b9 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SchedulingStrategies.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SchedulingStrategies.java @@ -19,7 +19,7 @@ * under the License. */ -import org.apache.maven.surefire.api.report.ConsoleStream; +import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; import org.apache.maven.surefire.api.util.internal.DaemonThreadFactory; import java.util.concurrent.ExecutorService; @@ -40,7 +40,7 @@ public class SchedulingStrategies * @param logger current error logger * @return sequentially executing strategy */ - public static SchedulingStrategy createInvokerStrategy( ConsoleStream logger ) + public static SchedulingStrategy createInvokerStrategy( ConsoleLogger logger ) { return new InvokerStrategy( logger ); } @@ -50,7 +50,7 @@ public static SchedulingStrategy createInvokerStrategy( ConsoleStream logger ) * @param nThreads fixed pool capacity * @return parallel scheduling strategy */ - public static SchedulingStrategy createParallelStrategy( ConsoleStream logger, int nThreads ) + public static SchedulingStrategy createParallelStrategy( ConsoleLogger logger, int nThreads ) { return new NonSharedThreadPoolStrategy( logger, Executors.newFixedThreadPool( nThreads, DAEMON_THREAD_FACTORY ) ); @@ -60,7 +60,7 @@ public static SchedulingStrategy createParallelStrategy( ConsoleStream logger, i * @param logger current error logger * @return parallel scheduling strategy with unbounded capacity */ - public static SchedulingStrategy createParallelStrategyUnbounded( ConsoleStream logger ) + public static SchedulingStrategy createParallelStrategyUnbounded( ConsoleLogger logger ) { return new NonSharedThreadPoolStrategy( logger, Executors.newCachedThreadPool( DAEMON_THREAD_FACTORY ) ); } @@ -78,7 +78,7 @@ public static SchedulingStrategy createParallelStrategyUnbounded( ConsoleStream * @return parallel strategy with shared thread pool * @throws NullPointerException if threadPool is null */ - public static SchedulingStrategy createParallelSharedStrategy( ConsoleStream logger, ExecutorService threadPool ) + public static SchedulingStrategy createParallelSharedStrategy( ConsoleLogger logger, ExecutorService threadPool ) { if ( threadPool == null ) { diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SchedulingStrategy.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SchedulingStrategy.java index 6c81bbacd6..08e4a02cc7 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SchedulingStrategy.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SchedulingStrategy.java @@ -19,10 +19,8 @@ * under the License. */ -import org.apache.maven.surefire.api.report.ConsoleStream; +import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; -import java.io.ByteArrayOutputStream; -import java.io.PrintStream; import java.util.concurrent.atomic.AtomicBoolean; /** @@ -43,9 +41,9 @@ public abstract class SchedulingStrategy private final AtomicBoolean canSchedule = new AtomicBoolean( true ); - private final ConsoleStream logger; + private final ConsoleLogger logger; - protected SchedulingStrategy( ConsoleStream logger ) + protected SchedulingStrategy( ConsoleLogger logger ) { this.logger = logger; } @@ -134,11 +132,6 @@ protected boolean canSchedule() protected void logQuietly( Throwable t ) { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - try ( PrintStream stream = new PrintStream( out ) ) - { - t.printStackTrace( stream ); - } - logger.println( out.toString() ); + logger.error( t ); } } diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SharedThreadPoolStrategy.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SharedThreadPoolStrategy.java index 11f544ceba..d3af15ce56 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SharedThreadPoolStrategy.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SharedThreadPoolStrategy.java @@ -19,7 +19,7 @@ * under the License. */ -import org.apache.maven.surefire.api.report.ConsoleStream; +import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; import java.util.concurrent.CancellationException; import java.util.concurrent.ConcurrentLinkedQueue; @@ -37,7 +37,7 @@ final class SharedThreadPoolStrategy extends AbstractThreadPoolStrategy { - SharedThreadPoolStrategy( ConsoleStream logger, ExecutorService threadPool ) + SharedThreadPoolStrategy( ConsoleLogger logger, ExecutorService threadPool ) { super( logger, threadPool, new ConcurrentLinkedQueue>() ); } diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SingleThreadScheduler.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SingleThreadScheduler.java index b0ea97e767..f4c92b468a 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SingleThreadScheduler.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SingleThreadScheduler.java @@ -19,7 +19,7 @@ * under the License. */ -import org.apache.maven.surefire.api.report.ConsoleStream; +import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; import org.apache.maven.surefire.api.util.internal.DaemonThreadFactory; import org.junit.runner.Description; import org.junit.runners.model.RunnerScheduler; @@ -42,7 +42,7 @@ */ final class SingleThreadScheduler { - private final ConsoleStream logger; + private final ConsoleLogger logger; private final ExecutorService pool = newPool(); @@ -54,7 +54,7 @@ private static ExecutorService newPool() return new ThreadPoolExecutor( 1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue(), tf ); } - SingleThreadScheduler( ConsoleStream logger ) + SingleThreadScheduler( ConsoleLogger logger ) { this.logger = logger; SchedulingStrategy strategy = SchedulingStrategies.createParallelSharedStrategy( logger, pool ); 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 c512a5164f..0af0595b86 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 @@ -19,26 +19,24 @@ * under the License. */ -import java.io.ByteArrayOutputStream; -import java.io.PrintStream; -import java.util.HashMap; -import java.util.Map; -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.TestRunListener; -import org.apache.maven.surefire.report.RunStatistics; -import org.apache.maven.surefire.api.testset.TestSetFailedException; - import junit.framework.Assert; import junit.framework.TestCase; import junit.framework.TestSuite; +import org.apache.maven.plugin.surefire.report.DefaultReporterFactory; +import org.apache.maven.surefire.api.report.ReporterFactory; +import org.apache.maven.surefire.api.report.TestReportListener; +import org.apache.maven.surefire.api.testset.TestSetFailedException; +import org.apache.maven.surefire.report.RunStatistics; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.Computer; import org.junit.runner.JUnitCore; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.HashMap; +import java.util.Map; + /** * @author Kristian Rosenvold */ @@ -148,16 +146,14 @@ private void runClasses( int success, int ignored, int failure, Class... clas { DefaultReporterFactory reporterFactory = createReporterFactory(); HashMap classMethodCounts = new HashMap<>(); - final ConsoleStream defaultConsoleReporter = new DefaultDirectConsoleReporter( System.out ); - TestRunListener reporter = - new ClassesParallelRunListener( classMethodCounts, reporterFactory, defaultConsoleReporter ); + TestReportListener reporter = new ClassesParallelRunListener( classMethodCounts, reporterFactory ); JUnitCoreRunListener runListener = new JUnitCoreRunListener( reporter, classMethodCounts ); RunStatistics result = runClasses( reporterFactory, runListener, classes ); assertReporter( result, success, ignored, failure, "classes" ); classMethodCounts.clear(); reporterFactory = createReporterFactory(); - reporter = new MethodsParallelRunListener( classMethodCounts, reporterFactory, true, defaultConsoleReporter ); + reporter = new MethodsParallelRunListener( classMethodCounts, reporterFactory, true ); runListener = new JUnitCoreRunListener( reporter, classMethodCounts ); result = runClasses( reporterFactory, runListener, classes ); assertReporter( result, success, ignored, failure, "methods" ); @@ -198,14 +194,11 @@ private RunStatistics runClasses( DefaultReporterFactory reporterManagerFactory, private org.junit.runner.notification.RunListener createRunListener( ReporterFactory reporterFactory, Map testSetMap ) - throws TestSetFailedException { - return new JUnitCoreRunListener( - new ClassesParallelRunListener( testSetMap, reporterFactory, - new DefaultDirectConsoleReporter( System.out ) ), testSetMap ); + TestReportListener handler = new ClassesParallelRunListener( testSetMap, reporterFactory ); + return new JUnitCoreRunListener( handler, testSetMap ); } - /** * */ 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 6a36bdc6ab..f3cea120f9 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,9 +25,8 @@ 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.DefaultDirectConsoleReporter; import org.apache.maven.surefire.api.report.ReporterFactory; -import org.apache.maven.surefire.api.report.TestRunListener; +import org.apache.maven.surefire.api.report.TestReportListener; import org.apache.maven.surefire.api.testset.TestSetFailedException; import org.junit.runner.Computer; import org.junit.runner.JUnitCore; @@ -65,8 +64,8 @@ public Result run( boolean parallelClasses, Class... classes ) try { final HashMap classMethodCounts = new HashMap<>(); - TestRunListener reporter = createInstance( classMethodCounts, reporterManagerFactory, parallelClasses, - false, new DefaultDirectConsoleReporter( System.out ) ); + TestReportListener reporter = + createInstance( classMethodCounts, reporterManagerFactory, parallelClasses, false ); startCapture( reporter ); JUnitCoreRunListener runListener = new JUnitCoreRunListener( reporter, classMethodCounts ); 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 e533bf6f87..1918fb3e01 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.List; import java.util.concurrent.atomic.AtomicInteger; import org.apache.maven.surefire.api.report.ReportEntry; -import org.apache.maven.surefire.api.report.TestRunListener; +import org.apache.maven.surefire.api.report.TestReportListener; import org.apache.maven.surefire.api.report.TestSetReportEntry; import org.apache.maven.surefire.api.report.RunMode; @@ -31,7 +31,7 @@ * Internal tests use only. */ final class MockReporter - implements TestRunListener + implements TestReportListener { private final List events = new ArrayList<>(); @@ -142,4 +142,64 @@ public void writeTestOutput( String output, boolean newLine, boolean stdout ) { } + + @Override + public boolean isDebugEnabled() + { + return false; + } + + @Override + public void debug( String message ) + { + + } + + @Override + public boolean isInfoEnabled() + { + return false; + } + + @Override + public void info( String message ) + { + + } + + @Override + public boolean isWarnEnabled() + { + return false; + } + + @Override + public void warning( String message ) + { + + } + + @Override + public boolean isErrorEnabled() + { + return false; + } + + @Override + public void error( String message ) + { + + } + + @Override + public void error( String message, Throwable t ) + { + + } + + @Override + public void error( Throwable t ) + { + + } } 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 eb8f736a64..c2efdb4ca7 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 @@ -36,26 +36,17 @@ * limitations under the License. */ -import java.io.File; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - +import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; 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.TestReportListener; import org.apache.maven.surefire.api.suite.RunResult; import org.apache.maven.surefire.api.testset.TestSetFailedException; import org.apache.maven.surefire.api.util.TestsToRun; - +import org.apache.maven.surefire.common.junit4.JUnit4RunListener; +import org.apache.maven.surefire.common.junit4.Notifier; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; @@ -65,7 +56,17 @@ import org.junit.runners.BlockJUnit4ClassRunner; import org.junit.runners.model.InitializationError; +import java.io.File; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + import static junit.framework.Assert.assertEquals; +import static org.apache.maven.surefire.junitcore.ConcurrentRunListener.createInstance; +import static org.mockito.Mockito.mock; /** * {@code @@ -120,8 +121,7 @@ public void surefireIsConfused_ByMultipleIgnore_OnClassLevel() throws Exception final Map testSetMap = new ConcurrentHashMap<>(); - TestRunListener listener = ConcurrentRunListener.createInstance( testSetMap, reporterFactory, false, false, - new DefaultDirectConsoleReporter( System.out ) ); + TestReportListener listener = createInstance( testSetMap, reporterFactory, false, false ); TestsToRun testsToRun = new TestsToRun( Collections.>singleton( TestClassTest.class ) ); @@ -136,8 +136,8 @@ public void surefireIsConfused_ByMultipleIgnore_OnClassLevel() throws Exception // and rethrows a failure which happened in listener exception.expect( TestSetFailedException.class ); JUnit4RunListener dummy = new JUnit4RunListener( new MockReporter() ); - new JUnitCoreWrapper( new Notifier( dummy, 0 ), jUnitCoreParameters, - new DefaultDirectConsoleReporter( System.out ) ).execute( testsToRun, customRunListeners, null ); + new JUnitCoreWrapper( new Notifier( dummy, 0 ), jUnitCoreParameters, mock( ConsoleLogger.class ) ) + .execute( testsToRun, customRunListeners, null ); } finally { diff --git a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerBuilderTest.java b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerBuilderTest.java index 0855aa7aaf..5716256bd1 100755 --- a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerBuilderTest.java +++ b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerBuilderTest.java @@ -20,8 +20,7 @@ */ import net.jcip.annotations.NotThreadSafe; -import org.apache.maven.surefire.api.report.ConsoleStream; -import org.apache.maven.surefire.api.report.DefaultDirectConsoleReporter; +import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; @@ -47,17 +46,18 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.TimeUnit; +import static org.apache.maven.surefire.junitcore.pc.RangeMatcher.between; import static org.hamcrest.core.AnyOf.anyOf; import static org.hamcrest.core.Is.is; import static org.hamcrest.core.IsNot.not; -import static org.apache.maven.surefire.junitcore.pc.RangeMatcher.between; -import static org.junit.Assert.fail; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.mockito.Mockito.mock; /** * @author Tibor Digana (tibor17) @@ -74,7 +74,7 @@ public class ParallelComputerBuilderTest private static volatile Runnable shutdownTask; - private static final ConsoleStream LOGGER = new DefaultDirectConsoleReporter( System.out ); + private static final ConsoleLogger LOGGER = mock( ConsoleLogger.class ); private static void testKeepBeforeAfter( ParallelComputerBuilder builder, Class... classes ) { diff --git a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerUtilTest.java b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerUtilTest.java index 6f7e02bd55..9dd87d09a3 100644 --- a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerUtilTest.java +++ b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerUtilTest.java @@ -19,13 +19,12 @@ * under the License. */ -import org.apache.maven.surefire.junitcore.JUnitCoreParameters; -import org.apache.maven.surefire.api.report.ConsoleStream; -import org.apache.maven.surefire.api.report.DefaultDirectConsoleReporter; +import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; import org.apache.maven.surefire.api.testset.TestSetFailedException; +import org.apache.maven.surefire.junitcore.JUnitCoreParameters; import org.junit.AfterClass; -import org.junit.BeforeClass; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Rule; import org.junit.Test; import org.junit.experimental.theories.DataPoint; @@ -41,20 +40,21 @@ import java.util.Map; import java.util.concurrent.TimeUnit; -import static org.apache.maven.surefire.junitcore.pc.ParallelComputerUtil.resolveConcurrency; import static org.apache.maven.surefire.junitcore.JUnitCoreParameters.PARALLEL_KEY; -import static org.apache.maven.surefire.junitcore.JUnitCoreParameters.THREADCOUNT_KEY; -import static org.apache.maven.surefire.junitcore.JUnitCoreParameters.THREADCOUNTSUITES_KEY; +import static org.apache.maven.surefire.junitcore.JUnitCoreParameters.PARALLEL_TIMEOUTFORCED_KEY; +import static org.apache.maven.surefire.junitcore.JUnitCoreParameters.PARALLEL_TIMEOUT_KEY; import static org.apache.maven.surefire.junitcore.JUnitCoreParameters.THREADCOUNTCLASSES_KEY; import static org.apache.maven.surefire.junitcore.JUnitCoreParameters.THREADCOUNTMETHODS_KEY; -import static org.apache.maven.surefire.junitcore.JUnitCoreParameters.PARALLEL_TIMEOUT_KEY; -import static org.apache.maven.surefire.junitcore.JUnitCoreParameters.PARALLEL_TIMEOUTFORCED_KEY; +import static org.apache.maven.surefire.junitcore.JUnitCoreParameters.THREADCOUNTSUITES_KEY; +import static org.apache.maven.surefire.junitcore.JUnitCoreParameters.THREADCOUNT_KEY; import static org.apache.maven.surefire.junitcore.JUnitCoreParameters.USEUNLIMITEDTHREADS_KEY; +import static org.apache.maven.surefire.junitcore.pc.ParallelComputerUtil.resolveConcurrency; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; /** * Testing an algorithm in {@link ParallelComputerUtil} which configures allocated thread resources in ParallelComputer @@ -68,7 +68,7 @@ @SuppressWarnings( "checkstyle:magicnumber" ) public final class ParallelComputerUtilTest { - private static final ConsoleStream LOGGER = new DefaultDirectConsoleReporter( System.out ); + private static final ConsoleLogger LOGGER = mock( ConsoleLogger.class ); @DataPoint public static final int CPU_1 = 1; diff --git a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/pc/SchedulingStrategiesTest.java b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/pc/SchedulingStrategiesTest.java index 03a5d8eca5..489868a195 100644 --- a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/pc/SchedulingStrategiesTest.java +++ b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/pc/SchedulingStrategiesTest.java @@ -19,8 +19,7 @@ * under the License. */ -import org.apache.maven.surefire.api.report.ConsoleStream; -import org.apache.maven.surefire.api.report.DefaultDirectConsoleReporter; +import org.apache.maven.plugin.surefire.log.api.ConsoleLogger; import org.junit.Test; import java.util.concurrent.ExecutorService; @@ -30,6 +29,7 @@ import static org.apache.maven.surefire.api.util.internal.DaemonThreadFactory.newDaemonThreadFactory; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; /** * Tests the factories in SchedulingStrategy. @@ -48,7 +48,7 @@ public class SchedulingStrategiesTest { private static final ThreadFactory DAEMON_THREAD_FACTORY = newDaemonThreadFactory(); - private final ConsoleStream logger = new DefaultDirectConsoleReporter( System.out ); + private final ConsoleLogger logger = mock( ConsoleLogger.class ); @Test public void invokerStrategy() 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 583ebd7904..fabe13a9fc 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 @@ -27,7 +27,7 @@ import org.apache.maven.surefire.api.provider.ProviderParameters; import org.apache.maven.surefire.api.report.ReporterConfiguration; import org.apache.maven.surefire.api.report.ReporterFactory; -import org.apache.maven.surefire.api.report.TestRunListener; +import org.apache.maven.surefire.api.report.TestReportListener; import org.apache.maven.surefire.api.suite.RunResult; import org.apache.maven.surefire.testng.utils.FailFastEventsSingleton; import org.apache.maven.surefire.api.testset.TestListResolver; @@ -97,7 +97,7 @@ public RunResult invoke( Object forkTestSet ) } final ReporterFactory reporterFactory = providerParameters.getReporterFactory(); - final TestRunListener reporter = reporterFactory.createReporter(); + final TestReportListener reporter = reporterFactory.createTestReportListener(); /* * {@link org.apache.maven.surefire.api.report.ConsoleOutputCapture#startCapture(ConsoleOutputReceiver)} * called in prior to initializing variable {@link #testsToRun}