Add author test for use strict/warnings
Dagfinn Ilmari Mannsåker [Sat, 13 Jun 2015 17:47:42 +0000 (18:47 +0100)]
44 files changed:
lib/DBIx/Class/Schema/Loader/DBI/Writing.pm
t/01use.t
t/10_01sqlite_common.t
t/20invocations.t
t/21misc_fatal.t
t/22dump.t
t/23dumpmore.t
t/26dump_use_moose.t
t/27filter_generated.t
t/40overwrite_modifications.t
t/45relationships.t
t/50rt59849.t
t/backcompat/0.04006/10sqlite_common.t
t/backcompat/0.04006/11mysql_common.t
t/backcompat/0.04006/12pg_common.t
t/backcompat/0.04006/13db2_common.t
t/backcompat/0.04006/14ora_common.t
t/backcompat/0.04006/20invocations.t
t/backcompat/0.04006/21misc_fatal.t
t/backcompat/0.04006/22dump.t
t/backcompat/0.04006/23dumpmore.t
t/backcompat/0.04006/lib/DBIXCSL_Test/Schema/LoaderTest1.pm
t/backcompat/0.04006/lib/DBIx/Class/TestComponent.pm
t/backcompat/0.04006/lib/My/ResultBaseClass.pm
t/backcompat/0.04006/lib/My/SchemaBaseClass.pm
t/backcompat/0.04006/lib/TestAdditional.pm
t/backcompat/0.04006/lib/TestAdditionalBase.pm
t/backcompat/0.04006/lib/TestLeftBase.pm
t/lib/DBICTest/Schema/_no_skip_load_external/Foo.pm
t/lib/DBICTest/Schema/_skip_load_external/Foo.pm
t/lib/DBIXCSL_Test/Schema/MyResult/LoaderTest1.pm
t/lib/DBIx/Class/TestComponent.pm
t/lib/DBIx/Class/TestComponentForMap.pm
t/lib/My/ResultBaseClass.pm
t/lib/My/SchemaBaseClass.pm
t/lib/TestAdditional.pm
t/lib/TestAdditionalBase.pm
t/lib/TestComponentFQN.pm
t/lib/TestComponentForMapFQN.pm
t/lib/TestLeftBase.pm
t/lib/TestSchemaBaseClass.pm
t/lib/TestSchemaComponentFQN.pm
t/lib/dbixcsl_dumper_tests.pm
xt/strictures.t [new file with mode: 0644]

index 49e8ad5..be9ef87 100644 (file)
@@ -1,5 +1,6 @@
 package DBIx::Class::Schema::Loader::DBI::Writing;
 use strict;
+use warnings;
 
 our $VERSION = '0.07043';
 
index 0ea5875..8409c45 100644 (file)
--- a/t/01use.t
+++ b/t/01use.t
@@ -1,4 +1,5 @@
 use strict;
+use warnings;
 use Test::More tests => 10;
 
 BEGIN {
index 233c079..a23c3f4 100644 (file)
@@ -1,4 +1,5 @@
 use strict;
+use warnings;
 use Test::More;
 use lib qw(t/lib);
 use dbixcsl_common_tests;
index f282d86..4b49f58 100644 (file)
@@ -1,4 +1,5 @@
 use strict;
+use warnings;
 use Test::More;
 use Test::Warn;
 use DBIx::Class::Schema::Loader::Optional::Dependencies;
index e1f9e2e..c50fc4f 100644 (file)
@@ -1,4 +1,5 @@
 use strict;
+use warnings;
 use Test::More;
 use lib qw(t/lib);
 use make_dbictest_db;
index 50a124c..7ead7a7 100644 (file)
@@ -1,4 +1,5 @@
 use strict;
+use warnings;
 use Test::More;
 use Test::Exception;
 use Test::Warn;
index 9490b2f..15b668e 100644 (file)
@@ -15,7 +15,7 @@ $t->dump_test(
   classname => 'DBICTest::Schema::_no_skip_load_external',
   regexes => {
     Foo => [
-      qr/package DBICTest::Schema::_no_skip_load_external::Foo;\nour \$skip_me = "bad mojo";\n1;/
+      qr/package DBICTest::Schema::_no_skip_load_external::Foo;.*\nour \$skip_me = "bad mojo";\n1;/s
     ],
   },
 );
@@ -28,7 +28,7 @@ $t->dump_test(
   },
   neg_regexes => {
     Foo => [
-      qr/package DBICTest::Schema::_skip_load_external::Foo;\nour \$skip_me = "bad mojo";\n1;/
+      qr/package DBICTest::Schema::_skip_load_external::Foo;.*\nour \$skip_me = "bad mojo";\n1;/s
     ],
   },
 );
