X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2Fboilerplate.t;fp=t%2Fboilerplate.t;h=0e13af462069881f2f0a80b37191ecc32585c580;hb=3cadc28babc49dbbb76ef7ff7344add68f59c3c2;hp=0000000000000000000000000000000000000000;hpb=13c16aeec1454ae58e932b393e827d6353c13231;p=perl%2Fmodules%2FIPC-MorseSignals.git diff --git a/t/boilerplate.t b/t/boilerplate.t new file mode 100644 index 0000000..0e13af4 --- /dev/null +++ b/t/boilerplate.t @@ -0,0 +1,48 @@ +#!perl -T + +use strict; +use warnings; +use Test::More 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"); + } +} + +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) +); + +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]/, + ); +} + +module_boilerplate_ok('lib/IPC/MorseSignals.pm');