You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Michael Kroll (Jira)" <ji...@apache.org> on 2022/04/26 14:01:00 UTC

[jira] [Updated] (SUREFIRE-2079) exception with long message removes test from result instead of failing it

     [ https://issues.apache.org/jira/browse/SUREFIRE-2079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Kroll updated SUREFIRE-2079:
------------------------------------
    Description: 
surefire 3.0.0-M6 excludes a test from the test result, if an exception with a long message (~1000) is thrown from an inner class.

{noformat}
    $ mvn test
    [...]
    [INFO] Running org.example.ThrowExceptionWithLongMessageTest
    [INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.044 s - in org.example.ThrowExceptionWithLongMessageTest
    [INFO]
    [INFO] Results:
    [INFO]
    [INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
    [INFO]
    [WARNING] Corrupted channel by directly writing to native stream in forked JVM 1. See FAQ web page and the dump file     [INFO]     [...]
    [...]
    [INFO] BUILD SUCCESS
{noformat}

with

{code:java|title=test class}
package org.example;

import org.junit.jupiter.api.Test;

class ThrowExceptionWithLongMessageTest {

    @Test
    public void example() {
        Inner.throwException(1000);
    }
        
    public static class Inner {
        public static void throwException(final int messageLen) {
            final var sb = new StringBuilder();
            for (int i = 0; i < messageLen; i++) {
                sb.append("A");
            }
            throw new IllegalStateException(sb.toString());
        }
    }
}
{code}

Demonstrator: see links

surefire 3.0.0-M5 fails the test like expected:
{noformat}
    [INFO] Running org.example.ThrowExceptionWithLongMessageTest
    [ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.036 s <<< FAILURE! - in org.example.ThrowExceptionWithLongMessageTest
{noformat}

  was:
surefire 3.0.0-M6 excludes a test from the test result, if an exception with a long message (~1000) is thrown from an inner class.

{noformat}
    $ mvn test
    [...]
    [INFO] Running org.example.ThrowExceptionWithLongMessageTest
    [INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.044 s - in org.example.ThrowExceptionWithLongMessageTest
    [INFO]
    [INFO] Results:
    [INFO]
    [INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
    [INFO]
    [WARNING] Corrupted channel by directly writing to native stream in forked JVM 1. See FAQ web page and the dump file     [INFO]     [...]
    [...]
    [INFO] BUILD SUCCESS
{noformat}

with

{code:java|title=test class}
package org.example;

import org.junit.jupiter.api.Test;

class ThrowExceptionWithLongMessageTest {

    @Test
    public void example() {
        Inner.throwException(1000);
    }
        
    public static class Inner {
        public static void throwException(final int messageLen) {
            final var sb = new StringBuilder();
            for (int i = 0; i < messageLen; i++) {
                sb.append("A");
            }
            throw new IllegalStateException(sb.toString());
        }
    }
}
{code}

Demonstrator:
https://github.com/mickroll/demonstrator/tree/surefire-exception-with-long-message-removes-test-from-result

surefire 3.0.0-M5 fails the test like expected:
{noformat}
    [INFO] Running org.example.ThrowExceptionWithLongMessageTest
    [ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.036 s <<< FAILURE! - in org.example.ThrowExceptionWithLongMessageTest
{noformat}


> exception with long message removes test from result instead of failing it
> --------------------------------------------------------------------------
>
>                 Key: SUREFIRE-2079
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-2079
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Maven Surefire Plugin
>    Affects Versions: 3.0.0-M6
>         Environment: Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
> Maven home: [...]
> Java version: 17.0.3, vendor: BellSoft, runtime: C:\Users\[...]\.sdkman\candidates\java\17.0.3-librca
> Default locale: de_DE, platform encoding: Cp1252
> OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
>            Reporter: Michael Kroll
>            Priority: Critical
>              Labels: test-stability
>
> surefire 3.0.0-M6 excludes a test from the test result, if an exception with a long message (~1000) is thrown from an inner class.
> {noformat}
>     $ mvn test
>     [...]
>     [INFO] Running org.example.ThrowExceptionWithLongMessageTest
>     [INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.044 s - in org.example.ThrowExceptionWithLongMessageTest
>     [INFO]
>     [INFO] Results:
>     [INFO]
>     [INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
>     [INFO]
>     [WARNING] Corrupted channel by directly writing to native stream in forked JVM 1. See FAQ web page and the dump file     [INFO]     [...]
>     [...]
>     [INFO] BUILD SUCCESS
> {noformat}
> with
> {code:java|title=test class}
> package org.example;
> import org.junit.jupiter.api.Test;
> class ThrowExceptionWithLongMessageTest {
>     @Test
>     public void example() {
>         Inner.throwException(1000);
>     }
>         
>     public static class Inner {
>         public static void throwException(final int messageLen) {
>             final var sb = new StringBuilder();
>             for (int i = 0; i < messageLen; i++) {
>                 sb.append("A");
>             }
>             throw new IllegalStateException(sb.toString());
>         }
>     }
> }
> {code}
> Demonstrator: see links
> surefire 3.0.0-M5 fails the test like expected:
> {noformat}
>     [INFO] Running org.example.ThrowExceptionWithLongMessageTest
>     [ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.036 s <<< FAILURE! - in org.example.ThrowExceptionWithLongMessageTest
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.7#820007)