[SUREFIRE-1436] Increase usability in quiet mode
Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/17c18e52 Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/17c18e52 Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/17c18e52 Branch: refs/heads/master Commit: 17c18e5209cf1544f7ace31e99573e65a135bb60 Parents: 0bc4d72 Author: Tibor17 <[email protected]> Authored: Fri Oct 13 01:01:58 2017 +0200 Committer: Tibor17 <[email protected]> Committed: Fri Oct 13 01:01:58 2017 +0200 ---------------------------------------------------------------------- .../surefire/booterclient/output/ForkClient.java | 18 +++++++++++++----- .../plugin/surefire/log/PluginConsoleLogger.java | 6 ++++++ .../surefire/report/TestSetRunListener.java | 6 ++++++ .../surefire/booterclient/MockReporter.java | 5 +++++ .../report/DefaultReporterFactoryTest.java | 5 +++++ .../surefire/report/PluginConsoleLogger.java | 7 +++++++ .../maven/surefire/booter/ForkingRunListener.java | 6 ++++++ .../plugin/surefire/log/api/ConsoleLogger.java | 2 +- .../surefire/log/api/ConsoleLoggerDecorator.java | 2 +- .../surefire/log/api/NullConsoleLogger.java | 6 ++++++ .../surefire/log/api/PrintStreamLogger.java | 6 ++++++ .../junitcore/DefaultConsoleReporter.java | 5 +++++ .../surefire/report/TestSuiteXmlParserTest.java | 5 +++++ 13 files changed, 72 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/17c18e52/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java index bebc949..9c6bb6b 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 @@ -335,13 +335,21 @@ public class ForkClient log.debug( event ); } } - else if ( debug ) - { - log.debug( event ); - } else { - log.info( event ); + if ( debug ) + { + log.debug( event ); + } + else if ( log.isQuiet() ) + { + // In case of debugging forked JVM, see PRINTABLE_JVM_NATIVE_STREAM. + System.out.println( event ); + } + else + { + log.info( event ); + } } } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/17c18e52/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/log/PluginConsoleLogger.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/log/PluginConsoleLogger.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/log/PluginConsoleLogger.java index 0f1217c..cd1dd1f 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/log/PluginConsoleLogger.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/log/PluginConsoleLogger.java @@ -129,4 +129,10 @@ public final class PluginConsoleLogger mojoLogger.error( t ); } } + + @Override + public boolean isQuiet() + { + return !isErrorEnabled() && !isWarnEnabled() && !isInfoEnabled() && !isDebugEnabled(); + } } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/17c18e52/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java index e10b8e8..2da9da3 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 @@ -124,6 +124,12 @@ public class TestSetRunListener } @Override + public boolean isQuiet() + { + return consoleReporter.getConsoleLogger().isQuiet(); + } + + @Override public void writeTestOutput( byte[] buf, int off, int len, boolean stdout ) { try http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/17c18e52/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/MockReporter.java ---------------------------------------------------------------------- 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 150d443..147dee7 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 @@ -197,6 +197,11 @@ public class MockReporter } @Override + public boolean isQuiet() { + return false; + } + + @Override public void writeTestOutput( byte[] buf, int off, int len, boolean stdout ) { events.add( stdout ? STDOUT : STDERR ); http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/17c18e52/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java index 67f66d6..7b07163 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 @@ -179,6 +179,11 @@ public class DefaultReporterFactoryTest { } + @Override + public boolean isQuiet() { + return false; + } + List<String> getMessages() { return messages; http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/17c18e52/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/PluginConsoleLogger.java ---------------------------------------------------------------------- diff --git a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/PluginConsoleLogger.java b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/PluginConsoleLogger.java index 3a75037..1ad4d74 100644 --- a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/PluginConsoleLogger.java +++ b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/PluginConsoleLogger.java @@ -134,6 +134,13 @@ final class PluginConsoleLogger } } + @Override + public boolean isQuiet() + { + return !mojoLogger.isErrorEnabled() && !mojoLogger.isWarnEnabled() + && !mojoLogger.isInfoEnabled() && !mojoLogger.isDebugEnabled(); + } + private static MessageBuilder createAnsiBuilder( CharSequence message ) { return buffer( bufferSize( message ) ); http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/17c18e52/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java ---------------------------------------------------------------------- diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java b/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java index 7eb7fa8..f145080 100644 --- a/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java +++ b/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java @@ -282,6 +282,12 @@ public class ForkingRunListener error( null, t ); } + @Override + public boolean isQuiet() + { + return false; + } + private void encodeAndWriteToTarget( String string ) { byte[] encodeBytes = encodeStringForForkCommunication( string ); http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/17c18e52/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 index 34a8f83..f1cbcb8 100644 --- 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 @@ -57,5 +57,5 @@ public interface ConsoleLogger */ void error( Throwable t ); - + boolean isQuiet(); } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/17c18e52/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 index 0e20105..f98f233 100644 --- 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 @@ -1 +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.20 */ 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; } @Override public void debug( String message ) { try { logger.getClass() .getMethod( "debug", String.class ) .invoke( logger, message ); } catch ( Exception e ) { throw new IllegalStateException( e.getLocalizedMessage(), e ); } } @Override public void info( String message ) { try { logger.getClass() .getMethod( "info", String.cla ss ) .invoke( logger, message ); } catch ( Exception e ) { throw new IllegalStateException( e.getLocalizedMessage(), e ); } } @Override public void warning( String message ) { try { logger.getClass() .getMethod( "warning", String.class ) .invoke( logger, message ); } catch ( Exception e ) { throw new IllegalStateException( e.getLocalizedMessage(), e ); } } @Override public void error( String message ) { try { logger.getClass() .getMethod( "error", String.class ) .invoke( logger, message ); } catch ( Exception e ) { throw new IllegalStateException( e.getLocalizedMessage(), e ); } } @Override public void error( String message, Throwable t ) { t ry { logger.getClass() .getMethod( "error", String.class, Throwable.class ) .invoke( logger, message, t ); } catch ( Exception e ) { throw new IllegalStateException( e.getLocalizedMessage(), e ); } } @Override 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 +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.20 */ 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; } @Override public void debug( String message ) { try { logger.getClass() .getMethod( "debug", String.class ) .invoke( logger, message ); } catch ( Exception e ) { throw new IllegalStateException( e.getLocalizedMessage(), e ); } } @Override public void info( String message ) { try { logger.getClass() .getMethod( "info", String.cla ss ) .invoke( logger, message ); } catch ( Exception e ) { throw new IllegalStateException( e.getLocalizedMessage(), e ); } } @Override public void warning( String message ) { try { logger.getClass() .getMethod( "warning", String.class ) .invoke( logger, message ); } catch ( Exception e ) { throw new IllegalStateException( e.getLocalizedMessage(), e ); } } @Override public void error( String message ) { try { logger.getClass() .getMethod( "error", String.class ) .invoke( logger, message ); } catch ( Exception e ) { throw new IllegalStateException( e.getLocalizedMessage(), e ); } } @Override public void error( String message, Throwable t ) { t ry { logger.getClass() .getMethod( "error", String.class, Throwable.class ) .invoke( logger, message, t ); } catch ( Exception e ) { throw new IllegalStateException( e.getLocalizedMessage(), e ); } } @Override public void error( Throwable t ) { try { logger.getClass() .getMethod( "error", Throwable.class ) .invoke( logger, t ); } catch ( Exception e ) { throw new IllegalStateException( e.getLocalizedMessage(), e ); } } @Override public boolean isQuiet() { try { return (Boolean) logger.getClass() .getMethod( "isQuiet", Throwable.class ) .invoke( logger ); } 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/17c18e52/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 index 4094fe4..6481bd2 100644 --- 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 @@ -56,4 +56,10 @@ public final class NullConsoleLogger implements ConsoleLogger public void error( Throwable t ) { } + + @Override + public boolean isQuiet() + { + return true; + } } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/17c18e52/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 index 5c9c99d..480e313 100644 --- 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 @@ -69,4 +69,10 @@ public class PrintStreamLogger { error( null, t ); } + + @Override + public boolean isQuiet() + { + return false; + } } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/17c18e52/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 index 53b20bb..979b65d 100644 --- 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 @@ -71,4 +71,9 @@ public class DefaultConsoleReporter { } + + @Override + public boolean isQuiet() { + return false; + } } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/17c18e52/surefire-report-parser/src/test/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParserTest.java ---------------------------------------------------------------------- diff --git a/surefire-report-parser/src/test/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParserTest.java b/surefire-report-parser/src/test/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParserTest.java index 9e03f4a..39fe398 100644 --- a/surefire-report-parser/src/test/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParserTest.java +++ b/surefire-report-parser/src/test/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParserTest.java @@ -86,6 +86,11 @@ public class TestSuiteXmlParserTest { loggedErrors.add( t.getLocalizedMessage() ); } + + @Override + public boolean isQuiet() { + return false; + } }; }
