On Mon, 11 Jul 2022 15:36:47 GMT, Jonathan Gibbons <[email protected]> wrote:

>> test/langtools/jdk/javadoc/doclet/InheritDocForUserTags/DocTest.java line 57:
>> 
>>> 55:         // javadoc does not report an exit code for an internal 
>>> exception (!)
>>> 56:         // so monitor stderr for stack dumps.
>>> 57:         checkOutput(Output.STDERR, false, "at com.sun");
>> 
>> This is a general comment for a followup discussion and future work.
>> 
>> Should we have a standard default-on check in `JavadocTester` for "no stack 
>> traces"? That is, the equivalent of this line here. We could model such a 
>> check on `checkLinks` or `checkAccessibility` such that a hypothetical 
>> `checkNoCrashes` could be disabled in the (rare?) cases that they might be 
>> expected. (For example, checking the tool/doclet behavior when a crash does 
>> occur.)
>
> This is a general comment for a followup discussion and future work.
> 
> While the bug and this test are about "no crashes", we should ensure that we 
> have positive tests elsewhere for the actual output generated, assuming that 
> no crash occurred.

We have such a check already, but it's used specifically for snippets. If you 
want, we could "hoist" that check from SnippetTester into JavadocTester. 
However, I would prefer doing that in a separate PR.


public class SnippetTester extends JavadocTester {
    ...

    /*
     * When checking for errors, it is important not to confuse one error with
     * another. This method checks that there are no crashes (which are also
     * errors) by checking for stack traces. We never expect crashes.
     */
    protected void checkNoCrashes() {
        checking("check crashes");
        Matcher matcher = Pattern.compile("\\s*at.*\(.*\.java:\\d+\)")
                .matcher(getOutput(Output.STDERR));
        if (!matcher.find()) {
            passed("");
        } else {
            failed("Looks like a stacktrace: " + matcher.group());
        }
    }

    ...

-------------

PR: https://git.openjdk.org/jdk19/pull/54

Reply via email to