On Thu, 6 Mar 2025 13:34:07 GMT, Oleksii Sylichenko <d...@openjdk.org> wrote:

> This PR proposes three improvements to the `Basic.java` test:
> 
> 1. Increase Timeout
>    - The current timeout is insufficient when running the test in IntelliJ 
> IDEA.
>    - I propose increasing it by one minute.
>    - The timeout value was last modified on May 13, 2010 (commit 
> [56131863a71c](https://github.com/openjdk/jdk/commit/56131863a71ca552d0a881364bd2b3581e13f058))
>  and has remained unchanged since then.
> 
> 2. Fix Incompatibility with Windows (Cygwin vs. Native)
>     - One of the tests executes the `echo` command.
>     - This works in Cygwin but fails when running the test in a pure Windows 
> environment (e.g., IntelliJ IDEA).
>     - I propose replacing echo with `cmd /c echo/`, which produces the same 
> output (a single newline) in Windows, ensuring compatibility.
> 
> 3. Prevent Autorun Scripts in the `cmd /c set` Command
>     - The test runs `cmd /c set`, but in Windows, this may trigger autorun 
> scripts.
>     - I propose adding the `/d` options to prevent autorun scripts from 
> affecting the test results.
> 
> These changes improve test reliability and ensure compatibility across 
> different environments.
> Testing:
> - Verified that the test runs successfully in IntelliJ IDEA without timeout 
> issues.
> - Confirmed that `cmd /c echo/` produces the expected output in Windows.
> - Ensured that `cmd /d /c set` correctly lists environment variables without 
> executing autorun scripts.
> 
> # Detailed Description
> 
> ## echo
> The following test fails in a clean Windows environment (e.g., when run from 
> IntelliJ IDEA without Cygwin):
> 
> //----------------------------------------------------------------
> // Test Runtime.exec(...envp...) with envstrings without any `='
> //----------------------------------------------------------------
> 
> with following error:
> 
> Cannot run program "echo": CreateProcess error=2, The system cannot find the 
> file specified
> 
> 
> If we try to run `echo` as a process in Windows, for example from IntelliJ 
> IDEA, we get the error above, because Windows does not have such an 
> executable, but instead this is a command of the Command Processor (CMD).
> 
> The `echo.` command with the `.` works the same way as calling `echo` without 
> parameters in Unix — it outputs an empty line. Was implemented using the 
> analogous `echo/` command to avoid compatibility issues.
> 
> See: 
> https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/echo
> 
> To ensure that the `echo/` command is supported in Cygwin, we need to invoke 
> it via `cmd /c`, because Cygwin has its own executable "echo".
> 
> ## cmd.e...

This pull request has now been integrated.

Changeset: 6bcbc3b0
Author:    Oleksii Sylichenko <a.siliche...@gmail.com>
Committer: Roger Riggs <rri...@openjdk.org>
URL:       
https://git.openjdk.org/jdk/commit/6bcbc3b0a21687504b07a0a405d824a448aea872
Stats:     8 lines in 1 file changed: 2 ins; 1 del; 5 mod

8353489: Increase timeout and improve Windows compatibility in 
test/jdk/java/lang/ProcessBuilder/Basic.java

Reviewed-by: rriggs

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

PR: https://git.openjdk.org/jdk/pull/23933

Reply via email to