On Tue, 28 Sep 2021 23:34:21 GMT, Jonathan Gibbons <[email protected]> wrote:
> Please review a moderately simple improvement for `JavadocTester` and a
> related new test.
>
> A new `OutputChecker` class is introduced that mostly supersedes the existing
> methods to check the output generated by javadoc and the standard doclet. A
> self-imposed restriction is that no existing tests are modified.
>
> The new class can be used to check files generated by the doclet and the
> streams written by the tool. It can be configured to check for ordered output
> or not, overlapping output, and complete coverage, and can search for literal
> strings and regular expressions.
>
> There is a corresponding new test which is a non-standard use of
> `JavadocTester`, since it is designed to test `JavadocTester` itself, and not
> javadoc or the doclet. (Quis custodiet ipsos custodes?) Various methods
> are overridden so that the operation of the underlying methods can be checked.
>
> Although it is a goal to NOT modify the code of any existing tests, it turns
> out to be reasonable to adapt some of the existing `check...` methods to use
> the new `OutputChecker`. All javadoc tests pass, both locally and on all
> standard platforms. Many/most uses of the existing `checkOutput` method
> provide "ordered" strings, and are candidates to use the new ordered check.
> But enough uses are _not_ ordered, so it is not reasonable to change the
> default at this time. It is noted as a TODO to examine the appropriate test
> cases, so that we can decide whether to fix those tests and change the
> default.
Reviewing the JBS issue, I see I did not address the following, which had been
my intent to do so. I will update the PR.
// TODO: perhaps this method could be added to JavadocTester
private void checkOutputEither(Output out, String first, String... other) {
checking("checkOutputEither");
String output = getOutput(out);
-------------
PR: https://git.openjdk.java.net/jdk/pull/5743