xref: /openbsd-src/gnu/usr.bin/perl/dist/Env/t/array.t (revision 91f110e064cd7c194e59e019b83bb7496c1c84d4)
1898184e3Ssthen#!./perl
2898184e3Ssthen
3898184e3Ssthen$| = 1;
4898184e3Ssthen
5898184e3Ssthenuse strict;
6898184e3Ssthenuse Test::More;
7898184e3Ssthen
8898184e3Ssthenplan(skip_all => "skipped for VMS") if $^O eq 'VMS';
9*91f110e0Safresh1plan(tests => 12);
10898184e3Ssthen
11898184e3Ssthenuse Env  qw(@FOO);
12898184e3Ssthenuse vars qw(@BAR);
13898184e3Ssthen
14898184e3Ssthensub array_equal
15898184e3Ssthen{
16898184e3Ssthen    my ($a, $b) = @_;
17898184e3Ssthen    return 0 unless scalar(@$a) == scalar(@$b);
18898184e3Ssthen    for my $i (0..scalar(@$a) - 1) {
19898184e3Ssthen	return 0 unless $a->[$i] eq $b->[$i];
20898184e3Ssthen    }
21898184e3Ssthen    return 1;
22898184e3Ssthen}
23898184e3Ssthen
24898184e3Ssthen@FOO = qw(a B c);
25898184e3Ssthen@BAR = qw(a B c);
26898184e3Ssthenis_deeply(\@FOO, \@BAR, "Assignment");
27898184e3Ssthen
28898184e3Ssthen$FOO[1] = 'b';
29898184e3Ssthen$BAR[1] = 'b';
30898184e3Ssthenis_deeply(\@FOO, \@BAR, "Storing");
31898184e3Ssthen
32898184e3Ssthen$#FOO = 0;
33898184e3Ssthen$#BAR = 0;
34898184e3Ssthenis_deeply(\@FOO, \@BAR, "Truncation");
35898184e3Ssthen
36898184e3Ssthenpush @FOO, 'b', 'c';
37898184e3Ssthenpush @BAR, 'b', 'c';
38898184e3Ssthenis_deeply(\@FOO, \@BAR, "Push");
39898184e3Ssthen
40898184e3Ssthenpop @FOO;
41898184e3Ssthenpop @BAR;
42898184e3Ssthenis_deeply(\@FOO, \@BAR, "Pop");
43898184e3Ssthen
44898184e3Ssthenshift @FOO;
45898184e3Ssthenshift @BAR;
46898184e3Ssthenis_deeply(\@FOO, \@BAR, "Shift");
47898184e3Ssthen
48898184e3Ssthenpush @FOO, 'c';
49898184e3Ssthenpush @BAR, 'c';
50898184e3Ssthenis_deeply(\@FOO, \@BAR, "Push");
51898184e3Ssthen
52898184e3Ssthenunshift @FOO, 'a';
53898184e3Ssthenunshift @BAR, 'a';
54898184e3Ssthenis_deeply(\@FOO, \@BAR, "Unshift");
55898184e3Ssthen
56898184e3Ssthen@FOO = reverse @FOO;
57898184e3Ssthen@BAR = reverse @BAR;
58898184e3Ssthenis_deeply(\@FOO, \@BAR, "Reverse");
59898184e3Ssthen
60898184e3Ssthen@FOO = sort @FOO;
61898184e3Ssthen@BAR = sort @BAR;
62898184e3Ssthenis_deeply(\@FOO, \@BAR, "Sort");
63898184e3Ssthen
64898184e3Ssthensplice @FOO, 1, 1, 'B';
65898184e3Ssthensplice @BAR, 1, 1, 'B';
66898184e3Ssthenis_deeply(\@FOO, \@BAR, "Splice");
67*91f110e0Safresh1
68*91f110e0Safresh1my $foo = $ENV{FOO};
69*91f110e0Safresh1() = splice @FOO, 0, 0;
70*91f110e0Safresh1is $ENV{FOO}, $foo, 'Splice in list context';
71