[9] RFR JDK-8152344: JVMCI test task: Unit tests for ConstantReflectionProvider
Konstantin Shefov
konstantin.shefov at oracle.com
Fri Mar 25 05:37:39 UTC 2016
Christian
I have fixed "mx checkstyle" errors.
Then new webrev is: http://cr.openjdk.java.net/~kshefov/8152344/webrev.03/
-Konstantin
On 25.03.2016 03:00, Christian Thalinger wrote:
>
>> On Mar 24, 2016, at 11:37 AM, Konstantin Shefov
>> <konstantin.shefov at oracle.com <mailto:konstantin.shefov at oracle.com>>
>> wrote:
>>
>> 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/
>> <http://cr.openjdk.java.net/%7Ekshefov/8152344/webrev.02/>
>
> Excellent. A couple things…
>
> I get 5 compiler warnings:
>
> /Users/cthaling/ws/jdk9/hs-comp/hotspot/test/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/TestHelper.java:474:
> warning: [rawtypes] found raw type: Class
> public static ResolvedJavaField getResolvedJavaField(Class clazz,
> String fieldName) {
> ^
> missing type arguments for generic class Class<T>
> where T is a type-variable:
> T extends Object declared in class Class
> /Users/cthaling/ws/jdk9/hs-comp/hotspot/test/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/BoxPrimitiveDataProvider.java:48:
> warning: [cast] redundant cast to byte
> cfgSet.add(new Object[]{JavaConstant.forByte((byte) number),
> ^
> /Users/cthaling/ws/jdk9/hs-comp/hotspot/test/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/ReadConstantArrayElementDataProvider.java:234:
> warning: [rawtypes] found raw type: Class
> Class dummyClass = DummyClass.class;
> ^
> missing type arguments for generic class Class<T>
> where T is a type-variable:
> T extends Object declared in class Class
> /Users/cthaling/ws/jdk9/hs-comp/hotspot/test/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/ReadConstantArrayElementDataProvider.java:244:
> warning: [rawtypes] found raw type: Class
> Class componentType = arrayField.getType().getComponentType();
> ^
> missing type arguments for generic class Class<T>
> where T is a type-variable:
> T extends Object declared in class Class
> 5 warnings
>
> Please fix them.
>
> It seems you didn’t run checkstyle because I’m still seeing a lot of
> errors.
>
> Btw. the error when running unittest is fine:
>
> There was 1 failure:
> 1)
> initializationError(jdk.vm.ci.hotspot.test.HotSpotConstantReflectionProviderTest)
> java.lang.Exception: No runnable methods
>
> There some work we have to do in mx.
>
>>
>> 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/d21c813d/attachment-0001.html>
More information about the hotspot-compiler-dev
mailing list