On Thu, 13 Jan 2022 16:23:38 GMT, Hannes Wallnöfer <hann...@openjdk.org> wrote:
>> Please review a medium simple test-only fix to improve the `JavadocTester` >> `runTests` methods. >> >> Currently, there are two overloads: one to invoke no-args test methods, and >> another to invoke test methods with args, such as a method-specific `Path`. >> This latter one is slightly inconvenient to use, since it requires the >> boilerplate use of a function to create the arguments. >> >> The first overload is updated in a backwards compatible way, to examine the >> parameters of methods annotated with `@Test`, and to recognize common >> patterns: namely no-args methods and `(Path)` methods, without the need for >> any additional function. The second overload is retained by backwards >> compatibility, until if and when we decide it is no longer required. >> >> In addition, two new overloads are added, similar to the first two, but with >> the addition of an extra parameter to decide which methods should be >> invoked. This is primarily a debugging aid. Using these overloads, it is >> easy to specify, on the command line used to run the test, the methods to be >> executed. >> >> A new test is added to test the new functionality. > > Making the boilerplate to call test methods with a path object obsolete is a > very welcome enhancement. Can and should we update existing tests that use > the explicit method -> path function to the new form? > > You say that the new forms that take a list of method names could be used by > passing the method names as command line arguments. That functionality is not > included in this PR as far as I can see. Is that planned for a later time? @hns I tweaked the new "self-test" to address failures seen on some platforms. I weakened the constraint that `IllegalArgumentException` should _always_ be thrown before _any_ sub-tests are executed. While this may be good as a general principle, it doesn't work so well when the `ILA` comes from a nested call. Rather than twist the code so that `ILA` is always thrown early, I left `JavadocTester` alone, and just relaxed the code in `TestRunTests.java` to allow `ILA` to be thrown later, in some situations. FWIW, the issue did not show up earlier, because the order of methods returned by `getDeclaredMethods` is explicitly undefined and may vary across platforms. ------------- PR: https://git.openjdk.java.net/jdk/pull/6983