X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fstorage%2Ftxn_scope_guard.t;h=afe8c8e46feea494df2486efccdb3713e4366814;hb=3d56e026;hp=2f6a00d796ee03bad5990a475efe77269f5557ee;hpb=8e67215d45e36776172f1b1be623a46afa3c46dc;p=dbsrgits%2FDBIx-Class.git diff --git a/t/storage/txn_scope_guard.t b/t/storage/txn_scope_guard.t index 2f6a00d..afe8c8e 100644 --- a/t/storage/txn_scope_guard.t +++ b/t/storage/txn_scope_guard.t @@ -217,4 +217,29 @@ for my $post_poison (0,1) { 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 = 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;