On Thu, 18 Jun 2026 04:16:55 GMT, Naoto Sato <[email protected]> wrote:
>> 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.
>
> I think we just need to display the code unit at the returned index, and a
> few code units before and after the index. That should be enough to determine
> what went wrong
I've now pushed an updated which prints 20 indexes before and after the first
mismatch. If this test fails due to the array mismatch then the log will
contain something like:
Arrays mismatch starts at index: 6766
Printing few indexes before and after the mismatch:
Index=6746, expected=-32, actual=-32
Index=6747, expected=-82, actual=-82
Index=6748, expected=-98, actual=-98
Index=6749, expected=-32, actual=-32
Index=6750, expected=-82, actual=-82
Index=6751, expected=-97, actual=-97
Index=6752, expected=-32, actual=-32
Index=6753, expected=-82, actual=-82
Index=6754, expected=-96, actual=-96
Index=6755, expected=-32, actual=-32
Index=6756, expected=-82, actual=-82
Index=6757, expected=-95, actual=-95
Index=6758, expected=-32, actual=-32
Index=6759, expected=-82, actual=-82
Index=6760, expected=-94, actual=-94
Index=6761, expected=-32, actual=-32
Index=6762, expected=-82, actual=-82
Index=6763, expected=-93, actual=-93
Index=6764, expected=-32, actual=-32
Index=6765, expected=-82, actual=-82
Index=6766, expected=66, actual=-92 <--- first mismatch
Index=6767, expected=-32, actual=-32
Index=6768, expected=-82, actual=-82
Index=6769, expected=-91, actual=-91
Index=6770, expected=-32, actual=-32
Index=6771, expected=-82, actual=-82
Index=6772, expected=-90, actual=-90
Index=6773, expected=-32, actual=-32
Index=6774, expected=-82, actual=-82
Index=6775, expected=-89, actual=-89
Index=6776, expected=-32, actual=-32
Index=6777, expected=-82, actual=-82
Index=6778, expected=-88, actual=-88
Index=6779, expected=-32, actual=-32
Index=6780, expected=-82, actual=-82
Index=6781, expected=-87, actual=-87
Index=6782, expected=-32, actual=-32
Index=6783, expected=-82, actual=-82
Index=6784, expected=-86, actual=-86
Index=6785, expected=-32, actual=-32
java.lang.RuntimeException: getBytes(csn) failed for charset UTF-8, character
array length=65536, offset=0, len=65536
at TestStringCodingUTF8.failIfMismatch(TestStringCodingUTF8.java:226)
at TestStringCodingUTF8.test(TestStringCodingUTF8.java:116)
...
Does this look OK?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/31548#discussion_r3433475422