blob: acb841f386f07cffd8724a4effc1c8c89bbb58aa (
plain)
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
#!/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 <https://www.gnu.org/licenses/>.
use strict;
use warnings;
use Test::More;
use Test::Dpkg qw(:needs);
test_needs_author();
test_needs_module('Test::Perl::Critic');
test_needs_srcdir_switch();
my @policies = qw(
BuiltinFunctions::ProhibitBooleanGrep
BuiltinFunctions::ProhibitLvalueSubstr
BuiltinFunctions::ProhibitReverseSortBlock
BuiltinFunctions::ProhibitSleepViaSelect
BuiltinFunctions::ProhibitStringySplit
BuiltinFunctions::ProhibitUniversalCan
BuiltinFunctions::ProhibitUniversalIsa
BuiltinFunctions::ProhibitUselessTopic
BuiltinFunctions::ProhibitVoidGrep
BuiltinFunctions::ProhibitVoidMap
BuiltinFunctions::RequireBlockGrep
BuiltinFunctions::RequireBlockMap
BuiltinFunctions::RequireGlobFunction
BuiltinFunctions::RequireSimpleSortBlock
ClassHierarchies::ProhibitAutoloading
ClassHierarchies::ProhibitExplicitISA
ClassHierarchies::ProhibitOneArgBless
CodeLayout::ProhibitHardTabs
CodeLayout::ProhibitQuotedWordLists
CodeLayout::ProhibitTrailingWhitespace
CodeLayout::RequireConsistentNewlines
ControlStructures::ProhibitCStyleForLoops
ControlStructures::ProhibitLabelsWithSpecialBlockNames
ControlStructures::ProhibitMutatingListFunctions
ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions
ControlStructures::ProhibitUntilBlocks
Documentation::RequirePackageMatchesPodName
Documentation::RequirePodSections
InputOutput::ProhibitBarewordFileHandles
InputOutput::ProhibitInteractiveTest
InputOutput::ProhibitJoinedReadline
InputOutput::ProhibitOneArgSelect
InputOutput::ProhibitReadlineInForLoop
InputOutput::ProhibitTwoArgOpen
InputOutput::RequireBracedFileHandleWithPrint
InputOutput::RequireCheckedOpen
InputOutput::RequireEncodingWithUTF8Layer
Miscellanea::ProhibitFormats
Miscellanea::ProhibitTies
Miscellanea::ProhibitUnrestrictedNoCritic
Miscellanea::ProhibitUselessNoCritic
Modules::ProhibitConditionalUseStatements
Modules::ProhibitEvilModules
Modules::RequireBarewordIncludes
Modules::RequireEndWithOne
Modules::RequireExplicitPackage
Modules::RequireFilenameMatchesPackage
NamingConventions::Capitalization
Objects::ProhibitIndirectSyntax
RegularExpressions::ProhibitSingleCharAlternation
RegularExpressions::ProhibitUnusedCapture
RegularExpressions::ProhibitUnusualDelimiters
RegularExpressions::ProhibitUselessTopic
RegularExpressions::RequireBracesForMultiline
RegularExpressions::RequireExtendedFormatting
Subroutines::ProhibitAmpersandSigils
Subroutines::ProhibitExplicitReturnUndef
Subroutines::ProhibitManyArgs
Subroutines::ProhibitNestedSubs
Subroutines::ProhibitReturnSort
Subroutines::ProhibitUnusedPrivateSubroutines
Subroutines::ProtectPrivateSubs
TestingAndDebugging::ProhibitNoStrict
TestingAndDebugging::ProhibitNoWarnings
TestingAndDebugging::RequireTestLabels
TestingAndDebugging::RequireUseStrict
TestingAndDebugging::RequireUseWarnings
ValuesAndExpressions::ProhibitCommaSeparatedStatements
ValuesAndExpressions::ProhibitComplexVersion
ValuesAndExpressions::ProhibitInterpolationOfLiterals
ValuesAndExpressions::ProhibitLongChainsOfMethodCalls
ValuesAndExpressions::ProhibitMismatchedOperators
ValuesAndExpressions::ProhibitMixedBooleanOperators
ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters
ValuesAndExpressions::ProhibitSpecialLiteralHeredocTerminator
ValuesAndExpressions::ProhibitVersionStrings
ValuesAndExpressions::RequireConstantVersion
ValuesAndExpressions::RequireQuotedHeredocTerminator
ValuesAndExpressions::RequireUpperCaseHeredocTerminator
Variables::ProhibitAugmentedAssignmentInDeclaration
Variables::ProhibitConditionalDeclarations
Variables::ProhibitLocalVars
Variables::ProhibitMatchVars
Variables::ProhibitPackageVars
Variables::ProhibitPerl4PackageNames
Variables::ProhibitUnusedVariables
Variables::ProtectPrivateVars
Variables::RequireLexicalLoopIterators
Variables::RequireNegativeIndices
);
Test::Perl::Critic->import(
-profile => 't/critic/perlcriticrc',
-verbose => 8,
-include => \@policies,
-only => 1,
);
my @files = Test::Dpkg::all_perl_files();
plan tests => scalar @files;
for my $file (@files) {
critic_ok($file);
}
|