3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this program. If not, see <https://www.gnu.org/licenses/>.
20 use Test
::Dpkg
qw(:needs
);
23 test_needs_module
('Test::Perl::Critic');
24 test_needs_srcdir_switch
();
27 BuiltinFunctions
::ProhibitBooleanGrep
28 BuiltinFunctions
::ProhibitLvalueSubstr
29 BuiltinFunctions
::ProhibitReverseSortBlock
30 BuiltinFunctions
::ProhibitSleepViaSelect
31 BuiltinFunctions
::ProhibitStringySplit
32 BuiltinFunctions
::ProhibitUniversalCan
33 BuiltinFunctions
::ProhibitUniversalIsa
34 BuiltinFunctions
::ProhibitUselessTopic
35 BuiltinFunctions
::ProhibitVoidGrep
36 BuiltinFunctions
::ProhibitVoidMap
37 BuiltinFunctions
::RequireBlockGrep
38 BuiltinFunctions
::RequireBlockMap
39 BuiltinFunctions
::RequireGlobFunction
40 BuiltinFunctions
::RequireSimpleSortBlock
41 ClassHierarchies
::ProhibitAutoloading
42 ClassHierarchies
::ProhibitExplicitISA
43 ClassHierarchies
::ProhibitOneArgBless
44 CodeLayout
::ProhibitHardTabs
45 CodeLayout
::ProhibitQuotedWordLists
46 CodeLayout
::ProhibitTrailingWhitespace
47 CodeLayout
::RequireConsistentNewlines
48 ControlStructures
::ProhibitCStyleForLoops
49 ControlStructures
::ProhibitLabelsWithSpecialBlockNames
50 ControlStructures
::ProhibitMutatingListFunctions
51 ControlStructures
::ProhibitNegativeExpressionsInUnlessAndUntilConditions
52 ControlStructures
::ProhibitUntilBlocks
53 Documentation
::RequirePackageMatchesPodName
54 InputOutput
::ProhibitBarewordFileHandles
55 InputOutput
::ProhibitInteractiveTest
56 InputOutput
::ProhibitJoinedReadline
57 InputOutput
::ProhibitOneArgSelect
58 InputOutput
::ProhibitReadlineInForLoop
59 InputOutput
::ProhibitTwoArgOpen
60 InputOutput
::RequireBracedFileHandleWithPrint
61 InputOutput
::RequireCheckedOpen
62 InputOutput
::RequireEncodingWithUTF8Layer
63 Miscellanea
::ProhibitFormats
64 Miscellanea
::ProhibitUnrestrictedNoCritic
65 Miscellanea
::ProhibitUselessNoCritic
66 Modules
::ProhibitConditionalUseStatements
67 Modules
::ProhibitEvilModules
68 Modules
::RequireBarewordIncludes
69 Modules
::RequireEndWithOne
70 Modules
::RequireExplicitPackage
71 Modules
::RequireFilenameMatchesPackage
72 NamingConventions
::Capitalization
73 Objects
::ProhibitIndirectSyntax
74 RegularExpressions
::ProhibitSingleCharAlternation
75 RegularExpressions
::ProhibitUnusedCapture
76 RegularExpressions
::ProhibitUnusualDelimiters
77 RegularExpressions
::ProhibitUselessTopic
78 RegularExpressions
::RequireBracesForMultiline
79 RegularExpressions
::RequireExtendedFormatting
80 Subroutines
::ProhibitExplicitReturnUndef
81 Subroutines
::ProhibitNestedSubs
82 Subroutines
::ProhibitReturnSort
83 Subroutines
::ProhibitUnusedPrivateSubroutines
84 Subroutines
::ProtectPrivateSubs
85 TestingAndDebugging
::ProhibitNoStrict
86 TestingAndDebugging
::ProhibitNoWarnings
87 TestingAndDebugging
::RequireTestLabels
88 TestingAndDebugging
::RequireUseStrict
89 TestingAndDebugging
::RequireUseWarnings
90 ValuesAndExpressions
::ProhibitCommaSeparatedStatements
91 ValuesAndExpressions
::ProhibitComplexVersion
92 ValuesAndExpressions
::ProhibitInterpolationOfLiterals
93 ValuesAndExpressions
::ProhibitLongChainsOfMethodCalls
94 ValuesAndExpressions
::ProhibitMismatchedOperators
95 ValuesAndExpressions
::ProhibitMixedBooleanOperators
96 ValuesAndExpressions
::ProhibitQuotesAsQuotelikeOperatorDelimiters
97 ValuesAndExpressions
::ProhibitSpecialLiteralHeredocTerminator
98 ValuesAndExpressions
::ProhibitVersionStrings
99 ValuesAndExpressions
::RequireConstantVersion
100 ValuesAndExpressions
::RequireQuotedHeredocTerminator
101 ValuesAndExpressions
::RequireUpperCaseHeredocTerminator
102 Variables
::ProhibitAugmentedAssignmentInDeclaration
103 Variables
::ProhibitConditionalDeclarations
104 Variables
::ProhibitLocalVars
105 Variables
::ProhibitMatchVars
106 Variables
::ProhibitPackageVars
107 Variables
::ProhibitPerl4PackageNames
108 Variables
::ProhibitUnusedVariables
109 Variables
::ProtectPrivateVars
110 Variables
::RequireLexicalLoopIterators
111 Variables
::RequireNegativeIndices
114 Test
::Perl
::Critic
->import(
115 -profile
=> 't/critic/perlcriticrc',
117 -include
=> \
@policies,
121 my @files = Test
::Dpkg
::all_perl_files
();
123 plan tests
=> scalar @files;
125 for my $file (@files) {