I'm applying this patch series to the perl-coverage branch and merging it into master. It improves coverage for Version.pm, Wrap.pm, Condition.pm, and DisjConditions.pm, where now, only statements aren't counted as covered which consist of code used with ithreads only.
The last patch is a very small improvement for an unnecessary condition check that became obvious by looking at coverage results. Improves condition coverage by having one less unreachable condition. :-) Coverage results for lib/Automake/tests suite before/after the merge: ---------------------------- ------ ------ ------ ------ ------ ------ ------ File stmt bran cond sub pod time total ---------------------------- ------ ------ ------ ------ ------ ------ ------ ...b/Automake/ChannelDefs.pm 29.6 3.6 n/a 41.2 88.9 0.0 29.6 .../lib/Automake/Channels.pm 34.8 8.1 0.0 50.0 100.0 0.1 32.0 ...lib/Automake/Condition.pm 97.8 94.8 100.0 96.2 94.7 97.3 96.9 ...utomake/DisjConditions.pm 70.2 60.0 n/a 68.4 100.0 1.8 70.5 ...e/lib/Automake/Version.pm 72.4 60.0 66.7 80.0 100.0 0.1 69.6 ...make/lib/Automake/Wrap.pm 84.8 50.0 100.0 80.0 66.7 0.0 78.9 [...] ---------------------------- ------ ------ ------ ------ ------ ------ ------ File stmt bran cond sub pod time total ---------------------------- ------ ------ ------ ------ ------ ------ ------ ...b/Automake/ChannelDefs.pm 32.4 3.6 n/a 47.1 100.0 0.0 32.8 .../lib/Automake/Channels.pm 52.5 27.4 19.0 60.5 100.0 0.2 48.4 ...lib/Automake/Condition.pm 100.0 100.0 100.0 100.0 100.0 97.0 100.0 ...utomake/DisjConditions.pm 94.7 100.0 n/a 94.7 100.0 1.8 96.2 ...e/lib/Automake/Version.pm 100.0 100.0 100.0 100.0 100.0 0.4 100.0 ...make/lib/Automake/Wrap.pm 100.0 100.0 100.0 100.0 100.0 0.1 100.0 [...]