Expand notabs/eol testing to .pod and some files at the root
Peter Rabbitson [Sun, 16 Dec 2012 21:07:06 +0000 (22:07 +0100)]
script/dbicadmin
xt/eol.t
xt/notabs.t

index 58ef4c8..60124e4 100755 (executable)
@@ -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'],
index 221bce4..5d09ac3 100644 (file)
--- 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
index 3ddea64..3c854f9 100644 (file)
@@ -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