[
https://jira.codehaus.org/browse/SUREFIRE-817?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=354255#comment-354255
]
Tibor Digana commented on SUREFIRE-817:
---------------------------------------
I will check the behavior with buggy 2.11, and fixed 2.12.3, 2.18-SNAPSHOT as
well.
I will close this issue if not reproducible.
> JUnit 4.7 test output is always buffered, lost if forked process exits
> abnormally
> ---------------------------------------------------------------------------------
>
> Key: SUREFIRE-817
> URL: https://jira.codehaus.org/browse/SUREFIRE-817
> Project: Maven Surefire
> Issue Type: Bug
> Components: Junit 4.7+ (parallel) support
> Affects Versions: 2.11
> Reporter: Todd Lipcon
> Assignee: Tibor Digana
>
> The junit47 provider and above support multi-threaded test execution, and
> thus interpose a buffering layer (ConcurrentReporterManager) in between the
> test output and the actual stderr/stdout. This is ostensibly to allow the
> multiple threads' stderr and stdout to be demuxed nicely when the suite
> completes. But, if the JVM exits abnormally (eg due to a segfault or a
> System.exit() call), no output is generated. This is problematic since it's
> very hard to debug the test failure!
> In my opinion, the buffering layer should only be interposed _when parallel
> running is enabled_. For the non-parallel case, there's no need to buffer the
> output. A simple test case is to write a JUnit test which prints a line of
> output to stderr and then calls System.exit(1). The output doesn't show up
> anywhere.
--
This message was sent by Atlassian JIRA
(v6.1.6#6162)