This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Restore the warning previously issued by (-l $fh)
[perl5.git] / t / lib / warnings / doio
1   doio.c        
2
3   Can't open bidirectional pipe         [Perl_do_open9]
4     open(F, "| true |");
5
6   Missing command in piped open         [Perl_do_open9]
7     open(F, "| ");
8
9   Missing command in piped open         [Perl_do_open9]
10     open(F, " |");
11
12   warn(warn_nl, "open");                [Perl_do_open9]
13     open(F, "true\ncd")
14
15   close() on unopened filehandle %s     [Perl_do_close]
16     $a = "fred";close("$a")
17
18   tell() on closed filehandle           [Perl_do_tell]
19     $a = "fred";$a = tell($a)
20
21   seek() on closed filehandle           [Perl_do_seek]
22     $a = "fred";$a = seek($a,1,1)
23
24   sysseek() on closed filehandle        [Perl_do_sysseek]
25     $a = "fred";$a = seek($a,1,1)
26
27   warn(warn_uninit);                    [Perl_do_print]
28     print $a ;
29
30   -x on closed filehandle %s            [Perl_my_stat]
31     close STDIN ; -x STDIN ;
32
33   warn(warn_nl, "stat");                [Perl_my_stat]
34     stat "ab\ncd"
35
36   warn(warn_nl, "lstat");               [Perl_my_lstat]
37     lstat "ab\ncd"
38
39   Use of -l on filehandle %s            [Perl_my_lstat]
40
41   Can't exec \"%s\": %s                 [Perl_do_aexec5]
42
43   Can't exec \"%s\": %s                 [Perl_do_exec3]
44
45   Filehandle %s opened only for output  [Perl_do_eof]
46         my $a = eof STDOUT
47
48   Mandatory Warnings ALL TODO
49   ------------------
50   Can't do inplace edit: %s is not a regular file       [Perl_nextargv]
51      edit a directory
52
53   Can't do inplace edit: %s would not be unique         [Perl_nextargv]
54   Can't rename %s to %s: %s, skipping file              [Perl_nextargv]
55   Can't rename %s to %s: %s, skipping file              [Perl_nextargv]
56   Can't remove %s: %s, skipping file                    [Perl_nextargv]
57   Can't do inplace edit on %s: %s                       [Perl_nextargv]
58   
59
60 __END__
61 # doio.c [Perl_do_open9]
62 use warnings 'io' ;
63 open(F, '|'."$^X -e 1|");
64 close(F);
65 no warnings 'io' ;
66 open(G, '|'."$^X -e 1|");
67 close(G);
68 EXPECT
69 Can't open bidirectional pipe at - line 3.
70 ########
71 # doio.c [Perl_do_open9]
72 use warnings 'io' ;
73 open(F, "|      ");
74 no warnings 'io' ;
75 open(G, "|      ");
76 EXPECT
77 Missing command in piped open at - line 3.
78 ########
79 # doio.c [Perl_do_open9]
80 use warnings 'io' ;
81 open(F, "      |");
82 no warnings 'io' ;
83 open(G, "      |");
84 EXPECT
85 Missing command in piped open at - line 3.
86 ########
87 # doio.c [Perl_do_open9]
88 use warnings 'io' ;
89 open(F, "<true\ncd");
90 no warnings 'io' ;
91 open(G, "<true\ncd");
92 EXPECT
93 Unsuccessful open on filename containing newline at - line 3.
94 ########
95 # doio.c [Perl_do_close] <<TODO
96 use warnings 'unopened' ;
97 close "fred" ;
98 no warnings 'unopened' ;
99 close "joe" ;
100 EXPECT
101 close() on unopened filehandle fred at - line 3.
102 ########
103 # doio.c [Perl_do_tell Perl_do_seek Perl_do_sysseek Perl_my_stat]
104 use warnings 'io' ;
105 close STDIN ;
106 tell(STDIN);
107 $a = seek(STDIN,1,1);
108 $a = sysseek(STDIN,1,1);
109 -x STDIN ;
110 stat(STDIN) ;
111 $a = "fred";
112 tell($a);
113 seek($a,1,1);
114 sysseek($a,1,1);
115 -x $a; # ok
116 stat($a); # ok
117 no warnings 'io' ;
118 close STDIN ;
119 tell(STDIN);
120 $a = seek(STDIN,1,1);
121 $a = sysseek(STDIN,1,1);
122 -x STDIN ;
123 stat(STDIN) ;
124 $a = "fred";
125 tell($a);
126 seek($a,1,1);
127 sysseek($a,1,1);
128 -x $a;
129 stat($a);
130 EXPECT
131 tell() on closed filehandle STDIN at - line 4.
132 seek() on closed filehandle STDIN at - line 5.
133 sysseek() on closed filehandle STDIN at - line 6.
134 -x on closed filehandle STDIN at - line 7.
135 stat() on closed filehandle STDIN at - line 8.
136 tell() on unopened filehandle at - line 10.
137 seek() on unopened filehandle at - line 11.
138 sysseek() on unopened filehandle at - line 12.
139 ########
140 # doio.c [Perl_do_print]
141 use warnings 'uninitialized' ;
142 print $a ;
143 no warnings 'uninitialized' ;
144 print $b ;
145 EXPECT
146 Use of uninitialized value $a in print at - line 3.
147 ########
148 # doio.c [Perl_my_stat Perl_my_lstat]
149 use warnings 'io' ;
150 stat "ab\ncd";
151 lstat "ab\ncd";
152 no warnings 'io' ;
153 stat "ab\ncd";
154 lstat "ab\ncd";
155 EXPECT
156 Unsuccessful stat on filename containing newline at - line 3.
157 Unsuccessful stat on filename containing newline at - line 4.
158 ########
159 # doio.c [Perl_my_stat]
160 use warnings 'io';
161 -l STDIN;
162 -l $fh;
163 open $fh, $0 or die "# $!";
164 -l $fh;
165 no warnings 'io';
166 -l STDIN;
167 -l $fh;
168 close $fh;
169 EXPECT
170 Use of -l on filehandle STDIN at - line 3.
171 Use of -l on filehandle $fh at - line 6.
172 ########
173 # doio.c [Perl_my_stat]
174 use utf8;
175 use open qw( :utf8 :std );
176 use warnings 'io';
177 -l ᶠᚻ;
178 no warnings 'io';
179 -l ᶠᚻ;
180 EXPECT
181 Use of -l on filehandle ᶠᚻ at - line 5.
182 ########
183 # doio.c [Perl_do_aexec5]
184 use warnings 'io' ;
185 exec "lskdjfalksdjfdjfkls","" ;
186 no warnings 'io' ;
187 exec "lskdjfalksdjfdjfkls","" ;
188 EXPECT
189 OPTION regex
190 Can't exec "lskdjfalksdjfdjfkls": .+
191 ########
192 # doio.c [Perl_do_exec3]
193 use warnings 'io' ;
194 exec "lskdjfalksdjfdjfkls", "abc" ;
195 no warnings 'io' ;
196 exec "lskdjfalksdjfdjfkls", "abc" ;
197 EXPECT
198 OPTION regex
199 Can't exec "lskdjfalksdjfdjfkls(:? abc)?": .+
200 ########
201 # doio.c [win32_execvp]
202 use warnings 'exec' ;
203 exec $^X, "-e0" ;
204 EXPECT
205 ########
206 # doio.c [Perl_nextargv]
207 $^W = 0 ;
208 my $filename = "./temp.dir" ;
209 mkdir $filename, 0777 
210   or die "Cannot create directory $filename: $!\n" ;
211 {
212     local (@ARGV) = ($filename) ;
213     local ($^I) = "" ;
214     my $x = <> ;
215 }
216 {
217     no warnings 'inplace' ;
218     local (@ARGV) = ($filename) ;
219     local ($^I) = "" ;
220     my $x = <> ;
221 }
222 {
223     use warnings 'inplace' ;
224     local (@ARGV) = ($filename) ;
225     local ($^I) = "" ;
226     my $x = <> ;
227 }
228 rmdir $filename ;
229 EXPECT
230 Can't do inplace edit: ./temp.dir is not a regular file at - line 9.
231 Can't do inplace edit: ./temp.dir is not a regular file at - line 21.
232
233 ########
234 # doio.c [Perl_do_eof]
235 use warnings 'io' ;
236 my $a = eof STDOUT ;
237 no warnings 'io' ;
238 $a = eof STDOUT ;
239 EXPECT
240 Filehandle STDOUT opened only for output at - line 3.
241 ########
242 # doio.c [Perl_do_openn]
243 use Config;
244 BEGIN {
245     if ($Config{useperlio}) {
246         print <<EOM;
247 SKIPPED
248 # warns only without perlio
249 EOM
250         exit;
251     }
252 }
253 use warnings 'io';
254 my $x = "foo";
255 open FOO, '>', \$x;
256 open BAR, '>&', \*STDOUT; # should not warn
257 no warnings 'io';
258 open FOO, '>', \$x;
259 EXPECT
260 Can't open a reference at - line 14.
261 ########
262 # doio.c [Perl_do_openn]
263 use Config;
264 BEGIN {
265     if (!$Config{useperlio}) {
266         print <<EOM;
267 SKIPPED
268 # warns only with perlio
269 EOM
270         exit;
271     }
272 }
273 use warnings 'io' ;
274 close STDOUT;
275 open FH1, "../harness"; close FH1;
276 no warnings 'io' ;
277 open FH2, "../harness"; close FH2;
278 EXPECT
279 Filehandle STDOUT reopened as FH1 only for input at - line 14.
280 ########
281 # doio.c [Perl_do_openn]
282 use Config;
283 use utf8;
284 use open qw( :utf8 :std );
285 BEGIN {
286     if (!$Config{useperlio}) {
287         print <<EOM;
288 SKIPPED
289 # warns only with perlio
290 EOM
291         exit;
292     }
293 }
294 use warnings 'io' ;
295 close STDOUT;
296 open ᶠᚻ1, "../harness"; close ᶠᚻ1;
297 no warnings 'io' ;
298 open ᶠᚻ2, "../harness"; close ᶠᚻ2;
299 EXPECT
300 Filehandle STDOUT reopened as ᶠᚻ1 only for input at - line 16.
301 ########
302 # doio.c [Perl_do_openn]
303 use Config;
304 BEGIN {
305     if (!$Config{useperlio}) {
306         print <<EOM;
307 SKIPPED
308 # warns only with perlio
309 EOM
310         exit;
311     }
312 }
313 use warnings 'io' ;
314 close STDIN;
315 open my $fh1, ">doiowarn.tmp"; close $fh1;
316 no warnings 'io' ;
317 open my $fh2, ">doiowarn.tmp"; close $fh2;
318 unlink "doiowarn.tmp";
319 EXPECT
320 Filehandle STDIN reopened as $fh1 only for output at - line 14.
321 ########
322 # doio.c [Perl_do_openn]
323 use Config;
324 use utf8;
325 use open qw( :utf8 :std );
326 BEGIN {
327     if (!$Config{useperlio}) {
328         print <<EOM;
329 SKIPPED
330 # warns only with perlio
331 EOM
332         exit;
333     }
334 }
335 use warnings 'io' ;
336 close STDIN;
337 open my $ᶠᚻ1, ">doiowarn.tmp"; close $ᶠᚻ1;
338 no warnings 'io' ;
339 open my $ᶠᚻ2, ">doiowarn.tmp"; close $ᶠᚻ2;
340 unlink "doiowarn.tmp";
341 EXPECT
342 Filehandle STDIN reopened as $ᶠᚻ1 only for output at - line 16.
343 ########
344 # doio.c [Perl_do_openn]
345 use Config;
346 use utf8;
347 use open qw( :utf8 :std );
348 BEGIN {
349     if (!$Config{useperlio}) {
350         print <<EOM;
351 SKIPPED
352 # warns only with perlio
353 EOM
354         exit;
355     }
356 }
357 use warnings 'io' ;
358 close STDIN;
359 open ᶠᚻ1, ">doiowarn.tmp"; close ᶠᚻ1;
360 no warnings 'io' ;
361 open ᶠᚻ2, ">doiowarn.tmp"; close ᶠᚻ2;
362 unlink "doiowarn.tmp";
363 EXPECT
364 Filehandle STDIN reopened as ᶠᚻ1 only for output at - line 16.