On Fri, 15 Nov 2024 00:02:29 GMT, Alexander Matveev <almat...@openjdk.org> wrote:
>> Make jpackage test lib more practical. List of changes: >> >> Support multiple args and var args in `@Parameter` annotation: >> >> @Test >> @Parameter({"12", "foo"}) >> @Parameter({"-89", "bar", "more"}) >> @Parameter({"-89", "bar", "more", "moore"}) >> public void testVarArg(int a, String b, String ... other) {} >> >> >> Full support for var args in test constructors.<br/>Better results when >> looking up the suitable ctor for the ctor args with `null`-s.<br/>Support >> multiple functions with `@Parameteres` annotation, all will be executed >> instead of the first one earlier: >> >> class FooTest { >> public FooTest(String... args) {} >> public FooTest(int o) {} >> public FooTest(int a, Boolean[] b, String c, String ... other) {} >> >> @Parameters >> public static Collection<Object[]> input() { >> return List.of(new Object[][] { >> {}, >> {"str"}, >> {55, new Boolean[]{false, true, false}, "foo", "bar"}, >> }); >> } >> >> @Parameters >> public static Collection<Object[]> input2() { >> return List.of(new Object[][] { >> {78}, >> {34, null, null}, >> }); >> } >> } >> >> >> Static test method will be executed only once and not as many times as the >> number of the test class instances. >> >> Introduced `@ParameterSupplier` annotation as a flexible alternative to >> `@Parameter`: >> >> >> class FooTest { >> @Test >> @ParameterSupplier("dateSupplier") >> @ParameterSupplier("AnotherClass.dateSupplier") >> public void testDates(LocalDate v) {} >> >> public static Collection<Object[]> dateSupplier() { >> return List.of(new Object[][] { >> { LocalDate.parse("2018-05-05") }, >> { LocalDate.parse("2018-07-11") }, >> }); >> } >> } >> >> class AnotherClass { >> public static Collection<Object[]> dateSupplier() { >> return List.of(new Object[][] { >> { LocalDate.parse("2028-07-11") }, >> }); >> } >> } >> >> >> All annotations support `ifOS` and `ifNotOS` properties of type >> `jdk.internal.util.OperatingSystem`: >> >> >> @Test(ifOS = OperatingSystem.LINUX) >> public void testRunIfLinux() {} >> >> @Test(ifNotOS = OperatingSystem.LINUX) >> public void testRunIfNotLinux() {} >> >> @Test(ifNotOS = {OperatingSystem.LINUX,OperatingSystem.MACOS}) >> public void testRunIfNotLinuxOrMacOS() {} >> >> @Test >> @Parameter(value = "foo", ifOS = OperatingSystem.LINUX) >> @Parameter(value = {"foo", "bar"}, ifOS = { OperatingSystem.LI... > > test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LinuxHelper.java line 441: > >> 439: } >> 440: >> 441: // Verify the value of `Exec` key in is escaped if required > > This comment is confusing. Did you mean "Verify that the value of `Exec` key > is escaped"? It was extra "in". I meant "Verify the value of `Exec` key is escaped if required" ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/21996#discussion_r1843925654