http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-integration-tests/src/test/resources/surefire-1122-parallel-and-flakyTests/pom.xml ---------------------------------------------------------------------- diff --git a/surefire-integration-tests/src/test/resources/surefire-1122-parallel-and-flakyTests/pom.xml b/surefire-integration-tests/src/test/resources/surefire-1122-parallel-and-flakyTests/pom.xml index 5fa0110..62ef251 100644 --- a/surefire-integration-tests/src/test/resources/surefire-1122-parallel-and-flakyTests/pom.xml +++ b/surefire-integration-tests/src/test/resources/surefire-1122-parallel-and-flakyTests/pom.xml @@ -20,15 +20,11 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.apache.maven.surefire</groupId> - <artifactId>it-parent</artifactId> - <version>1.0</version> - <relativePath>../pom.xml</relativePath> - </parent> + <groupId>org.apache.maven.plugins.surefire</groupId> <artifactId>jiras-surefire-1122</artifactId> <version>1.0</version> + <dependencies> <dependency> <groupId>junit</groupId> @@ -37,10 +33,12 @@ <scope>test</scope> </dependency> </dependencies> + <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> + <version>2.3.2</version> <configuration> <source>1.5</source> <target>1.5</target> @@ -48,6 +46,7 @@ </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> + <version>${surefire.version}</version> <dependencies> <dependency> <groupId>org.apache.maven.surefire</groupId>
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-logger-api/pom.xml ---------------------------------------------------------------------- diff --git a/surefire-logger-api/pom.xml b/surefire-logger-api/pom.xml new file mode 100644 index 0000000..1e64159 --- /dev/null +++ b/surefire-logger-api/pom.xml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.maven.surefire</groupId> + <artifactId>surefire</artifactId> + <version>2.19.2-SNAPSHOT</version> + </parent> + + <artifactId>surefire-logger-api</artifactId> + + <name>SureFire Logger API</name> + <description> + Interfaces and Utilities related only to internal SureFire Logger API. Free of dependencies. + </description> + + <properties> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + </properties> + + <developers> + <developer> + <id>tibordigana</id> + <name>Tibor DigaÅa (tibor17)</name> + <email>[email protected]</email> + <roles> + <role>PMC</role> + </roles> + <timezone>Europe/Bratislava</timezone> + </developer> + </developers> + +</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/ConsoleLogger.java ---------------------------------------------------------------------- diff --git a/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/ConsoleLogger.java b/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/ConsoleLogger.java new file mode 100644 index 0000000..6baa7e3 --- /dev/null +++ b/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/ConsoleLogger.java @@ -0,0 +1,64 @@ +package org.apache.maven.plugin.surefire.log.api; + +/* + * 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. + */ + +/** + * Allows providers to write console messages on the running maven process. + * <p/> + * This output is associated with the entire test run and not a specific + * test, which means it just goes "straight" to the console "immediately". + * <p/> + * s* <p/> + * <p/> + * This interface is used in org.apache.maven.plugin.surefire.CommonReflector and reflected + * via IsolatedClassLoader which can see classes from JRE only. This interface MUST use + * JRE types in method signatures, e.g. {@link String} or {@link Throwable}, etc. + * <p/> + */ +public interface ConsoleLogger +{ + void debug( String message ); + + void info( String message ); + + void warning( String message ); + + /** + * @param message message to log + */ + void error( String message ); + + /** + * Simply delegates to {@link #error(String) error( toString( t, message ) )}. + * + * @param message message to log + * @param t exception, message and trace to log + */ + void error( String message, Throwable t ); + + /** + * Simply delegates to method {@link #error(String, Throwable) error(null, Throwable)}. + * + * @param t exception, message and trace to log + */ + void error( Throwable t ); + + +} http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/ConsoleLoggerDecorator.java ---------------------------------------------------------------------- diff --git a/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/ConsoleLoggerDecorator.java b/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/ConsoleLoggerDecorator.java new file mode 100644 index 0000000..d0761d8 --- /dev/null +++ b/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/ConsoleLoggerDecorator.java @@ -0,0 +1 @@ +package org.apache.maven.plugin.surefire.log.api; /* * 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. */ /** * Decorator around {@link ConsoleLogger}. * This class is loaded in the isolated ClassLoader and the child logger in the in-plugi n ClassLoader. * * @author <a href="mailto:[email protected]">Tibor Digana (tibor17)</a> * @since 2.19.2 */ public final class ConsoleLoggerDecorator implements ConsoleLogger { private final Object logger; public ConsoleLoggerDecorator( Object logger ) { if ( logger == null ) { throw new NullPointerException( "logger argument is null in " + ConsoleLoggerDecorator.class ); } this.logger = logger; } public void debug( String message ) { try { logger.getClass() .getMethod( "debug", String.class ) .invoke( logger, message ); } catch ( Exception e ) { throw new IllegalStateException( e.getLocalizedMessage(), e ); } } public void info( String message ) { try { logger.getClass() .getMethod( "info", String.class ) . invoke( logger, message ); } catch ( Exception e ) { throw new IllegalStateException( e.getLocalizedMessage(), e ); } } public void warning( String message ) { try { logger.getClass() .getMethod( "warning", String.class ) .invoke( logger, message ); } catch ( Exception e ) { throw new IllegalStateException( e.getLocalizedMessage(), e ); } } public void error( String message ) { try { logger.getClass() .getMethod( "error", String.class ) .invoke( logger, message ); } catch ( Exception e ) { throw new IllegalStateException( e.getLocalizedMessage(), e ); } } public void error( String message, Throwable t ) { try { logger.getClass() .getM ethod( "error", String.class, Throwable.class ) .invoke( logger, message, t ); } catch ( Exception e ) { throw new IllegalStateException( e.getLocalizedMessage(), e ); } } public void error( Throwable t ) { try { logger.getClass() .getMethod( "error", Throwable.class ) .invoke( logger, t ); } catch ( Exception e ) { throw new IllegalStateException( e.getLocalizedMessage(), e ); } } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/ConsoleLoggerUtils.java ---------------------------------------------------------------------- diff --git a/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/ConsoleLoggerUtils.java b/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/ConsoleLoggerUtils.java new file mode 100644 index 0000000..fe12ceb --- /dev/null +++ b/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/ConsoleLoggerUtils.java @@ -0,0 +1,55 @@ +package org.apache.maven.plugin.surefire.log.api; + +/* + * 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.PrintWriter; +import java.io.StringWriter; + +/** + * @author <a href="mailto:[email protected]">Tibor Digana (tibor17)</a> + * @since 2.19.2 + */ +public final class ConsoleLoggerUtils +{ + private ConsoleLoggerUtils() + { + throw new IllegalStateException( "non instantiable constructor" ); + } + + public static String toString( String message, Throwable t ) + { + StringWriter result = new StringWriter( 512 ); + PrintWriter writer = new PrintWriter( result ); + try + { + if ( message != null ) + { + writer.println( message ); + } + t.printStackTrace( writer ); + writer.flush(); + return result.toString(); + } + finally + { + writer.close(); + } + } +} http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/Level.java ---------------------------------------------------------------------- diff --git a/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/Level.java b/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/Level.java new file mode 100644 index 0000000..0e7164d --- /dev/null +++ b/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/Level.java @@ -0,0 +1,66 @@ +package org.apache.maven.plugin.surefire.log.api; + +/* + * 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. + */ + +/** + * Test result levels {@link #FAILURE}, {@link #UNSTABLE}, {@link #SUCCESS}. + * Writing to console without color via {@link #NO_COLOR}. + * + * @author <a href="mailto:[email protected]">Tibor Digana (tibor17)</a> + * @since 2.19.2 + */ +public enum Level +{ + /** + * direct println + */ + NO_COLOR, + + /** + * defaults to bold, green + */ + FAILURE, + + /** + * defaults to bold, yellow + */ + UNSTABLE, + + /** + * defaults to bold, red + */ + SUCCESS; + + public static Level resolveLevel( boolean hasSuccessful, boolean hasFailure, boolean hasError, + boolean hasSkipped, boolean hasFlake ) + { + boolean isRed = hasFailure | hasError; + if ( isRed ) + { + return FAILURE; + } + boolean isYellow = hasSkipped | hasFlake; + if ( isYellow ) + { + return UNSTABLE; + } + return hasSuccessful ? SUCCESS : NO_COLOR; + } +} http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/NullConsoleLogger.java ---------------------------------------------------------------------- diff --git a/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/NullConsoleLogger.java b/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/NullConsoleLogger.java new file mode 100644 index 0000000..a78a615 --- /dev/null +++ b/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/NullConsoleLogger.java @@ -0,0 +1,53 @@ +package org.apache.maven.plugin.surefire.log.api; + +/* + * 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. + */ + +/** + * Logger doing nothing rather than using null. + * + * @author <a href="mailto:[email protected]">Tibor Digana (tibor17)</a> + * @since 2.19.2 + */ +public final class NullConsoleLogger implements ConsoleLogger +{ + public void debug( String message ) + { + } + + public void info( String message ) + { + } + + public void warning( String message ) + { + } + + public void error( String message ) + { + } + + public void error( String message, Throwable t ) + { + } + + public void error( Throwable t ) + { + } +} http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/PrintStreamLogger.java ---------------------------------------------------------------------- diff --git a/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/PrintStreamLogger.java b/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/PrintStreamLogger.java new file mode 100644 index 0000000..0eac176 --- /dev/null +++ b/surefire-logger-api/src/main/java/org/apache/maven/plugin/surefire/log/api/PrintStreamLogger.java @@ -0,0 +1 @@ +package org.apache.maven.plugin.surefire.log.api; /* * 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; /** * For testing purposes. */ public class PrintStreamLogger implements ConsoleLogger { private final PrintStream stream; public PrintStreamLogger( PrintStream stream ) { this.stream = stream; } public void debug( String message ) { stream.println( message ); } public void info( String message ) { stream.println( message ); } public void warning( String message ) { stream.println( message ); } public void error( String message ) { stream.println( message ); } public void error( String message, Throwable t ) { error( ConsoleLoggerUtils.toString( message, t ) ); } public void error( Throwable t ) { error( null, t ); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java ---------------------------------------------------------------------- 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 55f89be..a707fee 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 @@ -128,7 +128,6 @@ public class JUnit3Provider private void executeTestSet( SurefireTestSet testSet, RunListener reporter, ClassLoader classLoader ) throws TestSetFailedException { - ReportEntry report = new SimpleReportEntry( this.getClass().getName(), testSet.getName() ); reporter.testSetStarting( report ); http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit4/src/test/java/org/apache/maven/surefire/junit4/JUnit4ProviderTest.java ---------------------------------------------------------------------- diff --git a/surefire-providers/surefire-junit4/src/test/java/org/apache/maven/surefire/junit4/JUnit4ProviderTest.java b/surefire-providers/surefire-junit4/src/test/java/org/apache/maven/surefire/junit4/JUnit4ProviderTest.java index 586c55e..bf6cafc 100644 --- a/surefire-providers/surefire-junit4/src/test/java/org/apache/maven/surefire/junit4/JUnit4ProviderTest.java +++ b/surefire-providers/surefire-junit4/src/test/java/org/apache/maven/surefire/junit4/JUnit4ProviderTest.java @@ -24,9 +24,9 @@ import org.apache.maven.surefire.booter.BaseProviderFactory; import org.apache.maven.surefire.testset.TestRequest; import org.junit.runner.Description; -import java.util.Arrays; import java.util.HashMap; +import static java.util.Arrays.asList; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.*; import static org.junit.runner.Description.createSuiteDescription; @@ -59,7 +59,7 @@ public class JUnit4ProviderTest class B { } - Description d = JUnit4Provider.createTestsDescription( Arrays.<Class<?>>asList( A.class, B.class ) ); + Description d = JUnit4Provider.createTestsDescription( asList( A.class, B.class ) ); assertThat( d, is( notNullValue() ) ); assertThat( d.getDisplayName(), not( isEmptyOrNullString() ) ); assertThat( d.getDisplayName(), is( "null" ) ); http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/ClassesParallelRunListener.java ---------------------------------------------------------------------- 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 542ffdb..e8ac786 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 @@ -20,7 +20,8 @@ package org.apache.maven.surefire.junitcore; */ import java.util.Map; -import org.apache.maven.surefire.report.ConsoleLogger; + +import org.apache.maven.surefire.report.ConsoleStream; import org.apache.maven.surefire.report.ReporterFactory; import org.apache.maven.surefire.testset.TestSetFailedException; @@ -32,10 +33,10 @@ public class ClassesParallelRunListener extends ConcurrentRunListener { public ClassesParallelRunListener( Map<String, TestSet> classMethodCounts, ReporterFactory reporterFactory, - ConsoleLogger consoleLogger ) + ConsoleStream consoleStream ) throws TestSetFailedException { - super( reporterFactory, consoleLogger, false, classMethodCounts ); + super( reporterFactory, consoleStream, false, classMethodCounts ); } @Override http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/ConcurrentRunListener.java ---------------------------------------------------------------------- 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 5886317..89c6104 100644 --- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/ConcurrentRunListener.java +++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/ConcurrentRunListener.java @@ -20,13 +20,16 @@ package org.apache.maven.surefire.junitcore; */ import java.util.Map; -import org.apache.maven.surefire.report.ConsoleLogger; import org.apache.maven.surefire.report.ConsoleOutputReceiver; +import org.apache.maven.surefire.report.ConsoleStream; import org.apache.maven.surefire.report.ReportEntry; import org.apache.maven.surefire.report.ReporterFactory; import org.apache.maven.surefire.report.RunListener; +import org.apache.maven.surefire.report.StackTraceWriter; import org.apache.maven.surefire.testset.TestSetFailedException; +import static org.apache.maven.surefire.junitcore.TestMethod.getThreadTestMethod; + /** * Handles responses from concurrent junit * <p/> @@ -47,25 +50,21 @@ public abstract class ConcurrentRunListener private final boolean reportImmediately; - private final ReporterFactory reporterFactory; - - private final ConsoleLogger consoleLogger; + private final ConsoleStream consoleStream; - ConcurrentRunListener( ReporterFactory reporterFactory, ConsoleLogger consoleLogger, boolean reportImmediately, - Map<String, TestSet> classMethodCounts ) + ConcurrentRunListener( final ReporterFactory reporterFactory, ConsoleStream consoleStream, + boolean reportImmediately, Map<String, TestSet> classMethodCounts ) throws TestSetFailedException { this.reportImmediately = reportImmediately; - this.reporterFactory = reporterFactory; this.classMethodCounts = classMethodCounts; - this.consoleLogger = consoleLogger; - - this.reporterManagerThreadLocal = new ThreadLocal<RunListener>() + this.consoleStream = consoleStream; + reporterManagerThreadLocal = new ThreadLocal<RunListener>() { @Override protected RunListener initialValue() { - return ConcurrentRunListener.this.reporterFactory.createReporter(); + return reporterFactory.createReporter(); } }; } @@ -140,8 +139,8 @@ public abstract class ConcurrentRunListener public void testSucceeded( ReportEntry report ) { - TestMethod testMethod = getTestMethod(); - if ( null != testMethod ) + TestMethod testMethod = getThreadTestMethod(); + if ( testMethod != null ) { testMethod.testFinished(); testMethod.getTestSet().incrementFinishedTests( getRunListener(), reportImmediately ); @@ -151,7 +150,7 @@ public abstract class ConcurrentRunListener private TestMethod getOrCreateThreadAttachedTestMethod( ReportEntry description ) { - TestMethod threadTestMethod = TestMethod.getThreadTestMethod(); + TestMethod threadTestMethod = getThreadTestMethod(); if ( threadTestMethod != null ) { return threadTestMethod; @@ -159,8 +158,12 @@ public abstract class ConcurrentRunListener TestSet testSet = getTestSet( description ); if ( testSet == null ) { - consoleLogger.info( description.getName() ); - consoleLogger.info( description.getStackTraceWriter().writeTraceToString() ); + consoleStream.println( description.getName() ); + StackTraceWriter writer = description.getStackTraceWriter(); + if ( writer != null ) + { + consoleStream.println( writer.writeTraceToString() ); + } return null; } else @@ -171,11 +174,6 @@ public abstract class ConcurrentRunListener protected abstract void checkIfTestSetCanBeReported( TestSet testSetForTest ); - TestMethod getTestMethod() - { - return TestMethod.getThreadTestMethod(); - } - TestSet getTestSet( ReportEntry description ) { return classMethodCounts.get( description.getSourceName() ); @@ -189,27 +187,27 @@ public abstract class ConcurrentRunListener public static ConcurrentRunListener createInstance( Map<String, TestSet> classMethodCounts, ReporterFactory reporterFactory, boolean parallelClasses, boolean parallelBoth, - ConsoleLogger consoleLogger ) + ConsoleStream consoleStream ) throws TestSetFailedException { return parallelClasses - ? new ClassesParallelRunListener( classMethodCounts, reporterFactory, consoleLogger ) - : new MethodsParallelRunListener( classMethodCounts, reporterFactory, !parallelBoth, consoleLogger ); + ? new ClassesParallelRunListener( classMethodCounts, reporterFactory, consoleStream ) + : new MethodsParallelRunListener( classMethodCounts, reporterFactory, !parallelBoth, consoleStream ); } public void writeTestOutput( byte[] buf, int off, int len, boolean stdout ) { - TestMethod threadTestMethod = TestMethod.getThreadTestMethod(); + TestMethod threadTestMethod = getThreadTestMethod(); if ( threadTestMethod != null ) { - final LogicalStream logicalStream = threadTestMethod.getLogicalStream(); + LogicalStream logicalStream = threadTestMethod.getLogicalStream(); logicalStream.write( stdout, buf, off, len ); } else { - // Not able to assocaite output with any thread. Just dump to console - consoleLogger.info( new String( buf, off, len ) ); + // Not able to associate output with any thread. Just dump to console + consoleStream.println( buf, off, len ); } } } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java ---------------------------------------------------------------------- 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 473da2a..0f41b6f 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 @@ -30,7 +30,7 @@ import org.apache.maven.surefire.common.junit48.JUnit48Reflector; import org.apache.maven.surefire.common.junit48.JUnit48TestChecker; import org.apache.maven.surefire.providerapi.AbstractProvider; import org.apache.maven.surefire.providerapi.ProviderParameters; -import org.apache.maven.surefire.report.ConsoleLogger; +import org.apache.maven.surefire.report.ConsoleStream; import org.apache.maven.surefire.report.ReporterFactory; import org.apache.maven.surefire.suite.RunResult; import org.apache.maven.surefire.testset.TestListResolver; @@ -119,14 +119,12 @@ public class JUnitCoreProvider { final ReporterFactory reporterFactory = providerParameters.getReporterFactory(); - final RunResult runResult; - - final ConsoleLogger consoleLogger = providerParameters.getConsoleLogger(); + final ConsoleStream consoleStream = providerParameters.getConsoleLogger(); Filter filter = jUnit48Reflector.isJUnit48Available() ? createJUnit48Filter() : null; Notifier notifier = - new Notifier( createRunListener( reporterFactory, consoleLogger ), getSkipAfterFailureCount() ); + new Notifier( createRunListener( reporterFactory, consoleStream ), getSkipAfterFailureCount() ); // startCapture() called in createRunListener() in prior to setTestsToRun() if ( testsToRun == null ) @@ -143,9 +141,11 @@ public class JUnitCoreProvider registerPleaseStopJUnitListener( notifier ); } + final RunResult runResult; + try { - JUnitCoreWrapper core = new JUnitCoreWrapper( notifier, jUnitCoreParameters, consoleLogger ); + JUnitCoreWrapper core = new JUnitCoreWrapper( notifier, jUnitCoreParameters, consoleStream ); if ( commandsReader != null ) { @@ -162,7 +162,7 @@ public class JUnitCoreProvider { Notifier rerunNotifier = pureNotifier(); notifier.copyListenersTo( rerunNotifier ); - JUnitCoreWrapper rerunCore = new JUnitCoreWrapper( rerunNotifier, jUnitCoreParameters, consoleLogger ); + JUnitCoreWrapper rerunCore = new JUnitCoreWrapper( rerunNotifier, jUnitCoreParameters, consoleStream ); for ( int i = 0; i < rerunFailingTestsCount && !testFailureListener.getAllFailures().isEmpty(); i++ ) { List<Failure> failures = testFailureListener.getAllFailures(); @@ -237,7 +237,7 @@ public class JUnitCoreProvider } ); } - private JUnit4RunListener createRunListener( ReporterFactory reporterFactory, ConsoleLogger consoleLogger ) + private JUnit4RunListener createRunListener( ReporterFactory reporterFactory, ConsoleStream consoleStream ) throws TestSetFailedException { if ( isSingleThreaded() ) @@ -251,7 +251,7 @@ public class JUnitCoreProvider final Map<String, TestSet> testSetMap = new ConcurrentHashMap<String, TestSet>(); ConcurrentRunListener listener = createInstance( testSetMap, reporterFactory, isParallelTypes(), - isParallelMethodsAndTypes(), consoleLogger ); + isParallelMethodsAndTypes(), consoleStream ); startCapture( listener ); return new JUnitCoreRunListener( listener, testSetMap ); http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreWrapper.java ---------------------------------------------------------------------- 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 21858fe..2abfa58 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 @@ -22,7 +22,7 @@ package org.apache.maven.surefire.junitcore; 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.report.ConsoleLogger; +import org.apache.maven.surefire.report.ConsoleStream; import org.apache.maven.surefire.testset.TestSetFailedException; import org.apache.maven.surefire.util.TestsToRun; import org.junit.Ignore; @@ -54,13 +54,13 @@ final class JUnitCoreWrapper { private final Notifier notifier; private final JUnitCoreParameters jUnitCoreParameters; - private final ConsoleLogger logger; + private final ConsoleStream consoleStream; - JUnitCoreWrapper( Notifier notifier, JUnitCoreParameters jUnitCoreParameters, ConsoleLogger logger ) + JUnitCoreWrapper( Notifier notifier, JUnitCoreParameters jUnitCoreParameters, ConsoleStream consoleStream ) { this.notifier = notifier; this.jUnitCoreParameters = jUnitCoreParameters; - this.logger = logger; + this.consoleStream = consoleStream; } void execute( TestsToRun testsToRun, Filter filter ) @@ -151,7 +151,7 @@ final class JUnitCoreWrapper { return jUnitCoreParameters.isNoThreading() ? serial() - : new ParallelComputerBuilder( logger, jUnitCoreParameters ).buildComputer(); + : new ParallelComputerBuilder( consoleStream, jUnitCoreParameters ).buildComputer(); } private final class JUnitCore http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/MethodsParallelRunListener.java ---------------------------------------------------------------------- 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 4edc365..0e487b0 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 @@ -20,7 +20,8 @@ package org.apache.maven.surefire.junitcore; */ import java.util.Map; -import org.apache.maven.surefire.report.ConsoleLogger; + +import org.apache.maven.surefire.report.ConsoleStream; import org.apache.maven.surefire.report.ReporterFactory; import org.apache.maven.surefire.testset.TestSetFailedException; @@ -36,10 +37,10 @@ public class MethodsParallelRunListener private final Object lock = new Object(); public MethodsParallelRunListener( Map<String, TestSet> classMethodCounts, ReporterFactory reporterFactory, - boolean reportImmediately, ConsoleLogger consoleLogger ) + boolean reportImmediately, ConsoleStream consoleStream ) throws TestSetFailedException { - super( reporterFactory, consoleLogger, reportImmediately, classMethodCounts ); + super( reporterFactory, consoleStream, reportImmediately, classMethodCounts ); } @Override http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/AbstractThreadPoolStrategy.java ---------------------------------------------------------------------- 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 17db2ba..5eb7715 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 @@ package org.apache.maven.surefire.junitcore.pc; * under the License. */ -import org.apache.maven.surefire.report.ConsoleLogger; +import org.apache.maven.surefire.report.ConsoleStream; import java.util.Collection; import java.util.concurrent.ExecutorService; @@ -47,12 +47,12 @@ abstract class AbstractThreadPoolStrategy private volatile boolean isDestroyed; - AbstractThreadPoolStrategy( ConsoleLogger logger, ExecutorService threadPool ) + AbstractThreadPoolStrategy( ConsoleStream logger, ExecutorService threadPool ) { this( logger, threadPool, null ); } - AbstractThreadPoolStrategy( ConsoleLogger logger, ExecutorService threadPool, Collection<Future<?>> futureResults ) + AbstractThreadPoolStrategy( ConsoleStream logger, ExecutorService threadPool, Collection<Future<?>> futureResults ) { super( logger ); this.threadPool = threadPool; http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/InvokerStrategy.java ---------------------------------------------------------------------- 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 3f95915..cc1a040 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 @@ package org.apache.maven.surefire.junitcore.pc; * under the License. */ -import org.apache.maven.surefire.report.ConsoleLogger; +import org.apache.maven.surefire.report.ConsoleStream; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; @@ -37,7 +37,7 @@ final class InvokerStrategy private final Queue<Thread> activeThreads = new ConcurrentLinkedQueue<Thread>(); - protected InvokerStrategy( ConsoleLogger logger ) + protected InvokerStrategy( ConsoleStream logger ) { super( logger ); } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/NonSharedThreadPoolStrategy.java ---------------------------------------------------------------------- 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 88b13d0..535011b 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 @@ package org.apache.maven.surefire.junitcore.pc; * under the License. */ -import org.apache.maven.surefire.report.ConsoleLogger; +import org.apache.maven.surefire.report.ConsoleStream; import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; @@ -34,7 +34,7 @@ import java.util.concurrent.TimeUnit; final class NonSharedThreadPoolStrategy extends AbstractThreadPoolStrategy { - NonSharedThreadPoolStrategy( ConsoleLogger logger, ExecutorService threadPool ) + NonSharedThreadPoolStrategy( ConsoleStream logger, ExecutorService threadPool ) { super( logger, threadPool ); } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerBuilder.java ---------------------------------------------------------------------- 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 d407baa..0b35765 100644 --- 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 @@ -35,7 +35,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; import org.apache.maven.surefire.junitcore.JUnitCoreParameters; -import org.apache.maven.surefire.report.ConsoleLogger; +import org.apache.maven.surefire.report.ConsoleStream; import org.apache.maven.surefire.testset.TestSetFailedException; import org.apache.maven.surefire.util.internal.DaemonThreadFactory; import org.junit.internal.runners.ErrorReportingRunner; @@ -92,7 +92,7 @@ public final class ParallelComputerBuilder private final Map<Type, Integer> parallelGroups = new EnumMap<Type, Integer>( Type.class ); - private final ConsoleLogger logger; + private final ConsoleStream logger; private boolean useSeparatePools; @@ -109,7 +109,7 @@ public final class ParallelComputerBuilder * Can be used only in unit tests. * Do NOT call this constructor in production. */ - ParallelComputerBuilder( ConsoleLogger logger ) + ParallelComputerBuilder( ConsoleStream logger ) { this.logger = logger; runningInTests = true; @@ -119,7 +119,7 @@ public final class ParallelComputerBuilder parallelGroups.put( METHODS, 0 ); } - public ParallelComputerBuilder( ConsoleLogger logger, JUnitCoreParameters parameters ) + public ParallelComputerBuilder( ConsoleStream logger, JUnitCoreParameters parameters ) { this( logger ); runningInTests = false; http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/Scheduler.java ---------------------------------------------------------------------- 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 a957340..2c87fdd 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,7 +19,7 @@ package org.apache.maven.surefire.junitcore.pc; * under the License. */ -import org.apache.maven.surefire.report.ConsoleLogger; +import org.apache.maven.surefire.report.ConsoleStream; import org.junit.runner.Description; import org.junit.runners.model.RunnerScheduler; @@ -56,7 +56,7 @@ public class Scheduler private final Description description; - private final ConsoleLogger logger; + private final ConsoleStream logger; private volatile boolean shutdown = false; @@ -72,7 +72,7 @@ public class Scheduler * You can use it with one infinite thread pool shared in strategies across all * suites, class runners, etc. */ - public Scheduler( ConsoleLogger logger, Description description, SchedulingStrategy strategy ) + public Scheduler( ConsoleStream logger, Description description, SchedulingStrategy strategy ) { this( logger, description, strategy, -1 ); } @@ -81,8 +81,8 @@ public class Scheduler * Should be used if schedulers in parallel children and parent use one instance of bounded thread pool. * <p/> * Set this scheduler in a e.g. one suite of classes, then every individual class runner should reference - * {@link Scheduler(ConsoleLogger, org.junit.runner.Description, Scheduler, SchedulingStrategy)} - * or {@link Scheduler(ConsoleLogger, org.junit.runner.Description, Scheduler, SchedulingStrategy, int)}. + * {@link Scheduler(ConsoleStream, org.junit.runner.Description, Scheduler, SchedulingStrategy)} + * or {@link Scheduler(ConsoleStream, org.junit.runner.Description, Scheduler, SchedulingStrategy, int)}. * * @param logger current logger implementation * @param description description of current runner @@ -90,7 +90,7 @@ public class Scheduler * @param concurrency determines maximum concurrent children scheduled a time via {@link #schedule(Runnable)} * @throws NullPointerException if null <tt>strategy</tt> */ - public Scheduler( ConsoleLogger logger, Description description, SchedulingStrategy strategy, int concurrency ) + public Scheduler( ConsoleStream logger, Description description, SchedulingStrategy strategy, int concurrency ) { this( logger, description, strategy, BalancerFactory.createBalancer( concurrency ) ); } @@ -99,7 +99,7 @@ public class Scheduler * New instances should be used by schedulers with limited concurrency by <tt>balancer</tt> * against other groups of schedulers. The schedulers share one pool. * <p/> - * Unlike in {@link Scheduler(ConsoleLogger, org.junit.runner.Description, SchedulingStrategy, int)} which was + * Unlike in {@link Scheduler(ConsoleStream, org.junit.runner.Description, SchedulingStrategy, int)} which was * limiting the <tt>concurrency</tt> of children of a runner where this scheduler was set, <em>this</em> * <tt>balancer</tt> is limiting the concurrency of all children in runners having schedulers created by this * constructor. @@ -110,7 +110,7 @@ public class Scheduler * @param balancer determines maximum concurrent children scheduled a time via {@link #schedule(Runnable)} * @throws NullPointerException if null <tt>strategy</tt> or <tt>balancer</tt> */ - public Scheduler( ConsoleLogger logger, Description description, SchedulingStrategy strategy, Balancer balancer ) + public Scheduler( ConsoleStream logger, Description description, SchedulingStrategy strategy, Balancer balancer ) { strategy.setDefaultShutdownHandler( newShutdownHandler() ); this.logger = logger; @@ -131,7 +131,7 @@ public class Scheduler * @param balancer determines maximum concurrent children scheduled a time via {@link #schedule(Runnable)} * @throws NullPointerException if null <tt>masterScheduler</tt>, <tt>strategy</tt> or <tt>balancer</tt> */ - public Scheduler( ConsoleLogger logger, Description description, Scheduler masterScheduler, + public Scheduler( ConsoleStream logger, Description description, Scheduler masterScheduler, SchedulingStrategy strategy, Balancer balancer ) { this( logger, description, strategy, balancer ); @@ -141,12 +141,12 @@ public class Scheduler /** * @param masterScheduler a reference to - * {@link Scheduler(ConsoleLogger, org.junit.runner.Description, SchedulingStrategy, int)} - * or {@link Scheduler(ConsoleLogger, org.junit.runner.Description, SchedulingStrategy)} - * @see Scheduler(ConsoleLogger, org.junit.runner.Description, SchedulingStrategy) - * @see Scheduler(ConsoleLogger, org.junit.runner.Description, SchedulingStrategy, int) + * {@link Scheduler(ConsoleStream, org.junit.runner.Description, SchedulingStrategy, int)} + * or {@link Scheduler(ConsoleStream, org.junit.runner.Description, SchedulingStrategy)} + * @see Scheduler(ConsoleStream, org.junit.runner.Description, SchedulingStrategy) + * @see Scheduler(ConsoleStream, org.junit.runner.Description, SchedulingStrategy, int) */ - public Scheduler( ConsoleLogger logger, Description description, Scheduler masterScheduler, + public Scheduler( ConsoleStream logger, Description description, Scheduler masterScheduler, SchedulingStrategy strategy, int concurrency ) { this( logger, description, strategy, concurrency ); @@ -160,7 +160,7 @@ public class Scheduler * <p/> * Cached thread pool is infinite and can be always shared. */ - public Scheduler( ConsoleLogger logger, Description description, Scheduler masterScheduler, + public Scheduler( ConsoleStream logger, Description description, Scheduler masterScheduler, SchedulingStrategy strategy ) { this( logger, description, masterScheduler, strategy, 0 ); @@ -215,12 +215,12 @@ public class Scheduler { stream.close(); } - logger.info( out.toString() ); + logger.println( out.toString() ); } protected void logQuietly( String msg ) { - logger.info( msg ); + logger.println( msg ); } /** http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SchedulingStrategies.java ---------------------------------------------------------------------- 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 6706951..520c312 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 @@ package org.apache.maven.surefire.junitcore.pc; * under the License. */ -import org.apache.maven.surefire.report.ConsoleLogger; +import org.apache.maven.surefire.report.ConsoleStream; import org.apache.maven.surefire.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( ConsoleLogger logger ) + public static SchedulingStrategy createInvokerStrategy( ConsoleStream logger ) { return new InvokerStrategy( logger ); } @@ -50,7 +50,7 @@ public class SchedulingStrategies * @param nThreads fixed pool capacity * @return parallel scheduling strategy */ - public static SchedulingStrategy createParallelStrategy( ConsoleLogger logger, int nThreads ) + public static SchedulingStrategy createParallelStrategy( ConsoleStream logger, int nThreads ) { return new NonSharedThreadPoolStrategy( logger, Executors.newFixedThreadPool( nThreads, DAEMON_THREAD_FACTORY ) ); @@ -60,7 +60,7 @@ public class SchedulingStrategies * @param logger current error logger * @return parallel scheduling strategy with unbounded capacity */ - public static SchedulingStrategy createParallelStrategyUnbounded( ConsoleLogger logger ) + public static SchedulingStrategy createParallelStrategyUnbounded( ConsoleStream logger ) { return new NonSharedThreadPoolStrategy( logger, Executors.newCachedThreadPool( DAEMON_THREAD_FACTORY ) ); } @@ -78,7 +78,7 @@ public class SchedulingStrategies * @return parallel strategy with shared thread pool * @throws NullPointerException if <tt>threadPool</tt> is null */ - public static SchedulingStrategy createParallelSharedStrategy( ConsoleLogger logger, ExecutorService threadPool ) + public static SchedulingStrategy createParallelSharedStrategy( ConsoleStream logger, ExecutorService threadPool ) { if ( threadPool == null ) { http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SchedulingStrategy.java ---------------------------------------------------------------------- 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 b1e1fd0..ce337bc 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,7 +19,7 @@ package org.apache.maven.surefire.junitcore.pc; * under the License. */ -import org.apache.maven.surefire.report.ConsoleLogger; +import org.apache.maven.surefire.report.ConsoleStream; import java.io.ByteArrayOutputStream; import java.io.PrintStream; @@ -43,9 +43,9 @@ public abstract class SchedulingStrategy private final AtomicBoolean canSchedule = new AtomicBoolean( true ); - private final ConsoleLogger logger; + private final ConsoleStream logger; - protected SchedulingStrategy( ConsoleLogger logger ) + protected SchedulingStrategy( ConsoleStream logger ) { this.logger = logger; } @@ -145,6 +145,6 @@ public abstract class SchedulingStrategy { stream.close(); } - logger.info( out.toString() ); + logger.println( out.toString() ); } } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SharedThreadPoolStrategy.java ---------------------------------------------------------------------- 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 ff72d64..a577fdb 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 @@ package org.apache.maven.surefire.junitcore.pc; * under the License. */ -import org.apache.maven.surefire.report.ConsoleLogger; +import org.apache.maven.surefire.report.ConsoleStream; import java.util.concurrent.CancellationException; import java.util.concurrent.ConcurrentLinkedQueue; @@ -37,7 +37,7 @@ import java.util.concurrent.Future; final class SharedThreadPoolStrategy extends AbstractThreadPoolStrategy { - SharedThreadPoolStrategy( ConsoleLogger logger, ExecutorService threadPool ) + SharedThreadPoolStrategy( ConsoleStream logger, ExecutorService threadPool ) { super( logger, threadPool, new ConcurrentLinkedQueue<Future<?>>() ); } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SingleThreadScheduler.java ---------------------------------------------------------------------- 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 88ae625..a0f5c2d 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 @@ package org.apache.maven.surefire.junitcore.pc; * under the License. */ -import org.apache.maven.surefire.report.ConsoleLogger; +import org.apache.maven.surefire.report.ConsoleStream; import org.apache.maven.surefire.util.internal.DaemonThreadFactory; import org.junit.runner.Description; import org.junit.runners.model.RunnerScheduler; @@ -42,7 +42,7 @@ import java.util.concurrent.TimeUnit; */ final class SingleThreadScheduler { - private final ConsoleLogger logger; + private final ConsoleStream logger; private final ExecutorService pool = newPool(); @@ -54,7 +54,7 @@ final class SingleThreadScheduler return new ThreadPoolExecutor( 1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(), tf ); } - SingleThreadScheduler( ConsoleLogger logger ) + SingleThreadScheduler( ConsoleStream logger ) { this.logger = logger; SchedulingStrategy strategy = SchedulingStrategies.createParallelSharedStrategy( logger, pool ); http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/ConcurrentRunListenerTest.java ---------------------------------------------------------------------- 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 24fb2da..dc504b6 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 @@ -24,7 +24,8 @@ 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.report.DefaultConsoleReporter; +import org.apache.maven.surefire.report.ConsoleStream; +import org.apache.maven.surefire.report.DefaultDirectConsoleReporter; import org.apache.maven.surefire.report.ReporterFactory; import org.apache.maven.surefire.report.RunListener; import org.apache.maven.surefire.report.RunStatistics; @@ -147,7 +148,7 @@ public class ConcurrentRunListenerTest { DefaultReporterFactory reporterFactory = createReporterFactory(); HashMap<String, TestSet> classMethodCounts = new HashMap<String, TestSet>(); - final DefaultConsoleReporter defaultConsoleReporter = new DefaultConsoleReporter( System.out ); + final ConsoleStream defaultConsoleReporter = new DefaultDirectConsoleReporter( System.out ); RunListener reporter = new ClassesParallelRunListener( classMethodCounts, reporterFactory, defaultConsoleReporter ); JUnitCoreRunListener runListener = new JUnitCoreRunListener( reporter, classMethodCounts ); @@ -200,8 +201,8 @@ public class ConcurrentRunListenerTest throws TestSetFailedException { return new JUnitCoreRunListener( - new ClassesParallelRunListener( testSetMap, reporterFactory, new DefaultConsoleReporter( System.out ) ), - testSetMap ); + new ClassesParallelRunListener( testSetMap, reporterFactory, + new DefaultDirectConsoleReporter( System.out ) ), testSetMap ); } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/DefaultConsoleReporter.java ---------------------------------------------------------------------- diff --git a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/DefaultConsoleReporter.java b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/DefaultConsoleReporter.java new file mode 100644 index 0000000..0c8e856 --- /dev/null +++ b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/DefaultConsoleReporter.java @@ -0,0 +1,68 @@ +package org.apache.maven.surefire.junitcore; + +/* + * 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; + +import java.io.PrintStream; + +/** + * @author <a href="mailto:[email protected]">Kristian Rosenvold</a> + */ +public class DefaultConsoleReporter + implements ConsoleLogger +{ + private final PrintStream systemOut; + + public DefaultConsoleReporter( PrintStream systemOut ) + { + this.systemOut = systemOut; + } + + public void debug( String message ) + { + + } + + public void info( String message ) + { + systemOut.println( message ); + } + + public void warning( String message ) + { + + } + + public void error( String message ) + { + + } + + public void error( String message, Throwable t ) + { + + } + + public void error( Throwable t ) + { + + } +} http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/JUnitCoreTester.java ---------------------------------------------------------------------- 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 e021647..41ae610 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 @@ -20,9 +20,8 @@ package org.apache.maven.surefire.junitcore; */ import org.apache.maven.plugin.surefire.report.DefaultReporterFactory; -import org.apache.maven.surefire.report.ConsoleOutputCapture; import org.apache.maven.surefire.report.ConsoleOutputReceiver; -import org.apache.maven.surefire.report.DefaultConsoleReporter; +import org.apache.maven.surefire.report.DefaultDirectConsoleReporter; import org.apache.maven.surefire.report.ReporterFactory; import org.apache.maven.surefire.report.RunListener; import org.apache.maven.surefire.testset.TestSetFailedException; @@ -33,6 +32,9 @@ import org.junit.runner.Result; import java.util.HashMap; import java.util.concurrent.ExecutionException; +import static org.apache.maven.surefire.junitcore.ConcurrentRunListener.createInstance; +import static org.apache.maven.surefire.report.ConsoleOutputCapture.startCapture; + /** * @author Kristian Rosenvold */ @@ -58,12 +60,10 @@ public class JUnitCoreTester try { - final HashMap<String, TestSet> classMethodCounts = new HashMap<String, TestSet>(); - RunListener reporter = - ConcurrentRunListener.createInstance( classMethodCounts, reporterManagerFactory, parallelClasses, false, - new DefaultConsoleReporter( System.out ) ); - ConsoleOutputCapture.startCapture( (ConsoleOutputReceiver) reporter ); + RunListener reporter = createInstance( classMethodCounts, reporterManagerFactory, parallelClasses, false, + new DefaultDirectConsoleReporter( System.out ) ); + startCapture( (ConsoleOutputReceiver) reporter ); JUnitCoreRunListener runListener = new JUnitCoreRunListener( reporter, classMethodCounts ); JUnitCore junitCore = new JUnitCore(); http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/Logger.java ---------------------------------------------------------------------- diff --git a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/Logger.java b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/Logger.java deleted file mode 100644 index 4fff4b0..0000000 --- a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/Logger.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.apache.maven.surefire.junitcore; - -/* - * 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.surefire.report.ConsoleLogger; - -public final class Logger implements ConsoleLogger -{ - public void info( String message ) - { - System.out.println( message ); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/Surefire746Test.java ---------------------------------------------------------------------- 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 0ee4269..3e9ca93 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 @@ -20,14 +20,14 @@ package org.apache.maven.surefire.junitcore; import java.io.File; import java.util.*; import java.util.concurrent.ConcurrentHashMap; + import org.apache.maven.plugin.surefire.report.DefaultReporterFactory; import org.apache.maven.surefire.booter.BaseProviderFactory; import org.apache.maven.surefire.booter.ProviderParameterNames; import org.apache.maven.surefire.common.junit4.JUnit4RunListener; import org.apache.maven.surefire.common.junit4.Notifier; import org.apache.maven.surefire.junit4.MockReporter; -import org.apache.maven.surefire.report.ConsoleLogger; -import org.apache.maven.surefire.report.DefaultConsoleReporter; +import org.apache.maven.surefire.report.DefaultDirectConsoleReporter; import org.apache.maven.surefire.report.ReporterConfiguration; import org.apache.maven.surefire.report.ReporterFactory; import org.apache.maven.surefire.report.RunListener; @@ -89,7 +89,6 @@ public class Surefire746Test { ReporterFactory reporterFactory = DefaultReporterFactory.defaultNoXml(); BaseProviderFactory providerParameters = new BaseProviderFactory( reporterFactory, true ); - ConsoleLogger consoleLogger = new DefaultConsoleReporter( System.out ); providerParameters.setReporterConfiguration( new ReporterConfiguration( new File( "" ), false ) ); Map<String, String> junitProps = new HashMap<String, String>(); @@ -100,7 +99,8 @@ public class Surefire746Test final Map<String, TestSet> testSetMap = new ConcurrentHashMap<String, TestSet>(); RunListener listener = - ConcurrentRunListener.createInstance( testSetMap, reporterFactory, false, false, consoleLogger ); + ConcurrentRunListener.createInstance( testSetMap, reporterFactory, false, false, + new DefaultDirectConsoleReporter( System.out ) ); TestsToRun testsToRun = new TestsToRun( Collections.<Class<?>>singleton( TestClassTest.class ) ); @@ -116,7 +116,8 @@ public class Surefire746Test // 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 Logger() ) + new JUnitCoreWrapper( new Notifier( dummy, 0 ), jUnitCoreParameters, + new DefaultDirectConsoleReporter( System.out ) ) .execute( testsToRun, customRunListeners, null ); } finally http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerBuilderTest.java ---------------------------------------------------------------------- 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 aca5d68..5184cdd 100644 --- 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,7 +20,8 @@ package org.apache.maven.surefire.junitcore.pc; */ import net.jcip.annotations.NotThreadSafe; -import org.apache.maven.surefire.junitcore.Logger; +import org.apache.maven.surefire.report.ConsoleStream; +import org.apache.maven.surefire.report.DefaultDirectConsoleReporter; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; @@ -63,6 +64,8 @@ public class ParallelComputerBuilderTest private static volatile Runnable shutdownTask; + private static final ConsoleStream logger = new DefaultDirectConsoleReporter( System.out ); + @Rule public final Stopwatch stopwatch = new Stopwatch() {}; @@ -103,7 +106,7 @@ public class ParallelComputerBuilderTest @Test public void parallelMethodsReuseOneOrTwoThreads() { - ParallelComputerBuilder parallelComputerBuilder = new ParallelComputerBuilder( new Logger() ); + ParallelComputerBuilder parallelComputerBuilder = new ParallelComputerBuilder( logger ); parallelComputerBuilder.useOnePool( 4 ); // One thread because one suite: TestSuite, however the capacity is 5. @@ -146,7 +149,7 @@ public class ParallelComputerBuilderTest @Test public void suiteAndClassInOnePool() { - ParallelComputerBuilder parallelComputerBuilder = new ParallelComputerBuilder( new Logger() ); + ParallelComputerBuilder parallelComputerBuilder = new ParallelComputerBuilder( logger ); parallelComputerBuilder.useOnePool( 5 ); parallelComputerBuilder.parallelSuites( 5 ); parallelComputerBuilder.parallelClasses( 5 ); @@ -172,7 +175,7 @@ public class ParallelComputerBuilderTest public void onePoolWithUnlimitedParallelMethods() { // see ParallelComputerBuilder Javadoc - ParallelComputerBuilder parallelComputerBuilder = new ParallelComputerBuilder( new Logger() ); + ParallelComputerBuilder parallelComputerBuilder = new ParallelComputerBuilder( logger ); parallelComputerBuilder.useOnePool( 8 ); parallelComputerBuilder.parallelSuites( 2 ); parallelComputerBuilder.parallelClasses( 4 ); @@ -197,7 +200,7 @@ public class ParallelComputerBuilderTest @Test public void underflowParallelism() { - ParallelComputerBuilder parallelComputerBuilder = new ParallelComputerBuilder( new Logger() ); + ParallelComputerBuilder parallelComputerBuilder = new ParallelComputerBuilder( logger ); parallelComputerBuilder.useOnePool( 3 ); // One thread because one suite: TestSuite. @@ -229,7 +232,7 @@ public class ParallelComputerBuilderTest @Test public void separatePoolsWithSuite() { - ParallelComputerBuilder parallelComputerBuilder = new ParallelComputerBuilder( new Logger() ); + ParallelComputerBuilder parallelComputerBuilder = new ParallelComputerBuilder( logger ); parallelComputerBuilder.parallelSuites( 5 ); parallelComputerBuilder.parallelClasses( 5 ); parallelComputerBuilder.parallelMethods( 3 ); @@ -253,7 +256,7 @@ public class ParallelComputerBuilderTest @Test public void separatePoolsWithSuiteAndClass() { - ParallelComputerBuilder parallelComputerBuilder = new ParallelComputerBuilder( new Logger() ); + ParallelComputerBuilder parallelComputerBuilder = new ParallelComputerBuilder( logger ); parallelComputerBuilder.parallelSuites( 5 ); parallelComputerBuilder.parallelClasses( 5 ); parallelComputerBuilder.parallelMethods( 3 ); @@ -280,7 +283,7 @@ public class ParallelComputerBuilderTest @Test public void separatePoolsWithSuiteAndSequentialClasses() { - ParallelComputerBuilder parallelComputerBuilder = new ParallelComputerBuilder( new Logger() ); + ParallelComputerBuilder parallelComputerBuilder = new ParallelComputerBuilder( logger ); parallelComputerBuilder.parallelSuites( 5 ); parallelComputerBuilder.parallelClasses( 1 ); parallelComputerBuilder.parallelMethods( 3 ); @@ -324,7 +327,7 @@ public class ParallelComputerBuilderTest public void nothingParallel() { JUnitCore core = new JUnitCore(); - ParallelComputerBuilder builder = new ParallelComputerBuilder( new Logger() ); + ParallelComputerBuilder builder = new ParallelComputerBuilder( logger ); assertFalse( builder.isOptimized() ); Result result = core.run( builder.buildComputer(), NothingDoingTest1.class, NothingDoingTest2.class ); @@ -377,7 +380,7 @@ public class ParallelComputerBuilderTest @Test public void keepBeforeAfterOneClass() { - ParallelComputerBuilder builder = new ParallelComputerBuilder( new Logger() ); + ParallelComputerBuilder builder = new ParallelComputerBuilder( logger ); builder.parallelMethods(); assertFalse( builder.isOptimized() ); testKeepBeforeAfter( builder, NothingDoingTest1.class ); @@ -386,7 +389,7 @@ public class ParallelComputerBuilderTest @Test public void keepBeforeAfterTwoClasses() { - ParallelComputerBuilder builder = new ParallelComputerBuilder( new Logger() ); + ParallelComputerBuilder builder = new ParallelComputerBuilder( logger ); builder.useOnePool( 5 ).parallelClasses( 1 ).parallelMethods( 2 ); assertFalse( builder.isOptimized() ); testKeepBeforeAfter( builder, NothingDoingTest1.class, NothingDoingTest2.class ); @@ -395,7 +398,7 @@ public class ParallelComputerBuilderTest @Test public void keepBeforeAfterTwoParallelClasses() { - ParallelComputerBuilder builder = new ParallelComputerBuilder( new Logger() ); + ParallelComputerBuilder builder = new ParallelComputerBuilder( logger ); builder.useOnePool( 8 ).parallelClasses( 2 ).parallelMethods( 2 ); assertFalse( builder.isOptimized() ); JUnitCore core = new JUnitCore(); @@ -411,7 +414,7 @@ public class ParallelComputerBuilderTest @Test public void notThreadSafeTest() { - ParallelComputerBuilder builder = new ParallelComputerBuilder( new Logger() ) + ParallelComputerBuilder builder = new ParallelComputerBuilder( logger ) .useOnePool( 6 ).optimize( true ).parallelClasses( 3 ).parallelMethods( 3 ); ParallelComputerBuilder.PC computer = (ParallelComputerBuilder.PC) builder.buildComputer(); Result result = new JUnitCore().run( computer, NotThreadSafeTest1.class, NotThreadSafeTest2.class ); @@ -432,7 +435,7 @@ public class ParallelComputerBuilderTest @Test public void mixedThreadSafety() { - ParallelComputerBuilder builder = new ParallelComputerBuilder( new Logger() ) + ParallelComputerBuilder builder = new ParallelComputerBuilder( logger ) .useOnePool( 6 ).optimize( true ).parallelClasses( 3 ).parallelMethods( 3 ); ParallelComputerBuilder.PC computer = (ParallelComputerBuilder.PC) builder.buildComputer(); Result result = new JUnitCore().run( computer, NotThreadSafeTest1.class, NormalTest1.class ); @@ -454,7 +457,7 @@ public class ParallelComputerBuilderTest @Test public void notThreadSafeTestsInSuite() { - ParallelComputerBuilder builder = new ParallelComputerBuilder( new Logger() ) + ParallelComputerBuilder builder = new ParallelComputerBuilder( logger ) .useOnePool( 5 ).parallelMethods( 3 ); assertFalse( builder.isOptimized() ); ParallelComputerBuilder.PC computer = (ParallelComputerBuilder.PC) builder.buildComputer(); @@ -477,7 +480,7 @@ public class ParallelComputerBuilderTest @Test public void mixedThreadSafetyInSuite() { - ParallelComputerBuilder builder = new ParallelComputerBuilder( new Logger() ) + ParallelComputerBuilder builder = new ParallelComputerBuilder( logger ) .useOnePool( 10 ).optimize( true ).parallelSuites( 2 ).parallelClasses( 3 ).parallelMethods( 3 ); ParallelComputerBuilder.PC computer = (ParallelComputerBuilder.PC) builder.buildComputer(); Result result = new JUnitCore().run( computer, MixedSuite.class ); @@ -499,7 +502,7 @@ public class ParallelComputerBuilderTest @Test public void inheritanceWithNotThreadSafe() { - ParallelComputerBuilder builder = new ParallelComputerBuilder( new Logger() ) + ParallelComputerBuilder builder = new ParallelComputerBuilder( logger ) .useOnePool( 10 ).optimize( true ).parallelSuites( 2 ).parallelClasses( 3 ).parallelMethods( 3 ); ParallelComputerBuilder.PC computer = (ParallelComputerBuilder.PC) builder.buildComputer(); Result result = new JUnitCore().run( computer, OverMixedSuite.class ); @@ -529,7 +532,7 @@ public class ParallelComputerBuilderTest TimeUnit.MILLISECONDS.sleep( 500 ); } Collection<Thread> expectedThreads = jvmThreads(); - ParallelComputerBuilder parallelComputerBuilder = new ParallelComputerBuilder( new Logger() ); + ParallelComputerBuilder parallelComputerBuilder = new ParallelComputerBuilder( logger ); parallelComputerBuilder.parallelMethods( 3 ); ParallelComputer computer = parallelComputerBuilder.buildComputer(); Result result = new JUnitCore().run( computer, TestWithBeforeAfter.class ); @@ -564,7 +567,7 @@ public class ParallelComputerBuilderTest { Result run( final boolean useInterrupt ) { - ParallelComputerBuilder parallelComputerBuilder = new ParallelComputerBuilder( new Logger() ) + ParallelComputerBuilder parallelComputerBuilder = new ParallelComputerBuilder( logger ) .useOnePool( 8 ) .parallelSuites( 2 ) .parallelClasses( 3 ) http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/6a79127a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerUtilTest.java ---------------------------------------------------------------------- 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 a19c8c8..15daac9 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 @@ -20,7 +20,8 @@ package org.apache.maven.surefire.junitcore.pc; */ import org.apache.maven.surefire.junitcore.JUnitCoreParameters; -import org.apache.maven.surefire.junitcore.Logger; +import org.apache.maven.surefire.report.ConsoleStream; +import org.apache.maven.surefire.report.DefaultDirectConsoleReporter; import org.apache.maven.surefire.testset.TestSetFailedException; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -58,6 +59,8 @@ import static java.util.concurrent.TimeUnit.MILLISECONDS; @RunWith( Theories.class ) public final class ParallelComputerUtilTest { + private final ConsoleStream logger = new DefaultDirectConsoleReporter( System.out ); + @DataPoint public static final int CPU_1 = 1; @@ -968,7 +971,7 @@ public final class ParallelComputerUtilTest properties.put(PARALLEL_KEY, "methods"); properties.put(THREADCOUNTMETHODS_KEY, "2"); JUnitCoreParameters params = new JUnitCoreParameters( properties ); - ParallelComputerBuilder pcBuilder = new ParallelComputerBuilder( new Logger(), params ); + ParallelComputerBuilder pcBuilder = new ParallelComputerBuilder( logger, params ); ParallelComputer pc = pcBuilder.buildComputer(); Result result = new JUnitCore().run( pc, TestClass.class ); long timeSpent = stopwatch.runtime( MILLISECONDS ); @@ -992,7 +995,7 @@ public final class ParallelComputerUtilTest properties.put(THREADCOUNTMETHODS_KEY, "2"); properties.put(PARALLEL_TIMEOUT_KEY, Double.toString(2.5d)); JUnitCoreParameters params = new JUnitCoreParameters( properties ); - ParallelComputerBuilder pcBuilder = new ParallelComputerBuilder( new Logger(), params ); + ParallelComputerBuilder pcBuilder = new ParallelComputerBuilder( logger, params ); ParallelComputer pc = pcBuilder.buildComputer(); new JUnitCore().run( pc, TestClass.class ); long timeSpent = stopwatch.runtime( MILLISECONDS ); @@ -1015,7 +1018,7 @@ public final class ParallelComputerUtilTest properties.put(THREADCOUNTMETHODS_KEY, "2"); properties.put(PARALLEL_TIMEOUTFORCED_KEY, Double.toString(2.5d)); JUnitCoreParameters params = new JUnitCoreParameters( properties ); - ParallelComputerBuilder pcBuilder = new ParallelComputerBuilder( new Logger(), params ); + ParallelComputerBuilder pcBuilder = new ParallelComputerBuilder( logger, params ); ParallelComputer pc = pcBuilder.buildComputer(); new JUnitCore().run( pc, TestClass.class ); long timeSpent = stopwatch.runtime( MILLISECONDS ); @@ -1041,7 +1044,7 @@ public final class ParallelComputerUtilTest properties.put(PARALLEL_TIMEOUT_KEY, Double.toString(2.5d)); properties.put(PARALLEL_TIMEOUTFORCED_KEY, Double.toString(3.5d)); JUnitCoreParameters params = new JUnitCoreParameters( properties ); - ParallelComputerBuilder pcBuilder = new ParallelComputerBuilder( new Logger(), params ); + ParallelComputerBuilder pcBuilder = new ParallelComputerBuilder( logger, params ); ParallelComputer pc = pcBuilder.buildComputer(); new JUnitCore().run( pc, TestClass.class ); long timeSpent = stopwatch.runtime( MILLISECONDS ); @@ -1065,7 +1068,7 @@ public final class ParallelComputerUtilTest properties.put(PARALLEL_TIMEOUTFORCED_KEY, Double.toString(3.5d)); properties.put(PARALLEL_TIMEOUT_KEY, Double.toString(4.0d)); JUnitCoreParameters params = new JUnitCoreParameters( properties ); - ParallelComputerBuilder pcBuilder = new ParallelComputerBuilder( new Logger(), params ); + ParallelComputerBuilder pcBuilder = new ParallelComputerBuilder( logger, params ); ParallelComputer pc = pcBuilder.buildComputer(); new JUnitCore().run( pc, TestClass.class ); long timeSpent = stopwatch.runtime( MILLISECONDS );
