RFR: 8272600: (test) Use native "sleep" in Basic.java [v3]

Roger Riggs rriggs at openjdk.java.net
Thu Sep 2 13:41:30 UTC 2021


On Sat, 28 Aug 2021 02:34:48 GMT, Roger Riggs <rriggs at openjdk.org> wrote:

>> The intermittent test in java/lang/ProcessBuilder/Basic.java has identified unexpected messages from a child Java VM
>> as the cause of the test failure.  Attempts to control the output of the child VM have failed, the VM is unrepentant .
>> 
>> There is no functionality in the child except to wait long enough for the test to finish and the child is destroyed.
>> The fix is to switch from using a Java child to using a native child; a new executable `sleepmillis`.
>
> Roger Riggs has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Revised to use native /bin/sleep program on Unix* (non-Windows).
>   For Windows, a native "BasicSleep" program is used.

The `timeout --help` version is from a CI job:

    Unexpected child output, to: getErrorStream
    Child args: [cmd.exe, /c, timeout, 60]
    Try 'timeout --help' for more information.

But ...\cygwin\bin is in PATH before Windows\System32

So sleep would be available, but on cygwin it is in /usr/bin.
sleep would work everywhere, except a real Windows build.

What a tortuous workaround because of a 'feature' of the VM!

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

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


More information about the core-libs-dev mailing list