index b03db06..cddf4cf 100644 (file)
@@ -2,6 +2,7 @@ use DBIx::Class::Schema::Loader::Optional::Dependencies
     -skip_all_without => 'use_moose';
 
 use strict;
+use warnings;
 
 use Test::More;
 
index 20b45f2..efa3811 100644 (file)
@@ -1,4 +1,5 @@
 use strict;
+use warnings;
 use DBIx::Class::Schema::Loader;
 use DBIx::Class::Schema::Loader::Utils 'slurp_file';
 use File::Path;
index 05130f9..1dd6c98 100644 (file)
@@ -1,4 +1,5 @@
 use strict;
+use warnings;
 use Test::More;
 use Test::Exception;
 use Test::Warn;
index e9e48d8..8bd8152 100644 (file)
@@ -1,4 +1,5 @@
 use strict;
+use warnings;
 use Test::More;
 use Test::Exception;
 use Try::Tiny;
index 9080ed7..346bc3c 100644 (file)
@@ -2,6 +2,7 @@
 # by Mark Hedges (  hedges   -at|   scriptdolphin.com )
 
 use strict;
+use warnings;
 use Test::More tests => 7 * 5;
 use Test::Exception;
 
index c593b55..8b54dad 100644 (file)
@@ -2,6 +2,7 @@ use DBIx::Class::Schema::Loader::Optional::Dependencies
     -skip_all_without => 'test_backcompat';
 
 use strict;
+use warnings;
 use lib qw(t/backcompat/0.04006/lib);
 use dbixcsl_common_tests;
 use dbixcsl_test_dir qw/$tdir/;
index c77d1b4..484dd33 100644 (file)
@@ -2,6 +2,7 @@ use DBIx::Class::Schema::Loader::Optional::Dependencies
     -skip_all_without => qw(test_backcompat test_rdbms_mysql);
 
 use strict;
+use warnings;
 use lib qw(t/backcompat/0.04006/lib);
 use dbixcsl_common_tests;
 use Test::More;
index 070dcc1..4488506 100644 (file)
@@ -2,6 +2,7 @@ use DBIx::Class::Schema::Loader::Optional::Dependencies
     -skip_all_without => qw(test_backcompat test_rdbms_pg);
 
 use strict;
+use warnings;
 use lib qw(t/backcompat/0.04006/lib);
 use dbixcsl_common_tests;
 use Test::More;
index a886cb0..1c5a9c4 100644 (file)
@@ -2,6 +2,7 @@ use DBIx::Class::Schema::Loader::Optional::Dependencies
     -skip_all_without => qw(test_backcompat test_rdbms_db2);
 
 use strict;
+use warnings;
 use lib qw(t/backcompat/0.04006/lib);
 use dbixcsl_common_tests;
 use Test::More;
index edf1d9a..3b1920d 100644 (file)
@@ -2,6 +2,7 @@ use DBIx::Class::Schema::Loader::Optional::Dependencies
     -skip_all_without => qw(test_backcompat test_rdbms_oracle);
 
 use strict;
+use warnings;
 use lib qw(t/backcompat/0.04006/lib);
 use dbixcsl_common_tests;
 use Test::More;
index 1246c70..505a52c 100644 (file)
@@ -2,6 +2,7 @@ use DBIx::Class::Schema::Loader::Optional::Dependencies
     -skip_all_without => 'test_backcompat';
 
 use strict;
