1use strict; 2use warnings; 3use Perl::Lint::Policy::ValuesAndExpressions::ProhibitLeadingZeros; 4use t::Policy::Util qw/fetch_violations/; 5use Test::Base::Less; 6 7my $class_name = 'ValuesAndExpressions::ProhibitLeadingZeros'; 8 9filters { 10 params => [qw/eval/], # TODO wrong! 11}; 12 13for my $block (blocks) { 14 my $violations = fetch_violations($class_name, $block->input, $block->params); 15 is scalar @$violations, $block->failures, $block->dscr; 16} 17 18done_testing; 19 20__DATA__ 21 22=== 23--- dscr: Basic passing 24--- failures: 0 25--- params: 26--- input 27$var = 0; 28$var = 0.; 29$var = .0; 30$var = 10; 31$var = 0.0; 32$var = 00.0; 33$var = 00; 34$var = 0.11; 35$var = 10.0; 36$var = -0; 37$var = -0.; 38$var = -10; 39$var = -0.0; 40$var = -10.0 41$var = -0.11; 42$var = +0; 43$var = +0.; 44$var = +10; 45$var = +0.0; 46$var = +10.0; 47$var = +0.11; 48$var = +.011; 49$var = .011; 50$var = -.011; 51 52=== 53--- dscr: Basic failure 54--- failures: 12 55--- params: 56--- input 57$var = 01; 58$var = 010; 59$var = 001; 60$var = 0010; 61$var = -01; 62$var = -010; 63$var = -001; 64$var = -0010; 65$var = +01; 66$var = +010; 67$var = +001; 68$var = +0010; 69 70=== 71--- dscr: chmod 72--- failures: 0 73--- params: 74--- input 75$cnt = chmod 0755, 'foo', 'bar'; 76chmod 0755, @executables; 77 78$cnt = chmod ( 0755, 'foo', 'bar' ); 79chmod ( 0755, @executables ); 80 81=== 82--- dscr: chmod with strict option 83--- failures: 4 84--- params: {prohibit_leading_zeros => {strict => 1}} 85--- input 86$cnt = chmod 0755, 'foo', 'bar'; 87chmod 0755, @executables; 88 89$cnt = chmod ( 0755, 'foo', 'bar' ); 90chmod ( 0755, @executables ); 91 92=== 93--- dscr: dbmopen 94--- failures: 0 95--- params: 96--- input 97dbmopen %database, 'foo.db', 0600; 98dbmopen ( %database, 'foo.db', 0600 ); 99 100=== 101--- dscr: dbmopen with strict option 102--- failures: 2 103--- params: {prohibit_leading_zeros => {strict => 1}} 104--- input 105dbmopen %database, 'foo.db', 0600; 106dbmopen ( %database, 'foo.db', 0600 ); 107 108=== 109--- dscr: mkdir 110--- failures: 0 111--- params: 112--- input 113mkdir $directory, 0755; 114mkdir ( $directory, 0755 ); 115 116=== 117--- dscr: mkdir with strict option 118--- failures: 2 119--- params: {prohibit_leading_zeros => {strict => 1}} 120--- input 121mkdir $directory, 0755; 122mkdir ( $directory, 0755 ); 123 124=== 125--- dscr: sysopen 126--- failures: 0 127--- params: 128--- input 129sysopen $filehandle, $filename, O_RDWR, 0666; 130sysopen ( $filehandle, $filename, O_WRONLY | O_CREAT | O_EXCL, 0666 ); 131sysopen ( $filehandle, $filename, (O_WRONLY | O_CREAT | O_EXCL), 0666 ); 132 133=== 134--- dscr: sysopen with strict option 135--- failures: 3 136--- params: {prohibit_leading_zeros => {strict => 1}} 137--- input 138sysopen $filehandle, $filename, O_RDWR, 0666; 139sysopen ( $filehandle, $filename, O_WRONLY | O_CREAT | O_EXCL, 0666 ); 140sysopen ( $filehandle, $filename, (O_WRONLY | O_CREAT | O_EXCL), 0666 ); 141 142=== 143--- dscr: umask 144--- failures: 0 145--- params: 146--- input 147umask 002; 148umask ( 002 ); 149 150=== 151--- dscr: umask with strict option 152--- failures: 2 153--- params: {prohibit_leading_zeros => {strict => 1}} 154--- input 155umask 002; 156umask ( 002 ); 157 158=== 159--- dscr: no lint 160--- failures: 4 161--- params: 162--- input 163$var = 01; 164$var = 010; 165$var = 001; ## no lint 166$var = 0010; 167$var = -01; 168 169