Introducing DBIx::Class::Schema::SanityChecker
[dbsrgits/DBIx-Class.git] / t / storage / txn_scope_guard.t
index 56d602d..00d81a4 100644 (file)
@@ -1,3 +1,6 @@
+# Test is sufficiently involved to *want* to run with "maximum paranoia"
+BEGIN { $ENV{DBICTEST_OLD_MRO_SANITY_CHECK_ASSERTIONS} = 1 }
+
 BEGIN { do "./t/lib/ANFANG.pm" or die ( $@ || $! ) }
 
 use strict;
@@ -139,6 +142,11 @@ require DBICTest::AntiPattern::NullObject;
     }
   };
 
+
+  # we are driving manually here, do not allow interference
+  local $SIG{__DIE__} if $SIG{__DIE__};
+
+
   no warnings 'redefine';
   local *DBIx::Class::Storage::DBI::txn_rollback = sub { die 'die die my darling' };
   Class::C3->reinitialize() if DBIx::Class::_ENV_::OLD_MRO;
@@ -234,29 +242,4 @@ require DBICTest::AntiPattern::NullObject;
   is(scalar @w, 0, 'no warnings \o/');
 }
 
-# ensure Devel::StackTrace-refcapture-like effects are countered
-{
-  my $s = DBICTest::Schema->connect('dbi:SQLite::memory:');
-  my $g = $s->txn_scope_guard;
-
-  my @arg_capture;
-  {
-    local $SIG{__WARN__} = sub {
-      package DB;
-      my $frnum;
-      while (my @f = CORE::caller(++$frnum) ) {
-        push @arg_capture, @DB::args;
-      }
-    };
-
-    undef $g;
-    1;
-  }
-
-  warnings_exist
-    { @arg_capture = () }
-    qr/\QPreventing *MULTIPLE* DESTROY() invocations on DBIx::Class::Storage::TxnScopeGuard/
-  ;
-}
-
 done_testing;