RFR: 8352982: gradle TEST_SDK_PATH param doesn't work with relative paths

Kevin Rushforth kcr at openjdk.org
Tue Apr 1 12:38:16 UTC 2025


On Tue, 1 Apr 2025 06:36:24 GMT, Ambarish Rapte <arapte at openjdk.org> wrote:

> Issue:
> The test execution fails when a relative path is specified a relative path for `TEST_SDK_PATH`.
> For example:
> 1. gradle -PTEST_ONLY=true -PTEST_SDK_PATH=**..**/jfx1/build test 
> 2. gradle -PTEST_ONLY=true -PTEST_SDK_PATH=**~**/jfx1/build test
> 
> Solution:
> Convert the relative path to an absolute path.
> 
> More about fix:
> The property TEST_SDK_PATH belongs to the root project rt in build.gradle.
> If we modify this property in build.gradle, it does not reflect in the child projects. The child projects for example graphics, controls would still have the value of TEST_SDK_PATH before modification.
> To solve this, I Introduced a new variable in build.gradle `TEST_SDK_DIR`. It would hold the modified value of `TEST_SDK_PATH` and gets correctly reflected across all sub-projects.
> 
> Verified that both relative paths and absolute path work fine after this change.

I'll test and review this later, but one quick comment:

> 2. gradle -PTEST_ONLY=true -PTEST_SDK_PATH=~/jfx1/build test

This isn't a bug, but is a known limitation in the way shell expansion of `~` works. If we were going to deal with this, we would want to do it consistently for all path names, in all of our build scripts, not just this one path name in `build.gradle`. Let's not.

build.gradle line 729:

> 727:     }
> 728:     String testSdkPath = "${TEST_SDK_PATH}"
> 729:     if (testSdkPath.startsWith("~")) {

This isn't related to handling relative paths at all. Rather it is related to how bash works. The `~` character is handled by the shell and it is a known limitation that you can't use it in the middle of a string.

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

PR Review: https://git.openjdk.org/jfx/pull/1751#pullrequestreview-2732529408
PR Review Comment: https://git.openjdk.org/jfx/pull/1751#discussion_r2022761463


More information about the openjfx-dev mailing list