1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
#!/usr/bin/perl
use strict;
use Test::More;
sub should_skip();
chdir ($ENV{'LINTIAN_ROOT'})
or die ("fatal error: could not chdir to $ENV{LINTIAN_ROOT}: $!");
plan skip_all => 'Only UNRELEASED versions are criticised'
if should_skip();
eval 'use Test::Perl::Critic 1.00';
plan skip_all => "Test::Perl::Critic 1.00 required to run this test" if $@;
eval 'use PPIx::Regexp';
diag('libppix-regexp-perl is needed to enable some checks') if $@;
Test::Perl::Critic->import( -profile => '.perlcriticrc' );
our @CHECKS = glob ('checks/*[!.]*[!c]');
plan tests => scalar(@CHECKS)+1;
for my $check (@CHECKS) {
critic_ok($check);
}
subtest 'All scripts with correct shebang or extension' => sub {
all_critic_ok(qw(collection frontend lib unpack));
};
sub should_skip() {
my $skip = 1;
my $pid;
return $skip unless (defined ($ENV{'CRITICISE'}));
$pid = open (DPKG, '-|', 'dpkg-parsechangelog', '-c0');
die("failed to execute dpkg-parsechangelog: $!")
unless defined ($pid);
while (<DPKG>) {
$skip = 0 if m/^Distribution: UNRELEASED$/;
}
close(DPKG)
or die ("dpkg-parsechangelog returned: $?");
return $skip;
}
|