+use warnings;
 use Test::More;
 use lib qw(t/backcompat/0.04006/lib);
 use make_dbictest_db;
index 849e3d4..c7a63c2 100644 (file)
@@ -2,6 +2,7 @@ use DBIx::Class::Schema::Loader::Optional::Dependencies
     -skip_all_without => 'test_backcompat';
 
 use strict;
+use warnings;
 use Test::More;
 use lib qw(t/backcompat/0.04006/lib);
 use make_dbictest_db;
index 62c1a29..fa1a2da 100644 (file)
@@ -2,6 +2,7 @@ use DBIx::Class::Schema::Loader::Optional::Dependencies
     -skip_all_without => 'test_backcompat';
 
 use strict;
+use warnings;
 use Test::More;
 use lib qw(t/backcompat/0.04006/lib);
 use File::Path;
index 8f87097..9959f73 100644 (file)
@@ -2,6 +2,7 @@ use DBIx::Class::Schema::Loader::Optional::Dependencies
     -skip_all_without => 'test_backcompat';
 
 use strict;
+use warnings;
 use Test::More;
 use lib qw(t/backcompat/0.04006/lib);
 use File::Path;
index b4c3c65..959b277 100644 (file)
@@ -1,4 +1,6 @@
 package DBIXCSL_Test::Schema::LoaderTest1;
+use strict;
+use warnings;
 
 sub loader_test1_classmeth { 'all is well' }
 
index 48677c7..cec95b8 100644 (file)
@@ -1,4 +1,6 @@
 package DBIx::Class::TestComponent;
+use strict;
+use warnings;
 
 sub dbix_class_testcomponent { 'dbix_class_testcomponent works' }
 
index e246321..49a90c5 100644 (file)
@@ -1,4 +1,6 @@
 package My::ResultBaseClass;
+use strict;
+use warnings;
 
 use base 'DBIx::Class::Core';
 
index 7670d97..30690cb 100644 (file)
@@ -1,4 +1,6 @@
 package My::SchemaBaseClass;
+use strict;
+use warnings;
 
 use base 'DBIx::Class::Schema';
 
index d47fddb..d249a95 100644 (file)
@@ -1,4 +1,6 @@
 package TestAdditional;
+use strict;
+use warnings;
 
 sub test_additional { return "test_additional"; }
 
index 85159c0..ca71569 100644 (file)
@@ -1,4 +1,6 @@
 package TestAdditionalBase;
+use strict;
+use warnings;
 
 sub test_additional_base { return "test_additional_base"; }
 sub test_additional_base_override { return "test_additional_base_override"; }
index c836957..4ee2a13 100644 (file)
@@ -1,4 +1,6 @@
 package TestLeftBase;
+use strict;
+use warnings;
 
 sub test_additional_base_override { return "test_left_base_override"; }
 
index 5fb0fa7..cf85fac 100644 (file)
@@ -1,3 +1,6 @@
 package DBICTest::Schema::_no_skip_load_external::Foo;
+use strict;
+use warnings;
+
 our $skip_me = "bad mojo";
 1;
index fbf8e44..9a80fda 100644 (file)
@@ -1,3 +1,6 @@
 package DBICTest::Schema::_skip_load_external::Foo;
+use strict;
+use warnings;
+
 our $skip_me = "bad mojo";
 1;
index f80a699..4b46e23 100644 (file)
@@ -1,4 +1,6 @@
 package DBIXCSL_Test::Schema::MyResult::LoaderTest1;
+use strict;
+use warnings;
 
 sub loader_test1_classmeth { 'all is well' }
 
index 48677c7..cec95b8 100644 (file)
@@ -1,4 +1,6 @@
 package DBIx::Class::TestComponent;
+use strict;
+use warnings;
 
 sub dbix_class_testcomponent { 'dbix_class_testcomponent works' }
 
index 882469e..7eaede8 100644 (file)
@@ -1,4 +1,6 @@
 package DBIx::Class::TestComponentForMap;
+use strict;
+use warnings;
 
 sub dbix_class_testcomponentmap { 'dbix_class_testcomponentmap works' }
 
