RFR: 8229186: Improve error messages for TestStringIntrinsics failures [v6]
Leonid Mesnik
lmesnik at openjdk.java.net
Thu Oct 1 19:54:05 UTC 2020
On Thu, 1 Oct 2020 04:57:39 GMT, Evgeny Nikitin <enikitin at openjdk.org> wrote:
>> pre-Skara RFR thread: [link](https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2020-May/038416.html)
>>
>> Error reporting was improved by writing a C-style escaped string representations for the variables passed to the
>> methods being tested. For array comparisons, a dedicated diff-formatter was implemented.
>> Sample output for comparing byte arrays (with artificial failure):
>> ----------System.err:(21/1553)----------
>> Result: (false) of 'arrayEqualsB' is not equal to expected (true)
>> Arrays differ starting from [index: 7]:
>> ... 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, ...
>> ... 5, 6, 125, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, ...
>> ^^^^
>> java.lang.RuntimeException: Result: (false) of 'arrayEqualsB' is not
>> equal to expected (true)
>> at
>> compiler.intrinsics.string.TestStringIntrinsics.invokeAndCheckArrays(TestStringIntrinsics.java:273)
>> at ... stack trace continues - E.N.
>> Sample output for comparing char arrays:
>> ----------System.err:(21/1579)*----------
>> Result: (false) of 'arrayEqualsC' is not equal to expected (true)
>> Arrays differ starting from [index: 7]:
>> ... \\u0005, \\u0006, \\u0007, \\u0008, \\u0009, \\n, ...
>> ... \\u0005, \\u0006, }, \\u0008, \\u0009, \\n, ...
>> ^^^^^^^
>> java.lang.RuntimeException: Result: (false) of 'arrayEqualsC' is not
>> equal to expected (true)
>> at
>> compiler.intrinsics.string.TestStringIntrinsics.invokeAndCheckArrays(TestStringIntrinsics.java:280)
>> at
>> ... and so on - E.N.
>>
>> testing: open/test/hotspot/jtreg/compiler/intrinsics/string/TestStringIntrinsics.java on linux, windows, macosx.
>
> Evgeny Nikitin has updated the pull request incrementally with one additional commit since the last revision:
>
> Use SB to build TestStringIntrinsics message, avoid type guessing in ArrayDiff
Changes requested by lmesnik (Committer).
test/lib/jdk/test/lib/format/Format.java line 2:
> 1: /*
> 2: * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
Shouldn't be just 2020?
test/lib/jdk/test/lib/format/Diff.java line 30:
> 28:
> 29: /**
> 30: * An abstraction representing formattabe difference between two or more objects
typo in 'formattabe'
test/lib/jdk/test/lib/format/ArrayDiff.java line 81:
> 79: * Default limits for the formatter
> 80: */
> 81: public static class Defaults {
Does it make sense to move them into Diff? Seems like very generic formatter properties to me.
test/lib-test/jdk/test/lib/format/ArrayDiffTest.java line 38:
> 36: * @run testng jdk.test.lib.format.ArrayDiffTest
> 37: */
> 38: public class ArrayDiffTest {
Might be it makes sense to check null values. Also, reversed checks. For example there is first = [1, ..], second = [].
But no check for first = [], second = [1, ..] for some cases,
-------------
PR: https://git.openjdk.java.net/jdk/pull/112
More information about the core-libs-dev
mailing list