From: Peter Rabbitson Date: Sun, 16 Dec 2012 21:07:06 +0000 (+0100) Subject: Expand notabs/eol testing to .pod and some files at the root X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=7e1ca6dd06c5e53e7afa3433da0f59e41ce791e8;p=dbsrgits%2FDBIx-Class-Historic.git Expand notabs/eol testing to .pod and some files at the root --- diff --git a/script/dbicadmin b/script/dbicadmin index 58ef4c8..60124e4 100755 --- a/script/dbicadmin +++ b/script/dbicadmin @@ -34,7 +34,7 @@ my ($opts, $usage) = describe_options( ['Actions'], ["action" => hidden => { one_of => [ ['create' => 'Create version diffs needs preversion'], - ['upgrade' => 'Upgrade the database to the current schema '], + ['upgrade' => 'Upgrade the database to the current schema'], ['install' => 'Install the schema version tables to an existing database'], ['deploy' => 'Deploy the schema to the database'], ['select' => 'Select data from the schema'], diff --git a/xt/eol.t b/xt/eol.t index 221bce4..5d09ac3 100644 --- a/xt/eol.t +++ b/xt/eol.t @@ -2,6 +2,7 @@ use warnings; use strict; use Test::More; +use File::Glob 'bsd_glob'; use lib 't/lib'; use DBICTest; @@ -13,12 +14,35 @@ unless ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_eol') ) { : plan skip_all => "Test needs: $missing" } +# FIXME - temporary workaround for RT#82032 +{ + no warnings 'redefine'; + *Test::EOL::_is_perl_module = sub { + $_[0] =~ /\.(?:pm|pod)$/i || $_[0] =~ /::/; + } +} + Test::EOL::all_perl_files_ok({ trailing_whitespace => 1 }, qw/t xt lib script examples maint/, ); -# Changes is not a "perl file", hence checked separately -Test::EOL::eol_unix_ok('Changes', { trailing_whitespace => 1 }); +# check some non-"perl files" in the root separately +# use .gitignore as a guide of what to skip +# (or do not test at all if no .gitignore is found) +if (open(my $gi, '<', '.gitignore')) { + my $skipnames; + while (my $ln = <$gi>) { + next if $ln =~ /^\s*$/; + chomp $ln; + $skipnames->{$_}++ for bsd_glob($ln); + } + + for my $fn (bsd_glob('*')) { + next if $skipnames->{$fn}; + next unless -f $fn; + Test::EOL::eol_unix_ok($fn, { trailing_whitespace => 1 }); + } +} # FIXME - Test::EOL declares 'no_plan' which conflicts with done_testing # https://github.com/schwern/test-more/issues/14 diff --git a/xt/notabs.t b/xt/notabs.t index 3ddea64..3c854f9 100644 --- a/xt/notabs.t +++ b/xt/notabs.t @@ -2,6 +2,7 @@ use warnings; use strict; use Test::More; +use File::Glob 'bsd_glob'; use lib 't/lib'; use DBICTest; @@ -13,12 +14,35 @@ unless ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_notabs') ) { : plan skip_all => "Test needs: $missing" } +# FIXME - temporary workaround for RT#82033 +{ + no warnings 'redefine'; + *Test::NoTabs::_is_perl_module = sub { + $_[0] =~ /\.(?:pm|pod)$/i || $_[0] =~ /::/; + } +} + Test::NoTabs::all_perl_files_ok( qw/t xt lib script examples maint/, ); -# Changes is not a "perl file", hence checked separately -Test::NoTabs::notabs_ok('Changes'); +# check some non-"perl files" in the root separately +# use .gitignore as a guide of what to skip +# (or do not test at all if no .gitignore is found) +if (open(my $gi, '<', '.gitignore')) { + my $skipnames; + while (my $ln = <$gi>) { + next if $ln =~ /^\s*$/; + chomp $ln; + $skipnames->{$_}++ for bsd_glob($ln); + } + + for my $fn (bsd_glob('*')) { + next if $skipnames->{$fn}; + next unless -f $fn; + Test::NoTabs::notabs_ok($fn); + } +} # FIXME - Test::NoTabs declares 'no_plan' which conflicts with done_testing # https://github.com/schwern/test-more/issues/14