RFR: 8334238: Enhance AddLShortcutTest jpackage test [v6]
Alexander Matveev
almatvee at openjdk.org
Wed Aug 6 23:38:21 UTC 2025
On Wed, 6 Aug 2025 22:00:41 GMT, Alexey Semenyuk <asemenyuk at openjdk.org> wrote:
>> - Enhance AddLShortcutTest to cover more combinations of shortcut configurations of the main and additional launchers.
>> - Test shortcuts in the predefined app image.
>>
>> Additionally, rework launcher verification: move launcher icon and shortcut verification code from AdditionalLauncher into LauncherVerifier. This way launcher verification code is encapsulated in a single class that is applied to the main and additional launchers.
>>
>> Rework launcher shortcut verification on Windows: Read shortcuts from MSI tables. This allows testing of expected and actual shortcuts without installing the MSI. This refactoring removed duplicated checks of file associations: It was performed for every additional launcher; now it is executed for the main launcher only. File association is bound to the main launcher, there is no point to verify it as many times as the number of launchers.
>>
>> Implement launching launchers through shortcuts on Linux and Windows. The new `AddLShortcutTest.testInvokeShortcuts` test uses this new functionality.
>>
>> Not directly related to the subject of the PR:
>> - JPackageCommand: Added missing and removed redundant `verifyMutable()` calls. Converted "jpt-unpacked-folder" option into the member field. Added `JPackageCommand.createMutableCopy()` complementary to the existing `JPackageCommand.createImmutableCopy()`.
>> - Refactor `TKit.waitForFileCreated()` to use classes from the `java.time` package.
>> - Added `test/jdk/tools/jpackage/clean_test_output.sh` Bash script filtering test logs to minimize noise in diffs.
>>
>> Compared traces of IconTest, AddlauncherTest, and AddLShortcutTest tests with and without this patch to verify no unexpected changes in the coverage.
>
> Alexey Semenyuk has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 81 additional commits since the last revision:
>
> - TKit: bugfix
> - Merge branch 'master' into JDK-8334238
> - Merge branch 'JDK-8334238' of https://github.com/alexeysemenyukoracle/jdk into JDK-8334238
> - Use TKit.waitForFileCreated() to await for test output file
> - Use java.time.Duration and java.time.Instant in TKit.waitForFileCreated(). Make it public.
> - LauncherShortcut: add appImageFilePropertyName()
> - JPackageCommand: verify names of additional launcher are precisely recorded in .jpackage.xml file
> - JPackageCommand: remove path to the unpacked directory from the argument list as it interferes with extracting arguments with optional values.
> - clean_test_output.sh: better
> - AddLShortcutTest: make it a better fit for JDK-8308349
> - ... and 71 more: https://git.openjdk.org/jdk/compare/c2a45792...2d31e6a5
Looks good.
-------------
Marked as reviewed by almatvee (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/26584#pullrequestreview-3094618056
More information about the core-libs-dev
mailing list