On Thu, 5 Jun 2025 09:36:37 GMT, Alice Pellegrini <d...@openjdk.org> wrote:

>> The implemented solution modifies the `OutputBuffer` implementation instead 
>> of the `OutputAnalyzer` implementation.
>> This is because the **OutputBuffer implementation which handles processes** 
>> (LazyOutputBuffer) starts a thread in its constructor, so we would need to 
>> add a strange additional constructor parameter to the 
>> `OutputBuffer.of(Process, Charset)` static method, while the printing 
>> through to stdout (and stderr) only makes sense for LazyOutputBuffer.
>> 
>> I believe changing the config option from `outputanalyzer.verbose` to 
>> `output buffer.verbose` would make it cleaner, and avoid referencing the 
>> OutputAnalyzer in the OutputBuffer implementation.
>
> Alice Pellegrini has updated the pull request with a new target base due to a 
> merge or a rebase. The incremental webrev excludes the unrelated changes 
> brought in by the merge/rebase. The pull request contains three additional 
> commits since the last revision:
> 
>  - Merge remote-tracking branch 'origin/master' into 
> 8356438-outputanalyzer-optional-print
>  - Update test/lib/jdk/test/lib/process/OutputBuffer.java
>    
>    Co-authored-by: Chen Liang <li...@openjdk.org>
>  - Initial working solution

test/lib/jdk/test/lib/process/OutputBuffer.java line 150:

> 148:       this.p = p;
> 149:       logProgress("Gathering output");
> 150:       boolean verbose = Boolean.getBoolean("outputanalyzer.verbose");

Putting a system property at this level of the code kind of hides the 
functionality.

An alternative solution would be to have `OutputAnalyzer` constructor(s) that 
takes a boolean argument. That boolean could be set as needed by individual 
tests using the `test.debug` property already used by a lot of tests.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25587#discussion_r2129066907

Reply via email to