]> git.vpit.fr Git - perl/modules/Scope-Upper.git/commitdiff
Test incompletely tied arrays
authorVincent Pit <vince@profvince.com>
Sun, 28 Dec 2008 17:52:17 +0000 (18:52 +0100)
committerVincent Pit <vince@profvince.com>
Sun, 28 Dec 2008 17:52:17 +0000 (18:52 +0100)
t/38-localize_elem-magic.t

index 2db3e2fe9da05a45c7d8ae3a8cb2472d61b74aba..2754885a41aa7b04fa6412ec646690271ad5d103 100644 (file)
@@ -5,7 +5,30 @@ use warnings;
 
 use Scope::Upper qw/localize_elem/;
 
-use Test::More tests => 6;
+use Test::More tests => 8;
+
+{
+ package Scope::Upper::Test::TiedArray;
+
+ sub TIEARRAY { bless [], $_[0] }
+ sub STORE { $_[0]->[$_[1]] = $_[2] }
+ sub FETCH { $_[0]->[$_[1]] }
+ sub CLEAR { @{$_[0]} = (); }
+ sub FETCHSIZE { scalar @{$_[0]} }
+ sub EXTEND {}
+}
+
+our @a;
+
+tie @a, 'Scope::Upper::Test::TiedArray';
+{
+ local @a = (5 .. 7);
+ {
+  localize_elem '@a', 4 => 12 => 0;
+  is_deeply \@a, [ 5 .. 7, undef, 12 ], 'localize_elem @incomplete_tied_array, $nonexistent, 12 => 0 [ok]';
+ }
+ is_deeply \@a, [ 5 .. 7, undef, undef ], 'localize_elem @incomplete_tied_array, $nonexistent, 12 => 0 [end]';
+}
 
 our $x;