RFR 8152343: JVMCI test tasks: Unit tests for MetaAccessProvider

Dmitrij Pochepko dmitrij.pochepko at oracle.com
Wed May 11 20:43:21 UTC 2016


Also performed mx eclipseformat and checkstyle and prepared v04

http://cr.openjdk.java.net/~dpochepk/8152343/webrev.04/

Thanks,
Dmitrij
> Hi,
>
> i've added encoded values generation and changed test code to verify 
> expected values based on generation input values.
>
> Please take a look at 
> http://cr.openjdk.java.net/~dpochepk/8152343/webrev.03/
>
> Thanks,
> Dmitrij
>>
>>> On May 7, 2016, at 11:41 AM, dmitrij pochepko 
>>> <dmitrij.pochepko at oracle.com <mailto:dmitrij.pochepko at oracle.com>> 
>>> wrote:
>>>
>>>>
>>>>
>>>>> On May 6, 2016, at 4:25 AM, Dmitrij Pochepko 
>>>>> <dmitrij.pochepko at oracle.com <mailto:dmitrij.pochepko at oracle.com>> 
>>>>> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> please review patch for 8152343: JVMCI test tasks: Unit tests for 
>>>>> MetaAccessProvider
>>>>>
>>>>> A new tests were added for jdk.vm.ci.meta.MetaAccessProvider 
>>>>> implementation. An existing TestMetaAccessProvider.java was used 
>>>>> to add new tests.
>>>>>
>>>>> webrev:http://cr.openjdk.java.net/~dpochepk/8152343/webrev.01/
>>>> + private static final int[] VALID_ENCODED_VALUES = new int[]{-180, 
>>>> -436, -10932, -2147483572};
>>>> What are these values?  Maybe it would make more sense to have them 
>>>> in hex-form?
>>> These values are encoded values for deoptReason=Aliasing, 
>>> deoptAction=InvalidateRecompile and debugId={0, 1, 42, 8388607}
>>> so, we have 0, 1, <some non-border value>, 0x7FFFFF which is a 
>>> maximum debugId value here(all 23 bits set)
>>>
>>> I've created another webrev with hex values and respective comment 
>>> added.
>>>
>>> http://cr.openjdk.java.net/~dpochepk/8152343/webrev.02
>>
>> Better but I still don’t like them being hardcoded.  You should 
>> calculate the values with some defined constants so that someone 
>> after you can understand what’s going on and be able to make changes.
>>
>> Also, what is this supposed to test?
>> + @Test
>> + public void decodeDeoptReasonTest() {
>> + for (int encoded : VALID_ENCODED_VALUES) {
>> + JavaConstant value = JavaConstant.forInt(encoded);
>> + DeoptimizationReason reason = metaAccess.decodeDeoptReason(value);
>> + DeoptimizationReason reason2 = metaAccess.decodeDeoptReason(value);
>> + assertNotNull("Expected not null reason", reason);
>> + assertEquals("Expected equal reasons", reason, reason2);
>> + }
>> + }
>> That two invocations of the same method on the same receiver with the 
>> same value return the same value?  I don’t see how that could fail.
>>
>>>
>>> Thanks,
>>> Dmitrij
>>>>
>>>>>
>>>>> CR:https://bugs.openjdk.java.net/browse/JDK-8152343
>>>>>
>>>>> I've tested it on linux_x64.
>>>>>
>>>>> Thanks,
>>>>> Dmitrij
>>>>
>>>
>>>
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20160511/0c0cf961/attachment-0001.html>


More information about the hotspot-compiler-dev mailing list