On Wed, 5 Feb 2025 19:44:54 GMT, Alexey Semenyuk <[email protected]> wrote:
>> test/jdk/tools/jpackage/share/JLinkOptionsTest.java line 175:
>>
>>> 173: .setExecutable(cmd.appLauncherPath().toAbsolutePath())
>>> 174: .addArguments("--print-modules")
>>> 175: .executeAndRepeatUntilExitCode(0, attempts,
>>
>> Is there any reason why we need to repeat execution?
>
> Yes, launchers in tests are executed multiple times because they may
> sporadically crash due to an unidentified issue with JVM termination.
>
> Usually, launchers are not explicitly executed in the tests. They are
> executed as a part of
> `JPackageCommand.executeAndAssertHelloAppImageCreated()` call, which attempts
> to run them multiple times if necessary.
>
> In this test, launcher is explicitly executed and the setup to run it
> multiple times if needed is explicit.
>
> This setup copies a setup to run launchers from
> [HelloApp.AppOutputVerifier.execute()](https://github.com/openjdk/jdk/blob/379c3f99665829c5d8c373d1fb324dc7ef4d84cf/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/HelloApp.java#L441)
I reworked this part using `HelloApp.assertApp()` function. It wraps restart
details.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23047#discussion_r1943600965