> On Jan 15, 2019, at 5:35 AM, Magnus Ihse Bursie
> <magnus.ihse.bur...@oracle.com> wrote:
>
> Hi Shura,
>
> I see that this is pushed already, but I still have some questions and/or
> follow-up requests:
>
> 1) Do you expect the jcov-test-* targets to be used often? We've recently ran
> into problems with having too many top-level targets, and the large amount of
> targets generated for the jcov-test-* targets worries me. Before Christmas, I
> pushed a change which drastically cut down on the number of these
> auto-generated target names, and now this fix causes a partial regression on
> that front. To me, running jcov is such a special case, that the general
> solution using make jcov-test TEST="..." would suffice.
I mainly added those for consistency originally, but I see a value in them.
That is, when you want to collect code coverage, you want to do that for a
particular set of tests. If I want to run tier1 tests with coverage, then, I
would be more comfortable running make jcov-test-tier1 that make TEST=:tier1
run-test. That said, I do not think the targets will be used “often”.
Definitely much less often that the test-* counterparts.
>
> 2) I try hard to keep the doc/testing.md documentation relevant and up to
> date. Can you please write something in that document about what jcov-test
> does, and how to use it?
Oh, sure. I will do that as a follow-on fix.
>
> 3) What is the reasoning for removing the
>
> 598 $1: run-test-$1 parse-test-$1
> 599
> 600 TARGETS += $1
>
> construct?
This is because jcov grabber needs to be started upfront:
$(TARGETS): jcov-start-grabber
Shura
> This created a "meta" rule that included both running and parsing tests, for
> each test. I don't think it's used right now (otherwise testing would have
> broke), I think it's a sane abstraction to have, and in line with what we
> have elsewhere in the build system.
>
> /Magnus
>
> On 2019-01-08 19:35, Alexandre (Shura) Iline wrote:
>> Hi,
>>
>> Could you please take a look on a change which allows to run tests while
>> collecting code coverage with JCov. This is a continuation of work done in
>> JDK-8214309: Enhance makefiles to allow generating JCov instrumented build.
>>
>> This adds make targets jcov-test and others like jcov-test-tier1 etc. After
>> running the tests, one is left with a coverage report and also a data file
>> containing coverage, for further analysis.
>>
>> Part of the changes are related to increasing maximum and initial heap size,
>> which is needed to be done because instrumented classes are bigger in size.
>> The way it is done for JTReg tests is by setting both _JAVA_OPTIONS and
>> JAVA_TOOL_OPTIONS environment variables.
>>
>> As it stands now, not all tests pass while running with code coverage, which
>> pass normally. This particular enhancement is not addressing failing tests.
>> The tests will need to be fixed separately if ever. For example, there are
>> 35 tests which fail in open/test/jdk:jdk_core. A quick look tells that the
>> majority of the failures are in tests which verify error output and discover
>> an unexpected line "Picked up _JAVA_OPTIONS: -Xmx4g”.
>>
>> Enhancement: https://bugs.openjdk.java.net/browse/JDK-8215729
>> Webrev: http://cr.openjdk.java.net/~shurailine/8215729/webrev.01/
>>
>> Shura
>