X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fop%2Feach.t;h=765bfdad77ee39aefe62ca4a1afe83fc4d86a74d;hb=6ec5370cb0aeb185d92b8fd2bad21bb10f75b30e;hp=1bd529de2ffc7c2af70c5f1eb0b2553fb8b46c06;hpb=d9f203a5233af6609a4b98c6d12d865eadc274ea;p=p5sagit%2Fp5-mst-13.2.git diff --git a/t/op/each.t b/t/op/each.t index 1bd529d..765bfda 100644 --- a/t/op/each.t +++ b/t/op/each.t @@ -6,7 +6,7 @@ BEGIN { require './test.pl'; } -plan tests => 39; +plan tests => 52; $h{'abc'} = 'ABC'; $h{'def'} = 'DEF'; @@ -106,16 +106,22 @@ isnt ($size, (split('/', scalar %hash))[1]); is (keys(%hash), 10, "keys (%hash)"); -is (keys(hash), 10, "keys (hash)"); +{ + no warnings 'deprecated'; + is (keys(hash), 10, "keys (hash)"); +} $i = 0; %h = (a => A, b => B, c=> C, d => D, abc => ABC); -@keys = keys(h); -@values = values(h); -while (($key, $value) = each(h)) { +{ + no warnings 'deprecated'; + @keys = keys(h); + @values = values(h); + while (($key, $value) = each(h)) { if ($key eq $keys[$i] && $value eq $values[$i] && $key eq lc($value)) { $i++; } + } } is ($i, 5); @@ -187,3 +193,44 @@ for (keys %u) { is($u{$u1}, 3, "U+0100 -> 3 "); is($u{$b1}, 4, "U+00C4 U+0080 -> 4"); } + +# test for syntax errors +for my $k (qw(each keys values)) { + eval $k; + like($@, qr/^Not enough arguments for $k/, "$k demands argument"); +} + +{ + my %foo=(1..10); + my ($k,$v); + my $count=keys %foo; + my ($k1,$v1)=each(%foo); + my $yes = 0; + if (%foo) { $yes++ } + my ($k2,$v2)=each(%foo); + my $rest=0; + while (each(%foo)) {$rest++}; + is($yes,1,"if(%foo) was true"); + isnt($k1,$k2,"if(%foo) didnt mess with each (key)"); + isnt($v1,$v2,"if(%foo) didnt mess with each (value)"); + is($rest,3,"Got the expect number of keys"); + my $hsv=1 && %foo; + like($hsv,'/',"Got bucket stats from %foo in scalar assignment context"); +} +{ + our %foo=(1..10); + my ($k,$v); + my $count=keys %foo; + my ($k1,$v1)=each(%foo); + my $yes = 0; + if (%foo) { $yes++ } + my ($k2,$v2)=each(%foo); + my $rest=0; + while (each(%foo)) {$rest++}; + is($yes,1,"if(%foo) was true"); + isnt($k1,$k2,"if(%foo) didnt mess with each (key)"); + isnt($v1,$v2,"if(%foo) didnt mess with each (value)"); + is($rest,3,"Got the expect number of keys"); + my $hsv=1 && %foo; + like($hsv,'/',"Got bucket stats from %foo in scalar assignment context"); +}