From: Nicholas Clark Date: Wed, 29 Jul 2009 15:32:56 +0000 (+0100) Subject: Add a test to verify that the MANIFEST file is well-formed. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=398f002c97feb32fa5d70119ed06988021e19663;p=p5sagit%2Fp5-mst-13.2.git Add a test to verify that the MANIFEST file is well-formed. --- diff --git a/MANIFEST b/MANIFEST index b4e4af2..9d5370f 100644 --- a/MANIFEST +++ b/MANIFEST @@ -4052,6 +4052,7 @@ t/lib/MakeMaker/Test/Setup/Problem.pm MakeMaker test utilities t/lib/MakeMaker/Test/Setup/Recurs.pm MakeMaker test utilities t/lib/MakeMaker/Test/Setup/XS.pm MakeMaker test utilities t/lib/MakeMaker/Test/Utils.pm MakeMaker test utilities +t/lib/manifest.t Test that this MANIFEST file is well formed t/lib/Math/BigFloat/Subclass.pm Empty subclass of BigFloat for test t/lib/Math/BigInt/BareCalc.pm Bigint's simulation of Calc t/lib/Math/BigInt/Scalar.pm Pure Perl module to support Math::BigInt diff --git a/t/lib/manifest.t b/t/lib/manifest.t new file mode 100644 index 0000000..a98e974 --- /dev/null +++ b/t/lib/manifest.t @@ -0,0 +1,44 @@ +#!./perl -w + +# Test the well formed-ness of the MANIFEST file. +# For now, just test that it uses tabs not spaces after the name of the file. + +BEGIN { + chdir 't'; + @INC = '../lib'; +} + +use strict; +use File::Spec; +require './test.pl'; + +my $failed = 0; + +plan('no_plan'); + +my $manifest = File::Spec->catfile(File::Spec->updir(), 'MANIFEST'); + +open my $m, '<', $manifest or die "Can't open '$manifest': $!"; + +while (<$m>) { + chomp; + next unless /\s/; + my ($file, $separator) = /^(\S+)(\s+)/; + isnt($file, undef, "Line $. doesn't start with a blank") or next; + if ($separator !~ tr/\t//c) { + # It's all tabs + next; + } elsif ($separator !~ tr/ //c) { + # It's all spaces + fail("Spaces in entry for $file"); + next; + } elsif ($separator =~ tr/\t//) { + fail("Mixed tabs and spaces in entry for $file"); + } else { + fail("Odd whitespace in entry for $file"); + } +} + +close $m or die $!; + +is($failed, 0, 'All lines are good');