RFR: 8336332: Rework tests to avoid unrelated stderr output
Andy Goryachev
angorya at openjdk.org
Fri Sep 12 20:05:43 UTC 2025
On Thu, 11 Sep 2025 22:09:10 GMT, Andy Goryachev <angorya at openjdk.org> wrote:
> This PR removes unrelated `stderr` output in the headful test logs by redirecting it to an in-memory buffer. Exceptions found in the buffer can be checked against the expected list.
>
> In the case when any mismatch is detected, whether the type or the number of exceptions of particular type, the accumulated buffer gets dumped to `stderr` (without failing the test).
>
> ## How To
>
> To redirect stderr and later check the exceptions, surround your code with
>
> `ErrorLoggingUtility.suppressStderr()` and either `ErrorLoggingUtility.checkStderr()` or `ErrorLoggingUtility.checkAndRestoreStderr()`.
>
> To simply undo redirection, without checking, call `ErrorLoggingUtility.restoreStderr()`.
>
> To add the check to all the tests in the file, one can call the above mentioned methods inside `@BeforeEach` and `@AfterEach`.
>
> ## Miscellaneous
>
> For reviewers' convenience, the first commit contains the main change, the second fixes the misspelt name of the utility class, the rest are trivial.
>
> ## Questions
>
> - should we fail the current test with `Assertions.fail()` in case of a mismatch?
These are all valid points, but keep in mind that `System.setErr()` is static to begin with. All the system and headful tests are single threaded by design, and this is rather unlikely to change.
Whether to use BeforeEach/AfterEach or standalone test is up to the test developers (this PR contains both cases actually). I would say re-designing the existing tests to be standalone (`SelectBindingTest` for example) is out of scope for this PR.
-------------
PR Comment: https://git.openjdk.org/jfx/pull/1897#issuecomment-3286674215
More information about the openjfx-dev
mailing list