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
