Skip to content

Commit

Permalink
Add a TODO to catch when Text::Balanced RT#74994 is finally fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
ribasushi committed Apr 11, 2013
1 parent 8a6e95d commit 153a6b3
Showing 1 changed file with 56 additions and 0 deletions.
56 changes: 56 additions & 0 deletions t/storage/txn_scope_guard.t
Expand Up @@ -188,4 +188,60 @@ for my $post_poison (0,1) {
$schema->storage->_dbh->disconnect;
}}

# add a TODO to catch when Text::Balanced is finally fixed
# https://rt.cpan.org/Public/Bug/Display.html?id=74994
#
# while it doesn't matter much for DBIC itself, this particular bug
# is a *BANE*, and DBIC is to bump its dep as soon as possible
{

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', '()' );

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', '()' );

my $s = DBICTest->init_schema( deploy => 0 );
my $g = $s->txn_scope_guard;
$g->commit;
} 'Monkeypatched Text::Balanced is no longer screwing up $@';
}
}

done_testing;

0 comments on commit 153a6b3

Please sign in to comment.