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