6 use HTTP::Request::Common;
10 use Devel::Events::Handler::ObjectTracker;
11 use Devel::Events::Filter::RemoveFields;
12 use Devel::Events::Generator::Objects;
14 my $tracker = Devel::Events::Handler::ObjectTracker->new();
16 my $gen = Devel::Events::Generator::Objects->new(
17 handler => Devel::Events::Filter::RemoveFields->new(
18 fields => [qw/generator/], # don't need to have a ref to $gen in each event
24 my $app = BackPAN::Web->as_psgi_app;
27 $gen->enable(); # start generating events
28 test_psgi app => $app,
31 foreach my $path (qw{/ /releases /dists /authors /about}) {
33 my $res = $cb->(GET $path);
34 ok($res->code == 200) or diag($res->code);
42 # live_objects is a Tie::RefHash::Weak hash
44 my @leaked_objects = keys %{ $tracker->live_objects };
46 print "leaked ", scalar(@leaked_objects), " objects\n";
48 foreach my $object ( @leaked_objects ) {
49 print "Leaked object: $object\n";
51 # the event that generated it
52 #print Dumper( $object, $tracker->live_objects->{$object} );
54 find_cycle( $object );