X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F52leaks.t;h=3342e1fe742836bfcb0c3dad953849c053cb9e21;hb=c8194884ef47fd5c537aa47ac1d3d7fa75b96eac;hp=f779f3c11acb5ac3fd6126b51d9d6d669f62d415;hpb=307ab4c58566698710b71eebbfb612686d9133be;p=dbsrgits%2FDBIx-Class.git diff --git a/t/52leaks.t b/t/52leaks.t index f779f3c..3342e1f 100644 --- a/t/52leaks.t +++ b/t/52leaks.t @@ -12,6 +12,11 @@ BEGIN { } use Test::More; +BEGIN { + plan skip_all => '5.13.6 leaks like a sieve (fixed in blead/cefd5c7c)' + if $] == '5.013006'; +} + use Scalar::Util qw/refaddr reftype weaken/; use Carp qw/longmess/; use Try::Tiny; @@ -151,15 +156,23 @@ 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 =~ /^SQL\:\: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}; } - elsif ($slot =~ /^Hash\:\:Merge/) { + elsif ($slot =~ /^\QHash::Merge/) { # only clear one object - more would indicate trouble 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}; + } }