X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F52leaks.t;h=792c3d331ef06eceb93bfe5ebc7bc689b6f5b6a8;hb=d5e5fb4b47b759b202e552ff1d2f1dd393ac7b39;hp=2f1867d79b0ba169805cb69f925df47d0d8f52aa;hpb=d12d82729445072356504a0bfe4169991c4ea92a;p=dbsrgits%2FDBIx-Class.git diff --git a/t/52leaks.t b/t/52leaks.t index 2f1867d..792c3d3 100644 --- a/t/52leaks.t +++ b/t/52leaks.t @@ -12,18 +12,18 @@ BEGIN { } use Test::More; + +use lib qw(t/lib); +use DBICTest::RunMode; BEGIN { - plan skip_all => '5.13.6 leaks like a sieve (fixed in blead/cefd5c7c)' - if $] == '5.013006'; + plan skip_all => "Your perl version $] appears to leak like a sieve - skipping test" + if DBICTest::RunMode->peepeeness; } use Scalar::Util qw/refaddr reftype weaken/; use Carp qw/longmess/; use Try::Tiny; -use lib qw(t/lib); -use DBICTest::RunMode; - my $have_test_cycle; BEGIN { require DBIx::Class::Optional::Dependencies; @@ -156,7 +156,11 @@ memory_cycle_ok($weak_registry, 'No cycles in the weakened object collection') # Naturally we have some exceptions my $cleared; for my $slot (keys %$weak_registry) { - if ($slot =~ /^\QSQL::Translator/) { + if ($slot =~ /^\QTest::Builder/) { + # T::B 2.0 has result objects and other fancyness + delete $weak_registry->{$slot}; + } + elsif ($slot =~ /^\QSQL::Translator/) { # SQLT is a piece of shit, leaks all over delete $weak_registry->{$slot}; } @@ -165,6 +169,10 @@ for my $slot (keys %$weak_registry) { delete $weak_registry->{$slot} unless $cleared->{hash_merge_singleton}{$weak_registry->{$slot}{weakref}{behavior}}++; } + elsif ($slot =~ /^__TxnScopeGuard__FIXUP__/) { + die 'The $@ debacle should have been fixed by now!!!' if $] >= 5.013008; + delete $weak_registry->{$slot}; + } }