On Mon, 9 Mar 2026 20:56:15 GMT, Roger Riggs <[email protected]> wrote:

> Test java/lang/ProcessBuilder/Basic.java fails with 'Exception: 
> java.lang.Error: PATH search algorithm"
> The tests in ProcessBuilder.Basic related to PATH search algorithm use the 
> system binaries for /bin/true and /bin/false.
> The tests proceed to copy the binaries to different directories on carefully 
> constructed PATHs and verify the correct one is found.  
> On some Linux OS's the binaries for /bin/true and /bin/false are the same 
> binary. Distinguished only by arg[0] when executed.
> On Ubuntu 25-10, copying the binary to `prog` and launching it, results in 
> the exit status not being the expected value.
> Musl and Apline systems have other limitations that are already reflected in 
> special cases.
> A solution proposed here is to provide separate binaries for the true and 
> false functions so their invocation is more controlled.
> 
> Use native BasicTrue and BasicFalse executables in cases where /bin/true and 
> /bin/false are not unique.

test/jdk/java/lang/ProcessBuilder/Basic.java line 1:

> 1: /*

I think my general comment here is that I'm struggling to even understand 
what's being tested for here?
What does a pass tell us compared to failure?

test/jdk/java/lang/ProcessBuilder/Basic.java line 2571:

> 2569: 
> 2570:     // Path where "sleep" program may be found" or null
> 2571:     private static final File SLEEP_PATH = initSleepPath();

Slightly surprised to see a change going from `Path` to `File`?
Is there a reason `File` is better here?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/30150#discussion_r2954995177
PR Review Comment: https://git.openjdk.org/jdk/pull/30150#discussion_r2954984344

Reply via email to