RFR: 8346106: Verify.checkEQ: testing utility for recursive value verification

Emanuel Peter epeter at openjdk.org
Wed Dec 18 10:18:40 UTC 2024


On Wed, 18 Dec 2024 07:29:02 GMT, theoweidmannoracle <duke at openjdk.org> wrote:

>> In testing, we often generate "golden" values, and then compare the results with it. This requires comparison loops etc in every test. I would like to create a dedicated facility for this, to simplify testing in the future. This is also preparation for [JDK-8344942](https://bugs.openjdk.org/browse/JDK-8344942), the Template framework.
>> 
>> I have written code like this in various tests before, see:
>> `test/hotspot/jtreg/compiler/loopopts/superword/TestAlignVectorFuzzer.java`
>> `./test/hotspot/jtreg/compiler/loopopts/superword/TestMemorySegment.java`
>> `test/hotspot/jtreg/compiler/loopopts/superword/TestIndependentPacksWithCyclicDependency.java`.
>> 
>> It is now time to make a proper facility, so I can save time when writing tests in the future.
>> 
>> A related PR, for value generation: https://github.com/openjdk/jdk/pull/22716
>
> test/hotspot/jtreg/compiler/lib/verify/Verify.java line 58:
> 
>> 56:             print(a, "a " + context);
>> 57:             print(b, "b " + context);
>> 58:             throw new VerifyException("Object array null mismatch.");
> 
> Why does this message mention "array"? From what I understand, it can compare any two objects.

Good catch. I used to only have it work for arrays ;)

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

PR Review Comment: https://git.openjdk.org/jdk/pull/22715#discussion_r1889979639


More information about the hotspot-compiler-dev mailing list