On Mon, 9 Jun 2025 04:03:28 GMT, David Holmes <dhol...@openjdk.org> wrote:

>> 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.
>
> But isn't it the person running the tests that wants to set this, not an 
> inherent property of a test itself? Or are you envisaging enabling it at the 
> test-level so the person running the tests doesn't have to do so? But then 
> how does that affect the overall jtreg log content. ??

To add on this, I should mention that I noticed a lot of tests are using 
OutputAnalyzer indirectly, returned as a result of a utility function, for 
example `ProcessTools.execute{Process,Command)`


git grep -E "ProcessTools.execute((Process)|(Command))" | wc -l
     351


Instead of calling one of OutputAnalyzer's constructors (700 invocations, but 
many of them are with the Eager, string based and not process based, 
constructor, which we don't care about)


I'm not sure adding additional parameters also to that code is an ideal 
solution, I'd much prefer adding the command line parameter to the docs of the 
OutputAnalyzer class, so that one knows to enable it when running the single 
test through jtreg

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

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

Reply via email to