SKIP: {
if ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_leaks') ) {
- Test::Memory::Cycle::memory_cycle_ok ($base_collection, 'No cycles in the object collection')
+ my @w;
+ local $SIG{__WARN__} = sub { $_[0] =~ /\QUnhandled type: REGEXP/ ? push @w, @_ : warn @_ };
+
+ Test::Memory::Cycle::memory_cycle_ok ($base_collection, 'No cycles in the object collection');
+
+ if ( $] > 5.011 ) {
+ local $TODO = 'Silence warning due to RT56681';
+ is (@w, 0, 'No Devel::Cycle emitted warnings');
+ }
}
else {
skip 'Circular ref test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_leaks'), 1;
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 ($slot =~ /^DateTime::TimeZone/) {
# DT is going through a refactor it seems - let it leak zones for now
delete $weak_registry->{$slot};