RFR: 8356102: TestJcmdOutput, JcmdWithNMTDisabled and DumpSharedDictionary hs/tier1 tests fail on static-jdk

David Holmes dholmes at openjdk.org
Fri May 9 04:39:50 UTC 2025


On Fri, 2 May 2025 23:16:50 GMT, Jiangli Zhou <jiangli at openjdk.org> wrote:

> Please review the change to set `-Dcompile.jdk=<jdk>` when launching child processes in TestJcmdOutput, JcmdWithNMTDisabled and DumpSharedDictionary hs/tier1 tests.
> 
> These three tests fail on static-jdk as `jdk.test.lib.JDKToolFinder.getJDKTool()` fails to locate the `jcmd` tool. `JDKToolFinder.getJDKTool()` locates the requested tool from the path specified in 'test.jdk' system property first, then using the path specified in 'compile.jdk' system property. Currently when running jtreg tests on static-jdk, jtreg '-compilejdk' is set to a regular JDK binary. Populating the 'compile.jdk' system property from jtreg when creating the child process would allow `JDKToolFinder.getJDKTool()` (executing in the child process) to locate the tool from 'compile.jdk' path.
> 
> Tested all three tests on static-jdk. All three tests pass with the fix.

This looks rather hackish to me - individual tests should not need to know about how to make jdkToolFinder work. Can this be hidden away in `ProcessTools.createLimitedTestJavaProcessBuilder` and other `ProcessTools` code as needed?

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

PR Comment: https://git.openjdk.org/jdk/pull/25018#issuecomment-2865073087


More information about the hotspot-runtime-dev mailing list