Further delay empty weakregistry assertions
Dagfinn Ilmari Mannsåker [Tue, 23 Sep 2014 18:33:37 +0000 (19:33 +0100)]
(extracted from 2c2bc4e5)

t/cdbi/testlib/MyBase.pm
t/inflate/datetime_oracle.t
t/lib/DBICTest.pm
t/lib/DBICTest/BaseSchema.pm

index bf55635..1fc77d0 100644 (file)
@@ -40,7 +40,10 @@ my @connect = (@ENV{map { "DBICTEST_MYSQL_${_}" } qw/DSN USER PASS/}, { PrintErr
 $dbh = DBI->connect(@connect) or die DBI->errstr;
 my @table;
 
-END { $dbh->do("DROP TABLE $_") foreach @table }
+END {
+  $dbh->do("DROP TABLE $_") for @table;
+  undef $dbh;
+}
 
 __PACKAGE__->connection(@connect);
 
index 9182f23..98e4b53 100644 (file)
@@ -113,7 +113,7 @@ done_testing;
 
 # clean up our mess
 END {
-  if($schema && (my $dbh = $schema->storage->dbh)) {
+  if($schema && (my $dbh = $schema->storage->_dbh)) {
     $dbh->do("DROP TABLE event");
   }
   undef $schema;
index aa20b0c..e9c83fb 100644 (file)
@@ -343,7 +343,11 @@ sub init_schema {
 }
 
 END {
+  # Make sure we run after any cleanup in other END blocks
+  require B;
+  push @{ B::end_av()->object_2svref }, sub {
     assert_empty_weakregistry($weak_registry, 'quiet');
+  };
 }
 
 =head2 deploy_schema
index cdc7a02..c68d7fd 100644 (file)
@@ -257,7 +257,11 @@ sub clone {
 }
 
 END {
-  assert_empty_weakregistry($weak_registry, 'quiet');
+  # Make sure we run after any cleanup in other END blocks
+  require B;
+  push @{ B::end_av()->object_2svref }, sub {
+    assert_empty_weakregistry($weak_registry, 'quiet');
+  };
 }
 
 1;