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