On Wed, 17 Jun 2026 20:16:55 GMT, Naoto Sato <[email protected]> wrote:
>> Can I please get a review of this test-only change which proposes to improve >> the debuggability of the `test/jdk/sun/nio/cs/TestStringCodingUTF8.java` >> test? >> >> This test fails intermittently in our CI in older update releases with >> errors like: >> >> java.lang.RuntimeException: getBytes(csn) failed >> at TestStringCodingUTF8.test(TestStringCodingUTF8.java:111) >> at TestStringCodingUTF8.test(TestStringCodingUTF8.java:85) >> at TestStringCodingUTF8.main(TestStringCodingUTF8.java:41) >> >> >> It's not clear from the failures whether this is a test specific issue or >> some genuine issue in some specific release of the JDK. Since the test uses >> a `Random` instance to generate the data to test, it isn't easy to reproduce >> it either. >> >> The change in this PR proposes to use the `RandomFactory` test library which >> is equipped with printing the seed used by the `Random` instance. If the >> test fails in future, the seed should help reproduce the test data that ran >> into the failure. The change also improves the error messages in the test >> and updates the `Collections.shuffle()` call to pass it the same `Random` >> instance that's being used in the test. >> >> The test continues to pass with this change. >> >> --------- >> - [x] I confirm that I make this contribution in accordance with the >> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). > > test/jdk/sun/nio/cs/TestStringCodingUTF8.java line 115: > >> 113: //getBytes(csn); >> 114: byte[] baStr = str.getBytes(cs.name()); >> 115: if (!Arrays.equals(ba, baStr)) > > Maybe we could use `Arrays.mismatch()`, and prints the actual difference in > the exception. Hello Naoto, I had considered that, but I then noticed that these tests use extremely large arrays in many cases. For example, `1000`, `0x10000`, `0x20000` `0x30000` etc... So although Arrays.mismatch might give the first mismatching index, printing the actual difference might be very large and may overflow the jtreg log message limit. But let me give a bit more thought today. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/31548#discussion_r3432631825
