[9] RFR JDK-8152344: JVMCI test task: Unit tests for ConstantReflectionProvider

Konstantin Shefov konstantin.shefov at oracle.com
Thu Mar 24 21:37:09 UTC 2016


Hi, Christian

It seems my local ws has not built correctly after "hg tpull -u". I have 
cloned fresh WS, patched it and built it again.
Now "mx build --no-native" works with no errors.
Unit tests passed on Linux x64
Then I have done "mx ideinit" and opened project in IntelliJ Idea and 
reformatted all my files.

Please look at the new version of the webrev: 
http://cr.openjdk.java.net/~kshefov/8152344/webrev.02/

Thanks
-Konstantin

On 24.03.2016 19:33, Christian Thalinger wrote:
>
>> On Mar 23, 2016, at 9:37 PM, Konstantin Shefov 
>> <konstantin.shefov at oracle.com <mailto:konstantin.shefov at oracle.com>> 
>> wrote:
>>
>> Hi, Christian
>>
>> I did as you suggested, also removed jdk.test.lib.Triple, but when I 
>> execute
>>
>> mx build --no-native
>>
>> I have an error
>>
>> /media/kshefov/OS/Users/kshefov/workspaces/jdk9-hs-comp/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot.amd64/src/jdk/vm/ci/hotspot/amd64/AMD64HotSpotJVMCIBackendFactory.java:125: 
>> error: cannot find symbol
>>         if ((config.vmVersionFeatures & config.amd64SHA) != 0) {
>>                                               ^
>>   symbol:   variable amd64SHA
>>   location: variable config of type HotSpotVMConfig
>> /media/kshefov/OS/Users/kshefov/workspaces/jdk9-hs-comp/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot.amd64/src/jdk/vm/ci/hotspot/amd64/AMD64HotSpotJVMCIBackendFactory.java:126: 
>> error: cannot find symbol
>>             features.add(AMD64.CPUFeature.SHA);
>>                                          ^
>>   symbol:   variable SHA
>>   location: class CPUFeature
>> 2 errors
>
> What JDK are you using to build?
>
>>
>> -Konstantin
>>
>> On 23.03.2016 22:07, Christian Thalinger wrote:
>>>
>>>> On Mar 23, 2016, at 7:57 AM, Christian Thalinger 
>>>> <christian.thalinger at oracle.com 
>>>> <mailto:christian.thalinger at oracle.com>> wrote:
>>>>
>>>> I need to get a change into mx.  Will get back to you.
>>>
>>> Alright.  I created an mx pull request for TestNG support:
>>>
>>> https://github.com/graalvm/mx/pull/102
>>>
>>> In the meantime you can clone my mx repository on github.  Add this 
>>> patch to your changes:
>>>
>>> diff -r 1e385207d9f2 .mx.jvmci/suite.py
>>> --- a/.mx.jvmci/suite.pyFri Mar 18 15:54:47 2016 +0100
>>> +++ b/.mx.jvmci/suite.pyWed Mar 23 08:52:35 2016 -1000
>>> @@ -175,6 +175,18 @@ suite = {
>>> "workingSets" : "JVMCI",
>>>      },
>>>
>>> +    "jdk.vm.ci.hotspot.test" : {
>>> +      "subDir" : "test/compiler/jvmci",
>>> +      "sourceDirs" : ["src"],
>>> +      "dependencies" : [
>>> +        "mx:TESTNG",
>>> +        "jdk.vm.ci.hotspot",
>>> +      ],
>>> +      "checkstyle" : "jdk.vm.ci.services",
>>> +      "javaCompliance" : "1.8",
>>> +      "workingSets" : "API,JVMCI",
>>> +    },
>>> +
>>> "jdk.vm.ci.hotspotvmconfig" : {
>>> "subDir" : "src/jdk.vm.ci/share/classes",
>>> "sourceDirs" : ["src"],
>>>
>>> and run mx checkstyle.  You will see a bunch of errors.  Fix these. 
>>>  Make sure JVMCI builds through mx:
>>>
>>> $ mx build --no-native
>>>
>>> The biggest problem I see is:
>>>
>>> /Users/cthaling/ws/jdk9/hs-comp/hotspot/test/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/ReadConstantArrayElementDataProvider.java:47: 
>>> error: package jdk.test.lib does not exist
>>> import jdk.test.lib.Triple;
>>>
>>> Not sure if it really makes sense to have that dependency.  After 
>>> the build succeeds you can run all unit tests via:
>>>
>>> $ mx unittest
>>>
>>> Once that works, either open all files in your favorite IDE (after 
>>> doing mx ideinit) and reformat the files or run:
>>>
>>> $ mx eclipseformat
>>>
>>>>
>>>>> On Mar 22, 2016, at 1:50 AM, Konstantin Shefov 
>>>>> <konstantin.shefov at oracle.com 
>>>>> <mailto:konstantin.shefov at oracle.com>> wrote:
>>>>>
>>>>> Hi, Christian
>>>>>
>>>>> Thanks for reviewing.
>>>>>
>>>>> Here is the new patch 
>>>>> http://cr.openjdk.java.net/~kshefov/8152344/webrev.01/
>>>>>
>>>>> I moved tests to the folder 
>>>>> hotspot/test/compiler/jvmci/jdk.vm.ci.hotspot.test and tho the 
>>>>> package jdk.vm.ci.hotspot.test. Also I have done some code 
>>>>> re-formatting.
>>>>>
>>>>> -Konstantin
>>>>>
>>>>> On 03/22/2016 12:20 AM, Christian Thalinger wrote:
>>>>>> Sorry but I have to bring this up again… there is so much 
>>>>>> line-breaking going on it’s ridiculous.  Especially in:
>>>>>>
>>>>>> http://cr.openjdk.java.net/~kshefov/8152344/webrev.00/test/compiler/jvmci/constantReflectionProviderTest/BoxPrimitiveDataProvider.java.html 
>>>>>> <http://cr.openjdk.java.net/%7Ekshefov/8152344/webrev.00/test/compiler/jvmci/constantReflectionProviderTest/BoxPrimitiveDataProvider.java.html>
>>>>>>
>>>>>> Or this:
>>>>>>   118         Assert.assertEquals(CONSTANT_REFLECTION_PROVIDER.readStableFieldValue(field,
>>>>>>   119                                                                               receiver,
>>>>>>   120                                                                               isDefStab),
>>>>>>   121                 expected, "Unexpected result:");
>>>>>>
>>>>>> Here is a suggestion.  Move your tests into the package 
>>>>>> jdk.vm.ci.hotspot.test under:
>>>>>>
>>>>>> hotspot/test/compiler/jvmci/jdk.vm.ci.hotspot.test
>>>>>>
>>>>>> Look at jdk.vm.ci.runtime.test as an example.  Then we 
>>>>>> add jdk.vm.ci.hotspot.test to the mx configuration file and let 
>>>>>> the predefined formatting rules take care of it.
>>>>>>
>>>>>> This would be my preferred way because then the tests are 
>>>>>> automatically imported into IDEs as well.  Actually all JVMCI 
>>>>>> tests should do it this way.
>>>>>>
>>>>>>> On Mar 21, 2016, at 11:07 AM, Konstantin Shefov 
>>>>>>> <konstantin.shefov at oracle.com> wrote:
>>>>>>>
>>>>>>> Hello
>>>>>>>
>>>>>>> Please review some new unit tests for methods of JVMCI 
>>>>>>> jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider class.
>>>>>>>
>>>>>>> The tests cover most public methods of the class named above.
>>>>>>>
>>>>>>> Here 
>>>>>>> "test/compiler/jvmci/constantReflectionProviderTest/HotSpotConstantReflectionProviderTest.java" 
>>>>>>> is the JTREG-testng file, all other classes are testng data 
>>>>>>> providers, except TestHelper.java and DummyClass.java that store 
>>>>>>> all necessary variables.
>>>>>>>
>>>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8152344
>>>>>>> Webrev: http://cr.openjdk.java.net/~kshefov/8152344/webrev.00/
>>>>>>>
>>>>>>> Thanks
>>>>>>> -Konstantin
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

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


More information about the hotspot-compiler-dev mailing list