From: Peter Rabbitson Date: Wed, 22 Jan 2014 16:24:03 +0000 (+0100) Subject: GAH! DBD::SQLite's sqlite_db_filename() is relatively new, undo 9e75be92 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=e1ff35c4815770d1d563a4c1fbdb1cc26772c07a;p=dbsrgits%2FDBIx-Class-Historic.git GAH! DBD::SQLite's sqlite_db_filename() is relatively new, undo 9e75be92 On the bright side, re-trapping $db_file now *SEEMS TO WORK*. What the hell? Ripping out the dogE-crap of 9e75be92, and trying to forget all of this ever happened... --- diff --git a/t/52leaks.t b/t/52leaks.t index 1ca1e21..aefe40c 100644 --- a/t/52leaks.t +++ b/t/52leaks.t @@ -360,13 +360,6 @@ unless (DBICTest::RunMode->is_plain) { ## anything we have seen so far is cool #delete @{$interim_wr}{keys %$weak_registry}; # - ## I still don't get any of this... - #delete $interim_wr->{$_} for grep { - # ref ($interim_wr->{$_}{weakref}) eq 'SCALAR' - # and - # ${$interim_wr->{$_}{weakref}} eq 'very closure... much wtf... wow!!!' - #} keys %$interim_wr; - # ## moment of truth - the rest ought to be gone #assert_empty_weakregistry($interim_wr); } diff --git a/t/lib/DBICTest.pm b/t/lib/DBICTest.pm index 86acbfd..c0dde46 100644 --- a/t/lib/DBICTest.pm +++ b/t/lib/DBICTest.pm @@ -210,23 +210,12 @@ sub _database { ); } - # MASSIVE FIXME - this seems necessary, but I do not yet know why - # without an external variable on the pad the on_connect_do cref - # (starting just below) is being considered a const of some sorts - # and persists indefinitely... wtf --ribasushi - my $such_var = 'very closure... much wtf... wow!!!'; - return ("dbi:SQLite:${db_file}", '', '', { AutoCommit => 1, # this is executed on every connect, and thus installs a disconnect/DESTROY # guard for every new $dbh on_connect_do => sub { - # MASSIVE FIXME - this seems necessary, but I do not yet know why - # without an external variable on the pad the on_connect_do cref - # (starting just above) is being considered a const of some sorts - # and persists indefinitely... wtf --ribasushi - $such_var if 0; my $storage = shift; my $dbh = $storage->_get_dbh; @@ -246,7 +235,7 @@ sub _database { # set a *DBI* disconnect callback, to make sure the physical SQLite # file is still there (i.e. the test does not attempt to delete # an open database, which fails on Win32) - if (my $guard_cb = __mk_disconnect_guard($dbh->sqlite_db_filename)) { + if (my $guard_cb = __mk_disconnect_guard($db_file)) { $dbh->{Callbacks} = { connect => sub { $guard_cb->('connect') }, disconnect => sub { $guard_cb->('disconnect') }, diff --git a/t/storage/replicated.t b/t/storage/replicated.t index c480541..509b3e6 100644 --- a/t/storage/replicated.t +++ b/t/storage/replicated.t @@ -208,6 +208,7 @@ TESTSCHEMACLASSES: { sub cleanup { my $self = shift @_; + $_->disconnect for values %{ $self->schema->storage->replicants }; foreach my $slave (@{$self->slave_paths}) { if(-e $slave) { unlink $slave; @@ -914,7 +915,6 @@ is $debug{storage_type}, 'REPLICANT', "got last query from a replicant: $debug{d } ## Delete the old database files -$_->disconnect for values %{ $replicated->schema->storage->replicants }; $replicated->cleanup; done_testing;