index c1b6b71..2f35d95 100644 (file)
@@ -1,3 +1,6 @@
 package My::ResultBaseClass;
+use strict;
+use warnings;
+
 use base 'DBIx::Class::Core';
 1;
index 4d65380..ad20974 100644 (file)
@@ -1,3 +1,6 @@
 package My::SchemaBaseClass;
+use strict;
+use warnings;
+
 use base 'DBIx::Class::Schema';
 1;
index d47fddb..d249a95 100644 (file)
@@ -1,4 +1,6 @@
 package TestAdditional;
+use strict;
+use warnings;
 
 sub test_additional { return "test_additional"; }
 
index 85159c0..ca71569 100644 (file)
@@ -1,4 +1,6 @@
 package TestAdditionalBase;
+use strict;
+use warnings;
 
 sub test_additional_base { return "test_additional_base"; }
 sub test_additional_base_override { return "test_additional_base_override"; }
index 772c7eb..415e31e 100644 (file)
@@ -1,4 +1,6 @@
 package TestComponentFQN;
+use strict;
+use warnings;
 
 sub testcomponent_fqn { 'TestComponentFQN works' }
 
index a63f79a..80c1aec 100644 (file)
@@ -1,4 +1,6 @@
 package TestComponentForMapFQN;
+use strict;
+use warnings;
 
 sub testcomponentformap_fqn { 'TestComponentForMapFQN works' }
 
index c836957..4ee2a13 100644 (file)
@@ -1,4 +1,6 @@
 package TestLeftBase;
+use strict;
+use warnings;
 
 sub test_additional_base_override { return "test_left_base_override"; }
 
index b83172b..c03e97e 100644 (file)
@@ -1,5 +1,8 @@
 package TestSchemaBaseClass;
-use base DBIx::Class::Schema;
+use strict;
+use warnings;
+
+use base 'DBIx::Class::Schema';
 
 our $test_ok = 0;
 
index 1b4c6c2..4b30d7f 100644 (file)
@@ -1,4 +1,6 @@
 package TestSchemaComponentFQN;
+use strict;
+use warnings;
 
 sub testschemacomponent_fqn { 'TestSchemaComponentFQN works' }
 
index 0382c0c..8e5a2da 100644 (file)
@@ -1,6 +1,7 @@
 package dbixcsl_dumper_tests;
 
 use strict;
+use warnings;
 use Test::More;
 use File::Path;
 use IPC::Open3;
diff --git a/xt/strictures.t b/xt/strictures.t
new file mode 100644 (file)
index 0000000..51207d4
--- /dev/null
@@ -0,0 +1,41 @@
+use DBIx::Class::Schema::Loader::Optional::Dependencies
+    -skip_all_without => 'test_strictures';
+
+use warnings;
+use strict;
+
+use Test::More;
+use File::Find;
+use lib 't/lib';
+
+# The rationale is - if we can load all our optdeps
+# that are related to lib/ - then we should be able to run
+# perl -c checks (via syntax_ok), and all should just work
+my $missing_groupdeps_present = grep
+  { DBIx::Class::Schema::Loader::Optional::Dependencies->req_ok_for($_) }
+  grep
+    { $_ !~ /^ (?: test | rdbms | dist ) _ /x }
+    keys %{DBIx::Class::Schema::Loader::Optional::Dependencies->req_group_list}
+;
+
+find({
+  wanted => sub {
+    -f $_ or return;
+    m/\.(?: pm | pl | t )$ /ix or return;
+
+    return if m{^(?:
+      lib/DBIx/Class/Schema/Loader/Optional/Dependencies.pm         # no stictures by design (load speed sensitive)
+    )$}x;
+
+    my $f = $_;
+
+    Test::Strict::strict_ok($f);
+    Test::Strict::warnings_ok($f);
+
+    Test::Strict::syntax_ok($f)
+      if ! $missing_groupdeps_present and $f =~ /^ (?: lib  )/x;
+  },
+  no_chdir => 1,
+}, (qw(lib t script maint)) );
+
+done_testing;