1# Regression test for bug in 'grow scalar slot into ARRAY' 2# bug occurs when old value is non-ARRAY reference, eg, an object 3 4use lib qw(t); 5use Carp; 6use Hash::AutoHash::Args; 7use Hash::AutoHash::Args::V0; 8use Test::More; 9use Test::Deep; 10 11my $obj=bless {name=>'I am an object'},'Object'; 12my $args=new Hash::AutoHash::Args (obj=>$obj); 13cmp_deeply($args->obj,$obj,'V1 arg=>one object'); 14my $args=new Hash::AutoHash::Args (obj=>$obj,obj=>$obj); 15cmp_deeply($args->obj,[$obj,$obj], 16 'V1 arg=>two objects: grow single valued slot into ARRAY'); 17my $args=new Hash::AutoHash::Args (obj=>$obj,obj=>$obj,obj=>$obj); 18cmp_deeply($args->obj,[$obj,$obj,$obj], 19 'V1 arg=>three objects: ARRAY slot stays ARRAY'); 20 21# do it again for V0 22my $obj=bless {name=>'I am an object'},'Object'; 23my $args=new Hash::AutoHash::Args::V0 (obj=>$obj); 24cmp_deeply($args->obj,$obj,'V0 arg=>one object'); 25my $args=new Hash::AutoHash::Args::V0 (obj=>$obj,obj=>$obj); 26cmp_deeply($args->obj,[$obj,$obj], 27 'V0 arg=>two objects: grow single valued slot into ARRAY'); 28my $args=new Hash::AutoHash::Args::V0 (obj=>$obj,obj=>$obj,obj=>$obj); 29cmp_deeply($args->obj,[$obj,$obj,$obj], 30 'V0 arg=>three objects: ARRAY slot stays ARRAY'); 31 32done_testing(); 33