[ https://issues.apache.org/jira/browse/SUREFIRE-1614?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17098417#comment-17098417 ]
Tibor Digana edited comment on SUREFIRE-1614 at 5/3/20, 12:49 PM: ------------------------------------------------------------------ [~kriegaex] I don't know how your agent looks like but definitely it is not calling System.out.println after JUnit has started; otherwise the Surefire would send the logs to the report XML. {{after JUnit has started}} is important to say. The logs are redirected to the TCP after the JUnit has started the tests. If your agent prints beforehand then it should be the problem you can see. But the logs cannot be lost while the tests are running. Pls confirm! was (Author: tibor17): [~awilkinson] I don't know how your agent looks like but definitely it is not calling System.out.println after JUnit has started; otherwise the Surefire would send the logs to the report XML. {{after JUnit has started}} is important to say. The logs are redirected to the TCP after the JUnit has started the tests. If your agent prints beforehand then it should be the problem you can see. But the logs cannot be lost while the tests are running. Pls confirm! > JUnit Runner that writes to System.out corrupts Surefire's STDOUT when using > JUnit's Vintage Engine > --------------------------------------------------------------------------------------------------- > > Key: SUREFIRE-1614 > URL: https://issues.apache.org/jira/browse/SUREFIRE-1614 > Project: Maven Surefire > Issue Type: Bug > Components: JUnit 5.x support > Affects Versions: 2.22.1, 3.0.0-M2 > Reporter: Andy Wilkinson > Assignee: Christian Stein > Priority: Major > Fix For: 2.22.2, 3.0.0-M3 > > Attachments: surefire-stream-corruption-bug.zip > > Time Spent: 10m > Remaining Estimate: 0h > > When JUnit Jupiter's Vintage Engine is used to run tests written using the > JUnit 4 API, output to the console from a {{TestRunner}} results in > Surefire's STDOUT being corrupted: > {noformat} > [WARNING] Corrupted STDOUT by directly writing to native stream in forked JVM > 1. See FAQ web page and the dump file […]{noformat} > Note that the test runner is simply calling {{System.out}}. This is to > simulate the real world setup where the runner performs some logging that > ultimately results in a console appender calling {{System.out}}. The same > arrangement does not cause a problem when run using JUnit 4. An initial > investigation suggests that the Vintage Engine calls the custom > {{TestRunner}} earlier and, it would appear, at a time when Surefire cannot > tolerate output to {{System.out}}. > I have attached a minimal project that reproduces the problem. Running > {{./mvnw -Pjunit5 test}} will reproduce the corruption. Running {{./mvnw > -Pjunit4 test}} will not. -- This message was sent by Atlassian Jira (v8.3.4#803005)