fix category on "Statement unlikely to be reached"
[perl.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 Statement unlikely to be reached at - line .+
191         \(Maybe you meant system\(\) when you said exec\(\)\?\)
192 Can't exec "lskdjfalksdjfdjfkls": .+
193 ########
194 # doio.c [Perl_do_exec3]
195 use warnings 'io' ;
196 exec "lskdjfalksdjfdjfkls", "abc" ;
197 no warnings 'io' ;
198 exec "lskdjfalksdjfdjfkls", "abc" ;
199 EXPECT
200 OPTION regex
201 Statement unlikely to be reached at - line .+
202         \(Maybe you meant system\(\) when you said exec\(\)\?\)
203 Can't exec "lskdjfalksdjfdjfkls(:? abc)?": .+
204 ########
205 # doio.c [win32_execvp]
206 use warnings 'exec' ;
207 exec $^X, "-e0" ;
208 EXPECT
209 ########
210 # doio.c [Perl_nextargv]
211 $^W = 0 ;
212 my $filename = "./temp.dir" ;
213 mkdir $filename, 0777 
214   or die "Cannot create directory $filename: $!\n" ;
215 {
216     local (@ARGV) = ($filename) ;
217     local ($^I) = "" ;
218     my $x = <> ;
219 }
220 {
221     no warnings 'inplace' ;
222     local (@ARGV) = ($filename) ;
223     local ($^I) = "" ;
224     my $x = <> ;
225 }
226 {
227     use warnings 'inplace' ;
228     local (@ARGV) = ($filename) ;
229     local ($^I) = "" ;
230     my $x = <> ;
231 }
232 rmdir $filename ;
233 EXPECT
234 Can't do inplace edit: ./temp.dir is not a regular file at - line 9.
235 Can't do inplace edit: ./temp.dir is not a regular file at - line 21.
236
237 ########
238 # doio.c [Perl_do_eof]
239 use warnings 'io' ;
240 my $a = eof STDOUT ;
241 no warnings 'io' ;
242 $a = eof STDOUT ;
243 EXPECT
244 Filehandle STDOUT opened only for output at - line 3.
245 ########
246 # doio.c [Perl_do_openn]
247 use Config;
248 BEGIN {
249     if ($Config{useperlio}) {
250         print <<EOM;
251 SKIPPED
252 # warns only without perlio
253 EOM
254         exit;
255     }
256 }
257 use warnings 'io';
258 my $x = "foo";
259 open FOO, '>', \$x;
260 open BAR, '>&', \*STDOUT; # should not warn
261 no warnings 'io';
262 open FOO, '>', \$x;
263 EXPECT
264 Can't open a reference at - line 14.
265 ########
266 # doio.c [Perl_do_openn]
267 use Config;
268 BEGIN {
269     if (!$Config{useperlio}) {
270         print <<EOM;
271 SKIPPED
272 # warns only with perlio
273 EOM
274         exit;
275     }
276 }
277 use warnings 'io' ;
278 close STDOUT;
279 open FH1, "../harness"; close FH1;
280 no warnings 'io' ;
281 open FH2, "../harness"; close FH2;
282 EXPECT
283 Filehandle STDOUT reopened as FH1 only for input at - line 14.
284 ########
285 # doio.c [Perl_do_openn]
286 use Config;
287 use utf8;
288 use open qw( :utf8 :std );
289 BEGIN {
290     if (!$Config{useperlio}) {
291         print <<EOM;
292 SKIPPED
293 # warns only with perlio
294 EOM
295         exit;
296     }
297 }
298 use warnings 'io' ;
299 close STDOUT;
300 open ᶠᚻ1, "../harness"; close ᶠᚻ1;
301 no warnings 'io' ;
302 open ᶠᚻ2, "../harness"; close ᶠᚻ2;
303 EXPECT
304 Filehandle STDOUT reopened as ᶠᚻ1 only for input at - line 16.
305 ########
306 # doio.c [Perl_do_openn]
307 use Config;
308 BEGIN {
309     if (!$Config{useperlio}) {
310         print <<EOM;
311 SKIPPED
312 # warns only with perlio
313 EOM
314         exit;
315     }
316 }
317 use warnings 'io' ;
318 close STDIN;
319 open my $fh1, ">doiowarn.tmp"; close $fh1;
320 no warnings 'io' ;
321 open my $fh2, ">doiowarn.tmp"; close $fh2;
322 unlink "doiowarn.tmp";
323 EXPECT
324 Filehandle STDIN reopened as $fh1 only for output at - line 14.
325 ########
326 # doio.c [Perl_do_openn]
327 use Config;
328 use utf8;
329 use open qw( :utf8 :std );
330 BEGIN {
331     if (!$Config{useperlio}) {
332         print <<EOM;
333 SKIPPED
334 # warns only with perlio
335 EOM
336         exit;
337     }
338 }
339 use warnings 'io' ;
340 close STDIN;
341 open my $ᶠᚻ1, ">doiowarn.tmp"; close $ᶠᚻ1;
342 no warnings 'io' ;
343 open my $ᶠᚻ2, ">doiowarn.tmp"; close $ᶠᚻ2;
344 unlink "doiowarn.tmp";
345 EXPECT
346 Filehandle STDIN reopened as $ᶠᚻ1 only for output at - line 16.
347 ########
348 # doio.c [Perl_do_openn]
349 use Config;
350 use utf8;
351 use open qw( :utf8 :std );
352 BEGIN {
353     if (!$Config{useperlio}) {
354         print <<EOM;
355 SKIPPED
356 # warns only with perlio
357 EOM
358         exit;
359     }
360 }
361 use warnings 'io' ;
362 close STDIN;
363 open ᶠᚻ1, ">doiowarn.tmp"; close ᶠᚻ1;
364 no warnings 'io' ;
365 open ᶠᚻ2, ">doiowarn.tmp"; close ᶠᚻ2;
366 unlink "doiowarn.tmp";
367 EXPECT
368 Filehandle STDIN reopened as ᶠᚻ1 only for output at - line 16.