On Fri, 15 Nov 2024 18:34:07 GMT, Alexey Semenyuk <asemen...@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... > > Alexey Semenyuk has updated the pull request incrementally with one > additional commit since the last revision: > > Remove JDK-8344322-specific changes Looks good. ------------- Marked as reviewed by almatvee (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/21996#pullrequestreview-2439982429