summaryrefslogtreecommitdiff
path: root/t/op/push.t
diff options
context:
space:
mode:
Diffstat (limited to 't/op/push.t')
-rw-r--r--t/op/push.t38
1 files changed, 6 insertions, 32 deletions
diff --git a/t/op/push.t b/t/op/push.t
index f4b034f81b..c94c91953f 100644
--- a/t/op/push.t
+++ b/t/op/push.t
@@ -20,7 +20,7 @@ BEGIN {
-4, 4 5 6 7, 0 1 2 3
EOF
-plan tests => 14 + @tests*4;
+plan tests => 8 + @tests*2;
die "blech" unless @tests;
@x = (1,2,3);
@@ -29,37 +29,20 @@ is( join(':',@x), '1:2:3:1:2:3', 'push array onto array');
push(@x,4);
is( join(':',@x), '1:2:3:1:2:3:4', 'push integer onto array');
-no warnings 'experimental::autoderef';
-
-# test for push/pop on arrayref
-push(\@x,5);
-is( join(':',@x), '1:2:3:1:2:3:4:5', 'push arrayref');
-pop(\@x);
-is( join(':',@x), '1:2:3:1:2:3:4', 'pop arrayref');
-
# test autovivification
push @$undef1, 1, 2, 3;
is( join(':',@$undef1), '1:2:3', 'autovivify array');
-# test push on undef (error)
-eval { push $undef2, 1, 2, 3 };
-like( $@, qr/Not an ARRAY/, 'push on undef generates an error');
-
-# test constant
-use constant CONST_ARRAYREF => [qw/a b c/];
-push CONST_ARRAYREF(), qw/d e f/;
-is( join(':',@{CONST_ARRAYREF()}), 'a:b:c:d:e:f', 'test constant');
-
# test implicit dereference errors
eval "push 42, 0, 1, 2, 3";
like ( $@, qr/must be array/, 'push onto a literal integer');
$hashref = { };
-eval { push $hashref, 0, 1, 2, 3 };
-like( $@, qr/Not an ARRAY reference/, 'push onto a hashref');
+eval q{ push $hashref, 0, 1, 2, 3 };
+like( $@, qr/Experimental push on scalar is now forbidden/, 'push onto a hashref');
-eval { push bless([]), 0, 1, 2, 3 };
-like( $@, qr/Not an unblessed ARRAY reference/, 'push onto a blessed array ref');
+eval q{ push bless([]), 0, 1, 2, 3 };
+like( $@, qr/Experimental push on scalar is now forbidden/, 'push onto a blessed array ref');
$test = 13;
@@ -67,13 +50,9 @@ $test = 13;
{
my($first, $second) = ([1], [2]);
sub two_things { return +($first, $second) }
- push two_things(), 3;
+ push @{ two_things() }, 3;
is( join(':',@$first), '1', "\$first = [ @$first ];");
is( join(':',@$second), '2:3', "\$second = [ @$second ]");
-
- push @{ two_things() }, 4;
- is( join(':',@$first), '1', "\$first = [ @$first ];");
- is( join(':',@$second), '2:3:4', "\$second = [ @$second ]");
}
foreach $line (@tests) {
@@ -82,19 +61,14 @@ foreach $line (@tests) {
@get = split(' ',$get);
@leave = split(' ',$leave);
@x = (0,1,2,3,4,5,6,7);
- $y = [0,1,2,3,4,5,6,7];
if (defined $len) {
@got = splice(@x, $pos, $len, @list);
- @got2 = splice($y, $pos, $len, @list);
}
else {
@got = splice(@x, $pos);
- @got2 = splice($y, $pos);
}
is(join(':',@got), join(':',@get), "got: @got == @get");
is(join(':',@x), join(':',@leave), "left: @x == @leave");
- is(join(':',@got2), join(':',@get), "ref got: @got2 == @get");
- is(join(':',@$y), join(':',@leave), "ref left: @$y == @leave");
}
1; # this file is require'd by lib/tie-stdpush.t