RFR: 8334238: Enhance AddLShortcutTest jpackage test [v5]

Alexey Semenyuk asemenyuk at openjdk.org
Mon Aug 4 13:43:57 UTC 2025


On Mon, 4 Aug 2025 04:54:49 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()`.
>>  - 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.

@sashamatveev PTAL

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

PR Comment: https://git.openjdk.org/jdk/pull/26584#issuecomment-3150773364


More information about the core-libs-dev mailing list