point out where in the docs a user is most likely to spend reading time
[dbsrgits/DBIx-Class.git] / t / 52leaks.t
index f1d11af..9f8c71a 100644 (file)
@@ -302,7 +302,15 @@ my @compose_ns_classes;
 
   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;
@@ -464,8 +472,11 @@ SKIP: {
   require IPC::Open2;
 
   for my $type (keys %$persistence_tests) { SKIP: {
-      skip "$type module not found", 1
-        unless eval "require $type";
+    unless (eval "require $type") {
+      # Don't terminate what we didn't start
+      delete $persistence_tests->{$type}{termcmd};
+      skip "$type module not found", 1;
+    }
 
     my @cmd = @{$persistence_tests->{$type}{cmd}};
 
@@ -509,6 +520,7 @@ END {
   unless ($ENV{DBICTEST_IN_PERSISTENT_ENV}) {
     close $_ for (*STDIN, *STDOUT, *STDERR);
     local $?; # otherwise test will inherit $? of the system()
-    system (@{$persistence_tests->{PPerl}{termcmd}});
+    system (@{$persistence_tests->{PPerl}{termcmd}})
+      if $persistence_tests->{PPerl}{termcmd};
   }
 }