On Thu, 11 Sep 2025 22:09:10 GMT, Andy Goryachev <ango...@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

Reply via email to