RFR(M): 8205207: Port Graal unit tests under jtreg
Erik Joelsson
erik.joelsson at oracle.com
Mon Jun 25 15:52:17 UTC 2018
Looks ok to me.
/Erik
On 2018-06-22 15:22, Ekaterina Pavlova wrote:
> Fixed and regenerated webrev at the same location:
> http://cr.openjdk.java.net/~epavlova//8205207/webrev.01/index.html
>
> Erik,
> thanks again for your detailed reviews!
>
> -katya
>
> On 6/22/18 2:38 PM, Erik Joelsson wrote:
>> Hello Katya,
>>
>> This looks much better, thanks!
>>
>> A few suggestions still:
>>
>> Main.gmk: instead of repeating the assignment in both if and else block:
>>
>> ifeq ($(INCLUDE_GRAAL), true)
>> JVM_TEST_IMAGE_TARGETS += test-image-hotspot-jtreg-graal
>> endif
>>
>> I think it's fine to do that without the ?= because an alternative
>> JVM implementation is unlikely to be using graal anyway.
>>
>> In JtregGraalUnit.gmk: Some minor style nits:
>> 54: align )) with first eval line as you have done with the other
>> eval calls
>> 118: Since 117 is a one line parameter, please move comma to 117
>> 133: Same as for 118
>> 130-132: Please indent 4 spaces for continuation
>>
>> /Erik
>>
>> On 2018-06-22 14:16, Ekaterina Pavlova wrote:
>>> Erik, Doug,
>>>
>>> thank you a lot for your reviews and advises.
>>> I fixed everything what Erik has pointed out, please see my answers
>>> inlined.
>>> As about moving more staff in 'updategraalinopenjdk' can we consider
>>> this as next step?
>>> I am not quite familiar with 'updategraalinopenjdk' and didn't
>>> contribute into Graal ws yet,
>>> so I will prefer to do this improvement/refactoring as part of
>>> separate JDK issue.
>>>
>>> New webrev is here:
>>> webrev:
>>> http://cr.openjdk.java.net/~epavlova//8205207/webrev.01/index.html
>>> JBS: https://bugs.openjdk.java.net/browse/JDK-8205207
>>> testing: tested by building and running graal unit tests
>>>
>>>
>>> On 6/19/18 2:00 PM, Erik Joelsson wrote:
>>>> Hello,
>>>>
>>>> Please always include build-dev when reviewing build changes.
>>>>
>>>> In general this looks pretty good but there are some details that
>>>> need fixing.
>>>>
>>>> (Aside from this particular review, I must state my reservation
>>>> against all the special treatment graal is enjoying from a source
>>>> and test layout and build perspective. My understanding here is
>>>> that someone will have to regularly update the wrapper jtreg tests
>>>> manually using the script. This in addition to having to implement
>>>> this very convoluted redirection logic because the tests are in the
>>>> wrong place. Wouldn't it make a lot more sense to put the
>>>> complicated logic in the import procedure for graal source so that
>>>> it would fit nicely into the OpenJDK source/build/test model,
>>>> instead of adding more and more complicated workarounds in the
>>>> OpenJDK build and test procedures?)
>>>>
>>>> On 2018-06-18 22:26, Ekaterina Pavlova wrote:
>>>>> Hi All,
>>>>>
>>>>> please review porting of Graal unit tests under jtreg. The main
>>>>> idea of this porting is to keep Graal unit tests as is
>>>>> (located in src/jdk.internal.vm.compiler/share/classes/*.test) and
>>>>> run them similar way they are run in Graal project.
>>>>> To achieve this
>>>>> test/hotspot/jtreg/compiler/graalunit/common/GraalUnitTestLauncher.java
>>>>> helper class has been written
>>>>> which simply launches com.oracle.mxtool.junit.MxJUnitWrapper to
>>>>> run specified set of Graal unit tests. The groups of
>>>>> Graal unit tests to run are defined in auto-generated
>>>>> test/hotspot/jtreg/compiler/graalunit/*.java jtreg tests.
>>>>>
>>>>> New make/test/JtregGraalUnit.gmk is used to build Graal unit tests
>>>>> into jdk.vm.compiler.tests.jar and then install
>>>>> it in $(TEST_IMAGE_DIR)/hotspot/jtreg/graal/.
>>>>>
>>>> GRAALUNIT_LIB is never defined (in the open). Since this is used in
>>>> open makefiles, we need an open configure option to set it.
>>>
>>> ok, I created open/make/autoconf/lib-tests.m4 and did put Graal
>>> related staff there.
>>>
>>>> To make things clearer, I would rename LIB_DIR to something like
>>>> LIB_OUTPUTDIR to signal that this is a location to put files in,
>>>> rather than read them from.
>>>
>>> ok, renamed
>>>
>>>>
>>>> FLATTEN has no effect in the SetupCopyFiles call since all the jar
>>>> files found by wildcard can only be in one directory anyway.
>>>
>>> ok, removed
>>>
>>>> BUILDTOOLS_OUTPUTDIR is meant for tools used during the build.
>>>> Tests classes and jars should be built into
>>>> $(SUPPORT_OUTPUTDIR)/test/..> Please create a suitable sub
>>>> directory there for the output from this makefile.
>>>
>>> ok, introduced COMPILE_OUTPUTDIR :=
>>> $(SUPPORT_OUTPUTDIR)/test/graalunit to be used to build graal unit
>>> test classes.
>>>
>>>> The all and test-image targets are never called so no need to
>>>> declare them.
>>>>
>>>> There are some style issues too. (Please see
>>>> http://openjdk.java.net/groups/build/doc/code-conventions.html for
>>>> details.)
>>>> * 43 logic indent 2 spaces
>>>> * 52 we like to put the ending )) on a new line with ', \' at the
>>>> end of the line before
>>>> * 58 continuation indent 4 spaces
>>>> * 88, 89 please break long lines
>>>> * 90 continuation indent 4 spaces
>>>> * 99 continuation indent 4 spaces
>>>> * 120 break before ))
>>>
>>> I think I fixed everything
>>>
>>>>> make/Main.gmk adds proper dependencies for
>>>>> build-test-hotspot-jtreg-graal and test-image-hotspot-jtreg-graal.
>>>>>
>>>> The target build-test-hotspot-jtreg-graal only needs to depend on
>>>> exploded-image-optimize.
>>>
>>> fixed
>>>
>>>> The new graal specific targets should be guarded by INCLUDE_GRAAL
>>>> in Main.gmk. Otherwise those targets will silently do nothing if
>>>> invoked without graal. That means adding them to
>>>> JVM_TEST_IMAGE_TARGETS needs to be conditional too.
>>>
>>> fixed
>>>
>>>>> test/TestCommon.gmk passes TEST_IMAGE_GRAAL_DIR to jtreg so jtreg
>>>>> knows where to find Graal tests and libs.
>>>>>
>>>> This needs to be duplicated for make/RunTest.gmk so that these
>>>> tests work with "make run-test" as well.
>>>
>>> added
>>>
>>> thanks,
>>> -katya
>>>
>>>> /Erik
>>>>> test/hotspot/jtreg/compiler/graalunit/TestPackages.txt file
>>>>> defines "testName -> testPrefix [requiresStatement]" mapping
>>>>> which is used by
>>>>> test/hotspot/jtreg/compiler/graalunit/generateTests.sh script to
>>>>> generate jtreg tests.
>>>>>
>>>>> test/hotspot/jtreg/compiler/graalunit/com.oracle.mxtool.junit was
>>>>> ported from mx project without any changes.
>>>>>
>>>>>
>>>>> JBS: https://bugs.openjdk.java.net/browse/JDK-8205207
>>>>> webrev:
>>>>> http://cr.openjdk.java.net/~epavlova//8205207/webrev.00/index.html
>>>>> testing: new tests were executed as part of automatic HS testing
>>>>> for several months.
>>>>>
>>>>>
>>>>> thanks,
>>>>> -katya
>>>>>
>>>>> p.s.
>>>>> Igor Ignatyev volunteered to sponsor this change.
>>>>
>>>
>>
>
More information about the build-dev
mailing list