On Mon, 4 Aug 2025 04:54:49 GMT, Alexey Semenyuk <[email protected]> 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 incrementally with two
> additional commits since the last revision:
>
> - Use TKit.waitForFileCreated() to await for test output file
> - Use java.time.Duration and java.time.Instant in TKit.waitForFileCreated().
> Make it public.
Looks good with minor comment.
test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java line 635:
> 633: return;
> 634: }
> 635: assertUnexpected(String.format("Timeout expired",
> remainderTimeout));
`"Timeout expired"` missing format?
-------------
PR Review: https://git.openjdk.org/jdk/pull/26584#pullrequestreview-3090170423
PR Review Comment: https://git.openjdk.org/jdk/pull/26584#discussion_r2255665599