commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Heinrich Bohne <>
Subject Re: False coverage decrease accusations by Coveralls
Date Wed, 03 Jul 2019 11:00:45 GMT
I think we are talking about two completely different issues here. I am
aware that 2 of my newly introduced lines (the IllegalArgumentException
cases you mentioned) are not covered. These are argument validations
inside private methods, so they should never be reached, as you
correctly assumed.

What I meant, however, is, for example, the method
BigFraction.toString(). According to Coveralls, my pull request caused
several lines inside this method that were previously covered to be
uncovered. But both (which seems to
be the version of the master branch upon which the comparison in the
report for my pull request is based) and (which is the current version of
master) already list these lines as uncovered, so my pull request did
uncover these lines in BigFraction.toString(), contrary to what the
Coverall report says.

Here are the links that directly point to the relevant lines in the
report for BigFraction:
(my pull request)
(the master version against which my pull request was compared)
(the current master version)

On 7/3/19 12:32 PM, Alex Herbert wrote:
> On 03/07/2019 10:35, Heinrich Bohne wrote:
>> But the detailed report you linked to is exactly where I got the
>> information about what existing lines have (purportedly) been uncovered
>> from. It's true that the master branch changed in the meantime, but
>> those commits only concerned formatting and changing the field
>> serialVersionUID in BigFraction and Fraction. I don't understand exactly
>> what this variable is for, but I doubt that it has something to do with
>> the respective lines now being uncovered. In fact, the corresponding
>> build lists the two files
>> and under the menu "COVERAGE CHANGED",
>> but it doesn't actually report any change in coverage, so maybe this has
>> something to do with the bug.
> Your changes made:
> commons-numbers-fraction: 88.31% to 88.41%
> Overall: 2673 of 2836 (94.252%) to 2692 of 2857 (94.22%)
> This issue is that although you increased coverage in
> commons-numbers-fraction because the increase is lower than the
> average across all modules you get an overall lowering of total coverage.
> Your new changes have 40/42 (95.24%) coverage. This is below the
> previous overall average so the score is lower.
> The two missed lines are in your new functions toFloatingPointBits and
> roundAndRightShift which have an uncovered IllegalArgumentException
> edge case. Are these ever possible to hit? If not then you should put
> in a message for the exception, for example "Internal error: Please
> file a bug report".
> This should make it clear that the exception is not meant to be
> possible but the assertion it makes is a requirement for the rest of
> the function to work.
>> On 7/3/19 11:19 AM, Alex Herbert wrote:
>>>> On 3 Jul 2019, at 09:38, Heinrich Bohne <> wrote:
>>>> So this is the second time this happens to me. I've submitted a pull
>>>> request ( ), and the
>>>> Coveralls reports says that several existing lines have been
>>>> uncovered,
>>>> which is a lie, because the lines purportedly "uncovered" were already
>>>> not covered in the master branch (specifically the method
>>>> BigFraction.toString(), and, in the class Fraction, some lines in
>>>> addSub(Fraction, boolean), toString(), zero(), one() and
>>>> parse(String)).
>>>> Something should probably be done about this, but I don't know the
>>>> right
>>>> place where to report this.
>>> You can click on the Coveralls badge on Github to get the detailed
>>> report of what changed:
>>> <>
>>> This requires a bit of digesting. It seems to have been confused by
>>> the removal of lots of lines and addition of lines to the same file.
>>> It thinks you haveĀ  19 new lines covered and 2 extra lines missed in
>>> BigFraction.
>>> Did you rebase your change against master? Perhaps the reference
>>> master it is comparing to is slightly different.
>>> If you care then you could run locally with Jacoco.
>>> What my inspection does show is that a lot of edge cases are not
>>> being covered by tests (divide by zero, addition of zero, etc). This
>>> is more important to fix.
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail:
>>>> For additional commands, e-mail:
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:
>> For additional commands, e-mail:
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message