RFR: 8352016: Improve java/lang/RuntimeTests/RuntimeExitLogTest.java

Mikhail Yankelevich myankelevich at openjdk.org
Tue Mar 18 12:48:07 UTC 2025


On Fri, 14 Mar 2025 09:17:06 GMT, KIRIYAMA Takuya <duke at openjdk.org> wrote:

> The current test program for the logging feature added in JDK-8301627 does not fully check some important cases.
> 
> Issue Details:
> The test does not properly check cases where logging might not happen due to different logging levels. (e.g. ALL, TRACE, WARNING, etc.)
> The check for the logged stack trace is not enough, as it does not confirm enough details in the output.
> 
> Fix Details:
> Added more test cases to check behavior under different logging levels.
> Improved the stack trace check by verifying more details in the logged output.
> These changes make the test more complete and ensure that the logging feature works as expected.
> Also, any existing test cases prior to this pull request are retained.
> 
> The test was verified in the following OS environments, and it passed successfully in both environments.
> - Windows Server 2022 Standard 21H2
> - Red Hat Enterprise Linux release 9.2 (Plow)
> 
> Could you please review this fix?

Looks good, just a minor comment. Thank you!

test/jdk/java/lang/RuntimeTests/RuntimeExitLogTest.java line 52:

> 50:     private static final String TEST_JDK = System.getProperty("test.jdk");
> 51:     private static final String TEST_SRC = System.getProperty("test.src");
> 52:     private static final String NL = System.getProperty("line.separator");

Wouldn't it be easier to just use `System.lineSeparator();` here, what do you think? 

Also I'd personally rename it to `NEW_LINE` or `SEPARATOR`, as it took me a few read throughs to understand what does NL stand for, but thats minor.

test/jdk/java/lang/RuntimeTests/RuntimeExitLogTest.java line 53:

> 51:     private static final String TEST_SRC = System.getProperty("test.src");
> 52:     private static final String NL = System.getProperty("line.separator");
> 53:     private static Object HOLD_LOGGER;

Nitpick: This is not used, could you please remove if there will be another revision.

test/jdk/java/lang/RuntimeTests/RuntimeExitLogTest.java line 167:

> 165:                 List<String> lines = reader.lines().toList();
> 166:                 boolean match = (expectMessage.isEmpty())
> 167:                         ? lines.size() == 0

Nitpick: `? lines.isEmpty()` would be easier to read imo, but it's fine as it is.

test/jdk/java/lang/RuntimeTests/RuntimeExitLogTest.java line 174:

> 172:                     System.err.println(expectMessage.replaceAll("\\n", NL));
> 173:                     System.err.println("---- Actual output begin");
> 174:                     lines.forEach(l -> System.err.println(l));

Nitpick: `lines.forEach(System.err::println);` would be easier to read in my opinion, but it's fine as it is.

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

PR Review: https://git.openjdk.org/jdk/pull/24050#pullrequestreview-2694348466
PR Review Comment: https://git.openjdk.org/jdk/pull/24050#discussion_r2000948118
PR Review Comment: https://git.openjdk.org/jdk/pull/24050#discussion_r2000943776
PR Review Comment: https://git.openjdk.org/jdk/pull/24050#discussion_r2000950379
PR Review Comment: https://git.openjdk.org/jdk/pull/24050#discussion_r2000949810


More information about the core-libs-dev mailing list