X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fstorage%2Ftxn_scope_guard.t;h=4deffdd5d7f5d2265f2a8b1ed098ebd02f123252;hb=841efcb3f89a643bd283ccbbf5e73b98c4a6924a;hp=ca67c9874fa21b216cb8a51c5ce935b235469acb;hpb=7664b1a03c8f4da961d1f9795c9af1d545a24ea1;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/t/storage/txn_scope_guard.t b/t/storage/txn_scope_guard.t index ca67c98..4deffdd 100644 --- a/t/storage/txn_scope_guard.t +++ b/t/storage/txn_scope_guard.t @@ -197,51 +197,24 @@ for my $post_poison (0,1) { require Text::Balanced; - my $great_success; - { - local $TODO = 'RT#74994 *STILL* not fixed'; - - lives_ok { - # this is what poisons $@ - Text::Balanced::extract_bracketed( '(foo', '()' ); - - my $s = DBICTest->init_schema( deploy => 0 ); - my $g = $s->txn_scope_guard; - $g->commit; - $great_success++; - } 'Text::Balanced is no longer screwing up $@'; - } - - # delete all of this when T::B dep is bumped - unless ($great_success) { - -# hacky workaround for desperate folk -# intended to be copypasted into your app - { - require Text::Balanced; - require overload; - - local $@; - - # this is what poisons $@ - Text::Balanced::extract_bracketed( '(foo', '()' ); + my @w; + local $SIG{__WARN__} = sub { + $_[0] =~ /External exception object .+? \Qimplements partial (broken) overloading/ + ? push @w, @_ + : warn @_ + }; - if ($@ and overload::Overloaded($@) and ! overload::Method($@,'fallback') ) { - my $class = ref $@; - eval "package $class; overload->import(fallback => 1);" - } - } -# end of hacky workaround + lives_ok { + # this is what poisons $@ + Text::Balanced::extract_bracketed( '(foo', '()' ); - lives_ok { - # this is what poisons $@ - Text::Balanced::extract_bracketed( '(foo', '()' ); + my $s = DBICTest::Schema->connect('dbi:SQLite::memory:'); + my $g = $s->txn_scope_guard; + $g->commit; + } 'Broken Text::Balanced is not screwing up txn_guard'; - my $s = DBICTest->init_schema( deploy => 0 ); - my $g = $s->txn_scope_guard; - $g->commit; - } 'Monkeypatched Text::Balanced is no longer screwing up $@'; - } + local $TODO = 'RT#74994 *STILL* not fixed'; + is(scalar @w, 0, 'no warnings \o/'); } done_testing;