a35881924044063409f9d9aea46f90960a77b414
[perl.git] / t / lib / warnings / pp_sys
1   pp_sys.c      AOK
2
3   untie attempted while %d inner references still exist [pp_untie]
4     sub TIESCALAR { bless [] } ; tie $a, 'main'; untie $a ;
5
6   fileno() on unopened filehandle abc           [pp_fileno]
7     $a = "abc"; fileno($a)
8
9   binmode() on unopened filehandle abc          [pp_binmode]
10     $a = "abc"; fileno($a)
11
12   printf() on unopened filehandle abc           [pp_prtf]
13     $a = "abc"; printf $a "fred"
14
15   Filehandle %s opened only for input           [pp_leavewrite]
16     format STDIN =
17     .
18     write STDIN;
19
20   write() on closed filehandle %s               [pp_leavewrite]
21     format STDIN =
22     .
23     close STDIN;
24     write STDIN ;
25
26   page overflow                                 [pp_leavewrite]
27
28   printf() on unopened filehandle abc           [pp_prtf]
29     $a = "abc"; printf $a "fred"
30
31   Filehandle %s opened only for input           [pp_prtf]
32     $a = "abc"; 
33     printf $a "fred"
34
35   printf() on closed filehandle %s              [pp_prtf]
36     close STDIN ;
37     printf STDIN "fred"
38
39   syswrite() on closed filehandle %s            [pp_send]
40     close STDIN; 
41     syswrite STDIN, "fred", 1;
42
43   send() on closed socket %s                    [pp_send]
44     close STDIN; 
45     send STDIN, "fred", 1
46
47   bind() on closed socket %s                    [pp_bind]
48     close STDIN; 
49     bind STDIN, "fred" ;
50
51
52   connect() on closed socket %s                 [pp_connect]
53     close STDIN; 
54     connect STDIN, "fred" ;
55
56   listen() on closed socket %s                  [pp_listen]
57     close STDIN; 
58     listen STDIN, 2;
59
60   accept() on closed socket %s                  [pp_accept]
61     close STDIN; 
62     accept "fred", STDIN ;
63
64   shutdown() on closed socket %s                [pp_shutdown]
65     close STDIN; 
66     shutdown STDIN, 0;
67
68   setsockopt() on closed socket %s              [pp_ssockopt]
69   getsockopt() on closed socket %s              [pp_ssockopt]
70     close STDIN; 
71     setsockopt STDIN, 1,2,3;
72     getsockopt STDIN, 1,2;
73
74   getsockname() on closed socket %s             [pp_getpeername]
75   getpeername() on closed socket %s             [pp_getpeername]
76     close STDIN; 
77     getsockname STDIN;
78     getpeername STDIN;
79
80   flock() on closed socket %s                   [pp_flock]
81   flock() on closed socket                      [pp_flock]
82     close STDIN;
83     flock STDIN, 8;
84     flock $a, 8;
85
86   warn(warn_nl, "stat");                        [pp_stat]
87
88   -T on closed filehandle %s
89   stat() on closed filehandle %s
90         close STDIN ; -T STDIN ; stat(STDIN) ;
91
92   warn(warn_nl, "open");                        [pp_fttext]
93     -T "abc\ndef" ;
94
95   Filehandle %s opened only for output          [pp_sysread]
96         my $file = "./xcv" ;
97         open(F, ">$file") ; 
98         my $a = sysread(F, $a,10) ;
99
100   lstat on filehandle %s                        [pp_lstat]
101
102   getc() on unopened filehandle                 [pp_getc]
103
104   getc() on closed filehandle                   [pp_getc]
105
106   Non-string passed as bitmask                  [pp_sselect]
107
108 __END__
109 # pp_sys.c [pp_untie]
110 use warnings 'untie' ;
111 sub TIESCALAR { bless [] } ; 
112 $b = tie $a, 'main'; 
113 untie $a ;
114 no warnings 'untie' ;
115 $c = tie $d, 'main'; 
116 untie $d ;
117 EXPECT
118 untie attempted while 1 inner references still exist at - line 5.
119 ########
120 # pp_sys.c [pp_leavewrite]
121 use warnings 'io' ;
122 format STDIN =
123 .
124 write STDIN;
125 no warnings 'io' ;
126 write STDIN;
127 EXPECT
128 Filehandle STDIN opened only for input at - line 5.
129 ########
130 # pp_sys.c [pp_leavewrite]
131 use warnings 'closed' ;
132 format STDIN =
133 .
134 close STDIN;
135 write STDIN;
136 opendir STDIN, ".";
137 write STDIN;
138 closedir STDIN;
139 no warnings 'closed' ;
140 write STDIN;
141 opendir STDIN, ".";
142 write STDIN;
143 EXPECT
144 write() on closed filehandle STDIN at - line 6.
145 write() on closed filehandle STDIN at - line 8.
146         (Are you trying to call write() on dirhandle STDIN?)
147 ########
148 # pp_sys.c [pp_leavewrite]
149 use warnings 'io' ;
150 format STDOUT_TOP =
151 abc
152 .
153 format STDOUT =
154 def
155 ghi
156 .
157 $= = 1 ;
158 $- =1 ;
159 open STDOUT, ">".($^O eq 'VMS'? 'NL:' : '/dev/null') ;
160 write ;
161 no warnings 'io' ;
162 write ;
163 EXPECT
164 page overflow at - line 13.
165 ########
166 # pp_sys.c [pp_prtf]
167 use warnings 'unopened' ;
168 $a = "abc"; 
169 printf $a "fred";
170 no warnings 'unopened' ;
171 printf $a "fred";
172 EXPECT
173 printf() on unopened filehandle abc at - line 4.
174 ########
175 # pp_sys.c [pp_prtf]
176 use warnings 'closed' ;
177 close STDIN ;
178 printf STDIN "fred";
179 opendir STDIN, ".";
180 printf STDIN "fred";
181 closedir STDIN;
182 no warnings 'closed' ;
183 printf STDIN "fred";
184 opendir STDIN, ".";
185 printf STDIN "fred";
186 EXPECT
187 printf() on closed filehandle STDIN at - line 4.
188 printf() on closed filehandle STDIN at - line 6.
189         (Are you trying to call printf() on dirhandle STDIN?)
190 ########
191 # pp_sys.c [pp_prtf]
192 use warnings 'io' ;
193 printf STDIN "fred";
194 no warnings 'io' ;
195 printf STDIN "fred";
196 EXPECT
197 Filehandle STDIN opened only for input at - line 3.
198 ########
199 # pp_sys.c [pp_send]
200 use warnings 'closed' ;
201 close STDIN; 
202 syswrite STDIN, "fred", 1;
203 opendir STDIN, ".";
204 syswrite STDIN, "fred", 1;
205 closedir STDIN;
206 no warnings 'closed' ;
207 syswrite STDIN, "fred", 1;
208 opendir STDIN, ".";
209 syswrite STDIN, "fred", 1;
210 EXPECT
211 syswrite() on closed filehandle STDIN at - line 4.
212 syswrite() on closed filehandle STDIN at - line 6.
213         (Are you trying to call syswrite() on dirhandle STDIN?)
214 ########
215 # pp_sys.c [pp_flock]
216 use Config; 
217 BEGIN { 
218   if ( !$Config{d_flock} &&
219        !$Config{d_fcntl_can_lock} &&
220        !$Config{d_lockf} ) {
221     print <<EOM ;
222 SKIPPED
223 # flock not present
224 EOM
225     exit ;
226   } 
227 }
228 use warnings qw(unopened closed);
229 close STDIN;
230 flock STDIN, 8;
231 opendir STDIN, ".";
232 flock STDIN, 8;
233 flock FOO, 8;
234 flock $a, 8;
235 no warnings qw(unopened closed);
236 flock STDIN, 8;
237 opendir STDIN, ".";
238 flock STDIN, 8;
239 flock FOO, 8;
240 flock $a, 8;
241 EXPECT
242 flock() on closed filehandle STDIN at - line 16.
243 flock() on closed filehandle STDIN at - line 18.
244         (Are you trying to call flock() on dirhandle STDIN?)
245 flock() on unopened filehandle FOO at - line 19.
246 flock() on unopened filehandle at - line 20.
247 ########
248 # pp_sys.c [pp_prtf pp_send pp_bind pp_connect pp_listen pp_accept pp_shutdown pp_ssockopt ppp_getpeername]
249 use warnings 'io' ;
250 use Config; 
251 BEGIN { 
252   if ( $^O ne 'VMS' and ! $Config{d_socket}) {
253     print <<EOM ;
254 SKIPPED
255 # send not present
256 # bind not present
257 # connect not present
258 # accept not present
259 # shutdown not present
260 # setsockopt not present
261 # getsockopt not present
262 # getsockname not present
263 # getpeername not present
264 EOM
265     exit ;
266   } 
267 }
268 close STDIN; 
269 send STDIN, "fred", 1;
270 bind STDIN, "fred" ;
271 connect STDIN, "fred" ;
272 listen STDIN, 2;
273 accept "fred", STDIN;
274 shutdown STDIN, 0;
275 setsockopt STDIN, 1,2,3;
276 getsockopt STDIN, 1,2;
277 getsockname STDIN;
278 getpeername STDIN;
279 opendir STDIN, ".";
280 send STDIN, "fred", 1;
281 bind STDIN, "fred" ;
282 connect STDIN, "fred" ;
283 listen STDIN, 2;
284 accept "fred", STDIN;
285 shutdown STDIN, 0;
286 setsockopt STDIN, 1,2,3;
287 getsockopt STDIN, 1,2;
288 getsockname STDIN;
289 getpeername STDIN;
290 closedir STDIN;
291 no warnings 'io' ;
292 send STDIN, "fred", 1;
293 bind STDIN, "fred" ;
294 connect STDIN, "fred" ;
295 listen STDIN, 2;
296 accept STDIN, "fred" ;
297 shutdown STDIN, 0;
298 setsockopt STDIN, 1,2,3;
299 getsockopt STDIN, 1,2;
300 getsockname STDIN;
301 getpeername STDIN;
302 opendir STDIN, ".";
303 send STDIN, "fred", 1;
304 bind STDIN, "fred" ;
305 connect STDIN, "fred" ;
306 listen STDIN, 2;
307 accept "fred", STDIN;
308 shutdown STDIN, 0;
309 setsockopt STDIN, 1,2,3;
310 getsockopt STDIN, 1,2;
311 getsockname STDIN;
312 getpeername STDIN;
313 EXPECT
314 send() on closed socket STDIN at - line 22.
315 bind() on closed socket STDIN at - line 23.
316 connect() on closed socket STDIN at - line 24.
317 listen() on closed socket STDIN at - line 25.
318 accept() on closed socket STDIN at - line 26.
319 shutdown() on closed socket STDIN at - line 27.
320 setsockopt() on closed socket STDIN at - line 28.
321 getsockopt() on closed socket STDIN at - line 29.
322 getsockname() on closed socket STDIN at - line 30.
323 getpeername() on closed socket STDIN at - line 31.
324 send() on closed socket STDIN at - line 33.
325         (Are you trying to call send() on dirhandle STDIN?)
326 bind() on closed socket STDIN at - line 34.
327         (Are you trying to call bind() on dirhandle STDIN?)
328 connect() on closed socket STDIN at - line 35.
329         (Are you trying to call connect() on dirhandle STDIN?)
330 listen() on closed socket STDIN at - line 36.
331         (Are you trying to call listen() on dirhandle STDIN?)
332 accept() on closed socket STDIN at - line 37.
333         (Are you trying to call accept() on dirhandle STDIN?)
334 shutdown() on closed socket STDIN at - line 38.
335         (Are you trying to call shutdown() on dirhandle STDIN?)
336 setsockopt() on closed socket STDIN at - line 39.
337         (Are you trying to call setsockopt() on dirhandle STDIN?)
338 getsockopt() on closed socket STDIN at - line 40.
339         (Are you trying to call getsockopt() on dirhandle STDIN?)
340 getsockname() on closed socket STDIN at - line 41.
341         (Are you trying to call getsockname() on dirhandle STDIN?)
342 getpeername() on closed socket STDIN at - line 42.
343         (Are you trying to call getpeername() on dirhandle STDIN?)
344 ########
345 # pp_sys.c [pp_stat]
346 use warnings 'newline' ;
347 stat "abc\ndef";
348 no warnings 'newline' ;
349 stat "abc\ndef";
350 EXPECT
351 Unsuccessful stat on filename containing newline at - line 3.
352 ########
353 # pp_sys.c [pp_fttext]
354 use warnings qw(unopened closed) ;
355 close STDIN ; 
356 -T STDIN ;
357 stat(STDIN) ;
358 -T HOCUS;
359 stat(POCUS);
360 no warnings qw(unopened closed) ;
361 -T STDIN ;
362 stat(STDIN);
363 -T HOCUS;
364 stat(POCUS);
365 EXPECT
366 -T on closed filehandle STDIN at - line 4.
367 stat() on closed filehandle STDIN at - line 5.
368 -T on unopened filehandle HOCUS at - line 6.
369 stat() on unopened filehandle POCUS at - line 7.
370 ########
371 # pp_sys.c [pp_fttext]
372 use warnings 'newline' ;
373 -T "abc\ndef" ;
374 no warnings 'newline' ;
375 -T "abc\ndef" ;
376 EXPECT
377 Unsuccessful open on filename containing newline at - line 3.
378 ########
379 # pp_sys.c [pp_sysread]
380 use warnings 'io' ;
381 if ($^O eq 'dos') {
382     print <<EOM ;
383 SKIPPED
384 # skipped on dos
385 EOM
386     exit ;
387 }
388 my $file = "./xcv" ;
389 open(F, ">$file") ; 
390 my $a = sysread(F, $a,10) ;
391 no warnings 'io' ;
392 my $a = sysread(F, $a,10) ;
393 close F ;
394 use warnings 'io' ;
395 sysread(F, $a, 10);
396 read(F, $a, 10);
397 sysread(NONEXISTENT, $a, 10);
398 read(NONEXISTENT, $a, 10);
399 unlink $file ;
400 EXPECT
401 Filehandle F opened only for output at - line 12.
402 sysread() on closed filehandle F at - line 17.
403 read() on closed filehandle F at - line 18.
404 sysread() on unopened filehandle NONEXISTENT at - line 19.
405 read() on unopened filehandle NONEXISTENT at - line 20.
406 ########
407 # pp_sys.c [pp_binmode]
408 use warnings 'unopened' ;
409 binmode(BLARG);
410 $a = "BLERG";binmode($a);
411 EXPECT
412 binmode() on unopened filehandle BLARG at - line 3.
413 binmode() on unopened filehandle at - line 4.
414 ########
415 # pp_sys.c [pp_lstat]
416 use warnings 'io';
417 open FH, "harness" or die "# $!";
418 lstat FH;
419 open my $fh, $0 or die "# $!";
420 lstat $fh;
421 no warnings 'io';
422 lstat FH;
423 lstat $fh;
424 close FH;
425 close $fh;
426 EXPECT
427 lstat() on filehandle FH at - line 4.
428 lstat() on filehandle $fh at - line 6.
429 ########
430 # pp_sys.c [pp_getc]
431 use warnings qw(unopened closed) ;
432 getc FOO;
433 close STDIN;
434 getc STDIN;
435 # Create an empty file
436 $file = 'getcwarn.tmp';
437 open FH1, ">$file" or die "# $!"; close FH1;
438 open FH2, $file    or die "# $!";
439 getc FH2; # Should not warn at EOF
440 close FH2;
441 getc FH2; # Warns, now
442 unlink $file;
443 no warnings qw(unopened closed) ;
444 getc FOO;
445 getc STDIN;
446 getc FH2;
447 EXPECT
448 getc() on unopened filehandle FOO at - line 3.
449 getc() on closed filehandle STDIN at - line 5.
450 getc() on closed filehandle FH2 at - line 12.
451 ########
452 # pp_sys.c [pp_sselect]
453 use warnings 'misc';
454 $x = 1;
455 select $x, undef, undef, undef;
456 no warnings 'misc';
457 select $x, undef, undef, undef;
458 EXPECT
459 Non-string passed as bitmask at - line 4.
460 ########
461 use Config;
462 BEGIN {
463     if (!$Config{d_fchdir}) {
464         print <<EOM;
465 SKIPPED
466 # fchdir not present
467 EOM
468         exit;
469     }
470 }
471 opendir FOO, '.'; closedir FOO;
472 open BAR, '.'; close BAR;
473 opendir $dh, '.'; closedir $dh;
474 open $fh, '.'; close $fh;
475 chdir FOO;
476 chdir BAR;
477 chdir $dh;
478 chdir $fh;
479 use warnings qw(unopened closed) ;
480 chdir FOO;
481 chdir BAR;
482 chdir $dh;
483 chdir $fh;
484 EXPECT
485 chdir() on unopened filehandle FOO at - line 20.
486 chdir() on closed filehandle BAR at - line 21.
487 chdir() on unopened filehandle $dh at - line 22.
488 chdir() on closed filehandle $fh at - line 23.