1use strict; 2use warnings; 3 4use lib 't/lib'; 5 6use DateTime::Format::Builder; 7use Test::More; 8 9unless ( 10 eval 11 "use Test::Memory::Cycle; Devel::Cycle->can('_find_cycle_SCALAR'); " ) { 12 plan skip_all => 13 'These tests require Test::Memory::Cycle and a working Devel::Cycle (> 1.07).'; 14 exit; 15} 16 17{ 18 my $builder = DateTime::Format::Builder->new(); 19 my $parser = $builder->parser( { strptime => '%Y-%m-%d' } ); 20 21 memory_cycle_ok( 22 $parser, 23 'Make sure parser object does not have circular refs' 24 ); 25 26 memory_cycle_ok( 27 $builder, 28 'Make sure builder object does not have circular refs after making a single parser' 29 ); 30} 31 32{ 33 my $builder = DateTime::Format::Builder->new(); 34 my $parser = $builder->parser( 35 { 36 strptime => '%Y-%m-%d', 37 strptime => '%d-%m-%Y', 38 } 39 ); 40 41 memory_cycle_ok( 42 $parser, 43 'Make sure parser object does not have circular refs' 44 ); 45 46 memory_cycle_ok( 47 $builder, 48 'Make sure builder object does not have circular refs after making a multi parser' 49 ); 50} 51 52done_testing(); 53