RFR 8221857: Collect code coverage for a subset of code

Erik Joelsson erik.joelsson at oracle.com
Wed Apr 10 22:22:36 UTC 2019


Ok, thanks for clarifying, I agree and the current webrev looks good!

/Erik

On 2019-04-10 14:25, Alexandre (Shura) Iline wrote:
> Erik,
>
> JCOV_FILTERS variable is also used while building an instrumented image - with "jcov-image” make target. To completely prevent make form complaining, it looks like the variable would need to be added it to MAKE_CONTROL_VARIABLES in make/InitSupport.gmk. Which we could do, but, judging by the look of it, only “very important” variables are listed as controlled.
>
> At the same time, I predict that most of the use cases would be covered with just using the configuration option. In less common cases when direct usage of JCOV_FILTERS is used, user can survive with make complaining about it not been controlled.
>
> So I suggest to push the change as is. Let me know if you are OK with that. We can reconsider later, if there would be a need for it.
>
> Thank you.
>
> Shura
>
>> On Apr 9, 2019, at 6:31 AM, Erik Joelsson <erik.joelsson at oracle.com> wrote:
>>
>> Hello Shura,
>>
>> If JCOV_FILTERS is ever expected to be set on the make command line (typically when running make run-test-prebuilt), then it would be good if we could add a way to set it through TEST_OPTS=JCOV_FILTERS=... . Using the officially supported input variables like this avoids the warning about unsupported variables you otherwise get from our makefiles.
>>
>> To do that, you simply add JCOV_FILTERS to the ParseKeywordVariable call for TEST_OPTS further up in RunTests.gmk. Then you will receive the variable as TEST_OPTS_JCOV_FILTERS.
>>
>> Otherwise this looks good.
>>
>> /Erik
>>
>> On 2019-04-08 14:12, Alexandre (Shura) Iline wrote:
>>> Hi,
>>>
>>> Could you please take a look on this enhancement which makes it easy to get code coverage for a part of JDK code.
>>>
>>> This change introduces “JCOV_FILTERS” make variable and also "--with-jcov-filters” configuration option.
>>>
>>> With that one is free to use any of JCov filtering options to limit the resulting report to only the desired code.
>>>
>>> This is an excerpt from JCov usage output:
>>>        Filtering conditions.
>>>          -include(i) 'string value' (Option could be specified several times.)
>>>          -exclude(e) 'string value' (Option could be specified several times.)
>>>          -include_list 'string value'
>>>          -exclude_list 'string value'
>>>          -include_module_list 'string value'
>>>          -exclude_module_list 'string value'
>>>      Filtering conditions.
>>>          -include_module(im) 'string value' (Option could be specified several times.)
>>>          -exclude_module(em) 'string value' (Option could be specified several times.)
>>>          -fm 'string value' (Option could be specified several times.)
>>>          -fm_list 'string value'
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8221857
>>> Webrev: http://cr.openjdk.java.net/~shurailine/JDK-8221857/webrev.00/
>>>
>>> Thank you.
>>>
>>> Shura
>>>


More information about the build-dev mailing list