RFR: 8353489: Increase timeout and improve Windows compatibility in test/jdk/java/lang/ProcessBuilder/Basic.java
Roger Riggs
rriggs at openjdk.org
Fri May 2 21:11:47 UTC 2025
On Fri, 2 May 2025 17:42:40 GMT, Roger Riggs <rriggs at openjdk.org> wrote:
>> No, `echo.` is not an executable, this is a command of the Windows Command Processor.
>>
>> See: https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/echo
>
> That sounds brittle. The "echo." usage is not specified, only shown as an example.
> Under what command parsing rule does it run exactly the "echo" builtin?
A bit more investigation and some trial and error.
It appears that with `echo.`, cmd.com is searching for a file named "echo" and when it does not find it it reverts to the builtin. But it has already wasted time searching the %Path% for a non-existent file.
A couple comments searching the internet suggested using either "/" or ":". Both are not part of file paths and are parsed differently.
In my trial and error on Windows 10, I consistently get an error from `cmd /c echo.`,
`'echo.' is not recognized as an internal or external command...`
I'd propose to use `echo/` instead, the `/` will terminate the parsing of the command name and won't be interpreted as part of a file name and as an empty command option will be ignored.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23933#discussion_r2072151928
More information about the core-libs-dev
mailing list