X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F52leaks.t;h=b427175a5d39528f129582f27ffc49515d0f84bc;hb=26c663f123032941cb3f61d6cd11869b86716d6d;hp=dad4f362eed19d8cad0825a8bbee9f277f798390;hpb=ee20935b61ef210ea2d05fcf03cd3c28e07ef21b;p=dbsrgits%2FDBIx-Class.git diff --git a/t/52leaks.t b/t/52leaks.t index dad4f36..b427175 100644 --- a/t/52leaks.t +++ b/t/52leaks.t @@ -55,7 +55,8 @@ my $weak_registry = {}; my $has_dt; # Skip the heavy-duty leak tracing when just doing an install -unless (DBICTest::RunMode->is_plain) { +# or when having Moose crap all over everything +if ( !$ENV{DBICTEST_VIA_REPLICATED} and !DBICTest::RunMode->is_plain ) { # redefine the bless override so that we can catch each and every object created no warnings qw/redefine once/; @@ -98,7 +99,7 @@ unless (DBICTest::RunMode->is_plain) { # Load them and empty the registry # this loads the DT armada - $has_dt = DBIx::Class::Optional::Dependencies->req_ok_for([qw( test_rdbms_sqlite icdt )]); + $has_dt = DBIx::Class::Optional::Dependencies->req_ok_for([qw( test_rdbms_sqlite ic_dt )]); require Errno; require DBI; @@ -116,8 +117,6 @@ unless (DBICTest::RunMode->is_plain) { my $rs = $schema->resultset ('Artist'); my $storage = $schema->storage; - ok ($storage->connected, 'we are connected'); - my $row_obj = $rs->search({}, { rows => 1})->next; # so that commits/rollbacks work ok ($row_obj, 'row from db'); @@ -447,6 +446,14 @@ for my $addr (keys %$weak_registry) { delete $weak_registry->{$addr} unless $cleared->{hash_merge_singleton}{$weak_registry->{$addr}{weakref}{behavior}}++; } + elsif ($names =~ /^B::Hooks::EndOfScope::PP::_TieHintHashFieldHash/m) { + # there is one tied lexical which stays alive until GC time + # https://metacpan.org/source/ETHER/B-Hooks-EndOfScope-0.15/lib/B/Hooks/EndOfScope/PP/FieldHash.pm#L24 + # simply ignore it here, instead of teaching the leaktracer to examine ties + # the latter is possible yet terrible: https://github.com/dbsrgits/dbix-class/blob/v0.082820/t/lib/DBICTest/Util/LeakTracer.pm#L113-L117 + delete $weak_registry->{$addr} + unless $cleared->{bheos_pptiehinthashfieldhash}++; + } elsif ($names =~ /^DateTime::TimeZone::UTC/m) { # DT is going through a refactor it seems - let it leak zones for now delete $weak_registry->{$addr};