123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- #!/usr/bin/perl
- #
- # This program is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation; either version 2 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
- use strict;
- use warnings;
- use Test::More;
- unless (defined $ENV{DPKG_DEVEL_MODE}) {
- plan skip_all => 'not running in development mode';
- }
- if (defined $ENV{srcdir}) {
- chdir $ENV{srcdir} or die "cannot chdir to source directory: $!";
- }
- if (not eval { require Test::Perl::Critic }) {
- plan skip_all => 'Test::Perl::Critic required to criticize code';
- }
- if (not eval { require Perl::Critic::Utils }) {
- plan skik_all => 'Perl::Critic::Utils required to criticize code';
- }
- my @policies = qw(
- BuiltinFunctions::ProhibitLvalueSubstr
- BuiltinFunctions::ProhibitReverseSortBlock
- BuiltinFunctions::ProhibitSleepViaSelect
- BuiltinFunctions::ProhibitStringySplit
- BuiltinFunctions::ProhibitUniversalCan
- BuiltinFunctions::ProhibitUniversalIsa
- BuiltinFunctions::RequireGlobFunction
- BuiltinFunctions::RequireSimpleSortBlock
- ClassHierarchies::ProhibitAutoloading
- ClassHierarchies::ProhibitExplicitISA
- ClassHierarchies::ProhibitOneArgBless
- CodeLayout::ProhibitQuotedWordLists
- CodeLayout::ProhibitTrailingWhitespace
- CodeLayout::RequireConsistentNewlines
- ControlStructures::ProhibitCStyleForLoops
- ControlStructures::ProhibitLabelsWithSpecialBlockNames
- ControlStructures::ProhibitUntilBlocks
- Documentation::RequirePackageMatchesPodName
- InputOutput::ProhibitBarewordFileHandles
- InputOutput::ProhibitInteractiveTest
- InputOutput::ProhibitJoinedReadline
- InputOutput::ProhibitOneArgSelect
- InputOutput::ProhibitReadlineInForLoop
- InputOutput::ProhibitTwoArgOpen
- InputOutput::RequireEncodingWithUTF8Layer
- Miscellanea::ProhibitFormats
- Miscellanea::ProhibitUnrestrictedNoCritic
- Miscellanea::ProhibitUselessNoCritic
- Modules::ProhibitEvilModules
- Modules::RequireBarewordIncludes
- Modules::RequireEndWithOne
- Modules::RequireExplicitPackage
- Modules::RequireFilenameMatchesPackage
- Objects::ProhibitIndirectSyntax
- RegularExpressions::RequireBracesForMultiline
- Subroutines::ProhibitExplicitReturnUndef
- Subroutines::ProhibitNestedSubs
- Subroutines::ProhibitReturnSort
- TestingAndDebugging::ProhibitNoStrict
- TestingAndDebugging::ProhibitNoWarnings
- TestingAndDebugging::RequireUseStrict
- TestingAndDebugging::RequireUseWarnings
- ValuesAndExpressions::ProhibitCommaSeparatedStatements
- ValuesAndExpressions::ProhibitComplexVersion
- ValuesAndExpressions::ProhibitInterpolationOfLiterals
- ValuesAndExpressions::ProhibitLongChainsOfMethodCalls
- ValuesAndExpressions::ProhibitMismatchedOperators
- ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters
- ValuesAndExpressions::ProhibitSpecialLiteralHeredocTerminator
- ValuesAndExpressions::ProhibitVersionStrings
- ValuesAndExpressions::RequireConstantVersion
- ValuesAndExpressions::RequireQuotedHeredocTerminator
- ValuesAndExpressions::RequireUpperCaseHeredocTerminator
- Variables::ProhibitAugmentedAssignmentInDeclaration
- Variables::ProhibitPerl4PackageNames
- Variables::ProhibitUnusedVariables
- Variables::ProtectPrivateVars
- Variables::RequireNegativeIndices
- );
- Test::Perl::Critic->import(
- -profile => 'test/100_critic/perlcriticrc',
- -verbose => 8,
- -include => \@policies,
- -only => 1,
- );
- my @dirs = qw(test src/t utils/t scripts/t dselect scripts/Dpkg);
- my @files = glob 'scripts/Dpkg.pm scripts/*.pl scripts/changelog/*.pl';
- push @files, Perl::Critic::Utils::all_perl_files(@dirs);
- plan tests => scalar @files;
- for my $file (@files) {
- critic_ok($file);
- }
|