xref: /openbsd-src/gnu/usr.bin/perl/t/op/defins.t (revision 2b0358df1d88d06ef4139321dd05bd5e05d91eaf)
1#!./perl -w
2
3#
4# test auto defined() test insertion
5#
6
7BEGIN {
8    chdir 't' if -d 't';
9    @INC = qw(. ../lib);
10    $SIG{__WARN__} = sub { $warns++; warn $_[0] };
11}
12require 'test.pl';
13plan( tests => 19 );
14
15$wanted_filename = $^O eq 'VMS' ? '0.' : '0';
16$saved_filename = $^O eq 'MacOS' ? ':0' : './0';
17
18cmp_ok($warns,'==',0,'no warns at start');
19
20open(FILE,">$saved_filename");
21ok(defined(FILE),'created work file');
22print FILE "1\n";
23print FILE "0";
24close(FILE);
25
26open(FILE,"<$saved_filename");
27ok(defined(FILE),'opened work file');
28my $seen = 0;
29my $dummy;
30while (my $name = <FILE>)
31 {
32  $seen++ if $name eq '0';
33 }
34cmp_ok($seen,'==',1,'seen in while()');
35
36seek(FILE,0,0);
37$seen = 0;
38my $line = '';
39do
40 {
41  $seen++ if $line eq '0';
42 } while ($line = <FILE>);
43cmp_ok($seen,'==',1,'seen in do/while');
44
45seek(FILE,0,0);
46$seen = 0;
47while (($seen ? $dummy : $name) = <FILE> )
48 {
49  $seen++ if $name eq '0';
50 }
51cmp_ok($seen,'==',1,'seen in while() ternary');
52
53seek(FILE,0,0);
54$seen = 0;
55my %where;
56while ($where{$seen} = <FILE>)
57 {
58  $seen++ if $where{$seen} eq '0';
59 }
60cmp_ok($seen,'==',1,'seen in hash while()');
61close FILE;
62
63opendir(DIR,($^O eq 'MacOS' ? ':' : '.'));
64ok(defined(DIR),'opened current directory');
65$seen = 0;
66while (my $name = readdir(DIR))
67 {
68  $seen++ if $name eq $wanted_filename;
69 }
70cmp_ok($seen,'==',1,'saw work file once');
71
72rewinddir(DIR);
73$seen = 0;
74$dummy = '';
75while (($seen ? $dummy : $name) = readdir(DIR))
76 {
77  $seen++ if $name eq $wanted_filename;
78 }
79cmp_ok($seen,'>',0,'saw file in while() ternary');
80
81rewinddir(DIR);
82$seen = 0;
83while ($where{$seen} = readdir(DIR))
84 {
85  $seen++ if $where{$seen} eq $wanted_filename;
86 }
87cmp_ok($seen,'==',1,'saw file in hash while()');
88
89$seen = 0;
90while (my $name = glob('*'))
91 {
92  $seen++ if $name eq $wanted_filename;
93 }
94cmp_ok($seen,'==',1,'saw file in glob while()');
95
96$seen = 0;
97$dummy = '';
98while (($seen ? $dummy : $name) = glob('*'))
99 {
100  $seen++ if $name eq $wanted_filename;
101 }
102cmp_ok($seen,'>',0,'saw file in glob hash while() ternary');
103
104$seen = 0;
105while ($where{$seen} = glob('*'))
106 {
107  $seen++ if $where{$seen} eq $wanted_filename;
108 }
109cmp_ok($seen,'==',1,'seen in glob hash while()');
110
111unlink($saved_filename);
112ok(!(-f $saved_filename),'work file unlinked');
113
114my %hash = (0 => 1, 1 => 2);
115
116$seen = 0;
117while (my $name = each %hash)
118 {
119  $seen++ if $name eq '0';
120 }
121cmp_ok($seen,'==',1,'seen in each');
122
123$seen = 0;
124$dummy = '';
125while (($seen ? $dummy : $name) = each %hash)
126 {
127  $seen++ if $name eq '0';
128 }
129cmp_ok($seen,'==',1,'seen in each ternary');
130
131$seen = 0;
132while ($where{$seen} = each %hash)
133 {
134  $seen++ if $where{$seen} eq '0';
135 }
136cmp_ok($seen,'==',1,'seen in each hash');
137
138cmp_ok($warns,'==',0,'no warns at finish');
139