Bug#795716: [libtest-perl-critic-perl] lintian FTBFS with new version

Axel Beckert abe at debian.org
Mon Aug 17 08:31:28 UTC 2015


Control: severity -1 important
Control: tag -1 + patch wontfix upstream

Hi Bastien,

Bastien ROUCARIÈS wrote:
> Sid version FTBFS whereas testing work fine see
> https://jenkins.debian.net/job/lintian-tests_sid/

I fixed that one last night in the Lintian test suite (without having
noticed this bug report). Took me and a few helpers (including Lucas
Kanashiro) hours and a lots of trial and error runs.

I'm actually not sure if the bug is really in Test::Perl::Critic. We
actually four options where the bug could be:

* lintian: Lintian test suite: In case subtest() is not meant to be used that
  way. I fixed it there by no more using subtest(), probably for the
  price of less chatty error messages in case of failures:
  https://anonscm.debian.org/cgit/lintian/lintian.git/commit/?id=a5baafce

* libtest-simple-perl: Test::More's subtest, because it doesn't seem
  to be thread-safe.

* libmce-perl: MCE::Grep's mce_grep seems to have no option to enforce
  the using of plain grep upon request.

* libtest-perl-critic-perl, because Test::Perl::Critic uses mce_grep
  unconditionally (replacing it with plain grep solves the issue,
  too.) and it's fiddling with Test::Builder's internals ignores
  $builder->{Test_Results} which is used by subtest.

So a working and tested patch is the following:

diff --git a/lib/Test/Perl/Critic.pm b/lib/Test/Perl/Critic.pm
index 2fdf32b..021e0f7 100644
--- a/lib/Test/Perl/Critic.pm
+++ b/lib/Test/Perl/Critic.pm
@@ -101,7 +101,7 @@ sub all_critic_ok {
     # workers. So we disable the T::B sanity checks at the end of its
     life.
     $TEST->no_ending(1);
 
-    my $okays = mce_grep { critic_ok($_) } @files;
+    my $okays = grep { critic_ok($_) } @files;
     my $pass = $okays == @files;
 
     # To make Test::Harness happy, we must emit a test plan and a
     sensible exit

I was tempted to apply that patch and upload it (see #debian-qa from
last night), but this removes _all_ gain which was added by using
MCE::Grep, so that's likely not the right solution. I've tagged it
"wontfix" for now, as this is something upstream must fix -- if it is a
bug in Test::Perl::Critic at all.

		Regards, Axel
-- 
 ,''`.  |  Axel Beckert <abe at debian.org>, http://people.debian.org/~abe/
: :' :  |  Debian Developer, ftp.ch.debian.org Admin
`. `'   |  4096R: 2517 B724 C5F6 CA99 5329  6E61 2FF9 CD59 6126 16B5
  `-    |  1024D: F067 EA27 26B9 C3FC 1486  202E C09E 1D89 9593 0EDE



More information about the pkg-perl-maintainers mailing list