use strict; use warnings; use lib 't/lib'; use DateTime::Format::Builder; use Test::More; unless ( eval "use Test::Memory::Cycle; Devel::Cycle->can('_find_cycle_SCALAR'); " ) { plan skip_all => 'These tests require Test::Memory::Cycle and a working Devel::Cycle (> 1.07).'; exit; } plan tests => 4; { my $builder = DateTime::Format::Builder->new(); my $parser = $builder->parser( { strptime => '%Y-%m-%d' } ); memory_cycle_ok( $parser, 'Make sure parser object does not have circular refs' ); memory_cycle_ok( $builder, 'Make sure builder object does not have circular refs after making a single parser' ); } { my $builder = DateTime::Format::Builder->new(); my $parser = $builder->parser( { strptime => '%Y-%m-%d', strptime => '%d-%m-%Y', } ); memory_cycle_ok( $parser, 'Make sure parser object does not have circular refs' ); memory_cycle_ok( $builder, 'Make sure builder object does not have circular refs after making a multi parser' ); }