X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fstorage%2Ftxn_scope_guard.t;h=00d81a46df9b04ff8099bb2a0b5b67e6c0685aa7;hb=09d8fb4a05e6cd025924cc08e41484f17a116695;hp=56d602dac22691d07173f380eaa02250c3fd4e31;hpb=c0329273268971824784f239f32c7246e68da9c5;p=dbsrgits%2FDBIx-Class.git diff --git a/t/storage/txn_scope_guard.t b/t/storage/txn_scope_guard.t index 56d602d..00d81a4 100644 --- a/t/storage/txn_scope_guard.t +++ b/t/storage/txn_scope_guard.t @@ -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;