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 {
}
);
+ # unicode is tricky, and now we happen to invoke it early via a
+ # regex in connection()
+ return $obj if (ref $obj) =~ /^utf8/;
+
# Test Builder is now making a new object for every pass/fail (que bloat?)
# and as such we can't really store any of its objects (since it will
# re-populate the registry while checking it, ewwww!)
require DBI;
require DBD::SQLite;
require FileHandle;
+ require Moo;
%$weak_registry = ();
}
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
+ # we run this only on smokers - trying to establish a pattern
+ $rs_bind_circref->next
+ if ( ($ENV{TRAVIS}||'') ne 'true' and DBICTest::RunMode->is_smoker);
+
require Storable;
%$base_collection = (
%$base_collection,
# ^ /
# \-------- bound value on prepared/cached STH <-----------/
#
-TODO: {
- local $TODO = 'Not sure how to fix this yet, an entanglment could be an option';
- my $r = $weak_registry->{'basic leaky_resultset_cond'}{weakref};
- ok(! defined $r, 'We no longer leak!')
+if ( my $r = $weak_registry->{'basic leaky_resultset_cond'}{weakref} ) {
+ ok(! defined $r, 'Self-referential RS conditions no longer leak!')
or $r->result_source(undef);
}
# this is ugly and dirty but we do not yet have a Test::Embedded or
# similar
+# set up -I
+require Config;
+$ENV{PERL5LIB} = join ($Config::Config{path_sep}, @INC);
+($ENV{PATH}) = $ENV{PATH} =~ /(.+)/;
+
+
my $persistence_tests = {
PPerl => {
cmd => [qw/pperl --prefork=1/, __FILE__],
skip 'Main test failed - skipping persistent env tests', 1
unless $TB->is_passing;
- # set up -I
- require Config;
- local $ENV{PERL5LIB} = join ($Config::Config{path_sep}, @INC);
-
local $ENV{DBICTEST_IN_PERSISTENT_ENV} = 1;
require IPC::Open2;