Force xt/ tests to run on anything involving a create_distdir
[dbsrgits/DBIx-Class.git] / t / 52leaks.t
index 7b51dc4..da99c8b 100644 (file)
@@ -47,7 +47,8 @@ if ($ENV{DBICTEST_IN_PERSISTENT_ENV}) {
 
 use lib qw(t/lib);
 use DBICTest::RunMode;
-use DBICTest::Util qw/populate_weakregistry assert_empty_weakregistry/;
+use DBICTest::Util::LeakTracer qw/populate_weakregistry assert_empty_weakregistry/;
+use Scalar::Util 'refaddr';
 use DBIx::Class;
 use B 'svref_2object';
 BEGIN {
@@ -257,9 +258,12 @@ my @compose_ns_classes;
 
     leaky_resultset => $rs_bind_circref,
     leaky_resultset_cond => $cond_rowobj,
-    leaky_resultset_member => $rs_bind_circref->next,
   };
 
+  # this needs to fire, even if it can't find anything
+  # see FIXME below
+  $rs_bind_circref->next;
+
   require Storable;
   %$base_collection = (
     %$base_collection,
@@ -363,16 +367,6 @@ for my $slot (keys %$weak_registry) {
     delete $weak_registry->{$slot}
       unless $cleared->{hash_merge_singleton}{$weak_registry->{$slot}{weakref}{behavior}}++;
   }
-  elsif (
-    $slot =~ /^Data::Dumper/
-      and
-    $weak_registry->{$slot}{stacktrace} =~ /\QDBIx::Class::ResultSource::RowParser::_mk_row_parser/
-  ) {
-    # there should be only one D::D object (used to construct the rowparser)
-    # more would indicate trouble
-    delete $weak_registry->{$slot}
-      unless $cleared->{mk_row_parser_dd_singleton}++;
-  }
   elsif (DBIx::Class::_ENV_::INVISIBLE_DOLLAR_AT and $slot =~ /^__TxnScopeGuard__FIXUP__/) {
     delete $weak_registry->{$slot}
   }