On Fri, 11 Dec 2020 17:25:33 GMT, Patricio Chilano Mateo 
<pchilanom...@openjdk.org> wrote:

> Hi,
> 
> Please review the following small fix for test 
> RemovingUnixDomainSocketTest.java. As explained in the bug comments, the 
> issue is due to having two different StreamPumper objects consuming from the 
> same stderr, one created by ProcessTools.startProcess() and another by 
> OutputAnalyzer(). In the failing cases the StreamPumper processing thread 
> created in ProcessTools.startProcess() consumes the first part of the 
> deprecation message while the one created in OutputAnalyzer consumes the 
> rest. Since out.getStderr() is not empty and does not contain the string "VM 
> warning:", the test fails.
> 
> I simply replaced the ProcessTools.startProcess() call by a call to start() 
> on the ProcessBuilder object, which doesn't use StreamPumper. I added 
> stderrShouldBeEmptyIgnoreDeprecatedWarnings(), since as mentioned in 8248162 
> we might not want to hide all warning messages.
> 
> Without the patch I can consistently reproduce the issue. With the patch the 
> test always passes.
> 
> Thanks,
> Patricio

Changes requested by dholmes (Reviewer).

test/lib/jdk/test/lib/process/OutputAnalyzer.java line 43:

> 41:     private static final String jvmwarningmsg = ".* VM warning:.*";
> 42: 
> 43:     private static final String deprecatedmsg = ".* deprecated.*";

This might be too generic, perhaps combine it with "VM warning" so we don't get 
accidental hits on other deprecation output eg from javac?
Also I'm not sure if only deprecation warnings should be handled but I guess we 
can adjust if that need arises.

-------------

PR: https://git.openjdk.java.net/jdk/pull/1749

Reply via email to