diff options
author | Angelo Naselli <anaselli@linux.it> | 2014-01-27 18:20:30 +0100 |
---|---|---|
committer | Angelo Naselli <anaselli@linux.it> | 2014-01-27 18:20:30 +0100 |
commit | 1624ce382eb033c2cf3ef1fe6b9c41beb0b0a91b (patch) | |
tree | 1363e3d3bdcfa5b2ff3111a41b2c700a5a922140 /t/boilerplate.t | |
parent | f519e47d15103514585a272c6308467ac41ce551 (diff) | |
download | manatools-1624ce382eb033c2cf3ef1fe6b9c41beb0b0a91b.tar manatools-1624ce382eb033c2cf3ef1fe6b9c41beb0b0a91b.tar.gz manatools-1624ce382eb033c2cf3ef1fe6b9c41beb0b0a91b.tar.bz2 manatools-1624ce382eb033c2cf3ef1fe6b9c41beb0b0a91b.tar.xz manatools-1624ce382eb033c2cf3ef1fe6b9c41beb0b0a91b.zip |
Project structure change
Diffstat (limited to 't/boilerplate.t')
-rw-r--r-- | t/boilerplate.t | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/t/boilerplate.t b/t/boilerplate.t new file mode 100644 index 00000000..9d8d3fae --- /dev/null +++ b/t/boilerplate.t @@ -0,0 +1,57 @@ +#!perl -T +use 5.006; +use strict; +use warnings FATAL => 'all'; +use Test::More; + +plan tests => 3; + +sub not_in_file_ok { + my ($filename, %regex) = @_; + open( my $fh, '<', $filename ) + or die "couldn't open $filename for reading: $!"; + + my %violated; + + while (my $line = <$fh>) { + while (my ($desc, $regex) = each %regex) { + if ($line =~ $regex) { + push @{$violated{$desc}||=[]}, $.; + } + } + } + + if (%violated) { + fail("$filename contains boilerplate text"); + diag "$_ appears on lines @{$violated{$_}}" for keys %violated; + } else { + pass("$filename contains no boilerplate text"); + } +} + +sub module_boilerplate_ok { + my ($module) = @_; + not_in_file_ok($module => + 'the great new $MODULENAME' => qr/ - The great new /, + 'boilerplate description' => qr/Quick summary of what the module/, + 'stub function definition' => qr/function[12]/, + ); +} + +TODO: { + local $TODO = "Need to replace the boilerplate text"; + + not_in_file_ok(README => + "The README is used..." => qr/The README is used/, + "'version information here'" => qr/to provide version information/, + ); + + not_in_file_ok(Changes => + "placeholder date/time" => qr(Date/time) + ); + + module_boilerplate_ok('lib/AdminPanel/Shared.pm'); + + +} + |