Make $SIG{__WARN__} overrides more Carp::Always friendly
[dbsrgits/DBIx-Class.git] / t / 02_standalone_test_classes.t
index 48c70ac..38278c0 100644 (file)
@@ -4,6 +4,8 @@ use strict;
 use Test::More;
 use File::Find;
 
+use DBIx::Class::_Util 'sigwarn_silencer';
+
 use lib 't/lib';
 
 find({
@@ -16,11 +18,11 @@ find({
       die "fork failed: $!"
     }
     elsif (!$pid) {
-      if (my @offenders = grep { $_ =~ /(^|\/)DBI/ } keys %INC) {
+      if (my @offenders = grep { $_ ne 'DBIx/Class/_Util.pm' } grep { $_ =~ /(^|\/)DBI/ } keys %INC) {
         die "Wtf - DBI* modules present in %INC: @offenders";
       }
 
-      local $SIG{__WARN__} = sub { warn @_ unless $_[0] =~ /\bdeprecated\b/i };
+      local $SIG{__WARN__} = sigwarn_silencer( qr/\bdeprecated\b/i );
       require( ( $_ =~ m| t/lib/ (.+) |x )[0] ); # untaint and strip lib-part (. is unavailable under -T)
       exit 0;
     }