This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add two deprecation warnings:
[perl5.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 'io' ;
201 syswrite STDIN, "fred";
202 no warnings 'io' ;
203 syswrite STDIN, "fred";
204 EXPECT
205 Filehandle STDIN opened only for input at - line 3.
206 ########
207 # pp_sys.c [pp_send]
208 use warnings 'closed' ;
209 close STDIN; 
210 syswrite STDIN, "fred", 1;
211 opendir STDIN, ".";
212 syswrite STDIN, "fred", 1;
213 closedir STDIN;
214 no warnings 'closed' ;
215 syswrite STDIN, "fred", 1;
216 opendir STDIN, ".";
217 syswrite STDIN, "fred", 1;
218 EXPECT
219 syswrite() on closed filehandle STDIN at - line 4.
220 syswrite() on closed filehandle STDIN at - line 6.
221         (Are you trying to call syswrite() on dirhandle STDIN?)
222 ########
223 # pp_sys.c [pp_flock]
224 use Config; 
225 BEGIN { 
226   if ( !$Config{d_flock} &&
227        !$Config{d_fcntl_can_lock} &&
228        !$Config{d_lockf} ) {
229     print <<EOM ;
230 SKIPPED
231 # flock not present
232 EOM
233     exit ;
234   } 
235 }
236 use warnings qw(unopened closed);
237 close STDIN;
238 flock STDIN, 8;
239 opendir STDIN, ".";
240 flock STDIN, 8;
241 flock FOO, 8;
242 flock $a, 8;
243 no warnings qw(unopened closed);
244 flock STDIN, 8;
245 opendir STDIN, ".";
246 flock STDIN, 8;
247 flock FOO, 8;
248 flock $a, 8;
249 EXPECT
250 flock() on closed filehandle STDIN at - line 16.
251 flock() on closed filehandle STDIN at - line 18.
252         (Are you trying to call flock() on dirhandle STDIN?)
253 flock() on unopened filehandle FOO at - line 19.
254 flock() on unopened filehandle at - line 20.
255 ########
256 # pp_sys.c [pp_prtf pp_send pp_bind pp_connect pp_listen pp_accept pp_shutdown pp_ssockopt ppp_getpeername]
257 use warnings 'io' ;
258 use Config; 
259 BEGIN { 
260   if ( $^O ne 'VMS' and ! $Config{d_socket}) {
261     print <<EOM ;
262 SKIPPED
263 # send not present
264 # bind not present
265 # connect not present
266 # accept not present
267 # shutdown not present
268 # setsockopt not present
269 # getsockopt not present
270 # getsockname not present
271 # getpeername not present
272 EOM
273     exit ;
274   } 
275 }
276 close STDIN; 
277 send STDIN, "fred", 1;
278 bind STDIN, "fred" ;
279 connect STDIN, "fred" ;
280 listen STDIN, 2;
281 accept "fred", STDIN;
282 shutdown STDIN, 0;
283 setsockopt STDIN, 1,2,3;
284 getsockopt STDIN, 1,2;
285 getsockname STDIN;
286 getpeername STDIN;
287 opendir STDIN, ".";
288 send STDIN, "fred", 1;
289 bind STDIN, "fred" ;
290 connect STDIN, "fred" ;
291 listen STDIN, 2;
292 accept "fred", STDIN;
293 shutdown STDIN, 0;
294 setsockopt STDIN, 1,2,3;
295 getsockopt STDIN, 1,2;
296 getsockname STDIN;
297 getpeername STDIN;
298 closedir STDIN;
299 no warnings 'io' ;
300 send STDIN, "fred", 1;
301 bind STDIN, "fred" ;
302 connect STDIN, "fred" ;
303 listen STDIN, 2;
304 accept STDIN, "fred" ;
305 shutdown STDIN, 0;
306 setsockopt STDIN, 1,2,3;
307 getsockopt STDIN, 1,2;
308 getsockname STDIN;
309 getpeername STDIN;
310 opendir STDIN, ".";
311 send STDIN, "fred", 1;
312 bind STDIN, "fred" ;
313 connect STDIN, "fred" ;
314 listen STDIN, 2;
315 accept "fred", STDIN;
316 shutdown STDIN, 0;
317 setsockopt STDIN, 1,2,3;
318 getsockopt STDIN, 1,2;
319 getsockname STDIN;
320 getpeername STDIN;
321 EXPECT
322 send() on closed socket STDIN at - line 22.
323 bind() on closed socket STDIN at - line 23.
324 connect() on closed socket STDIN at - line 24.
325 listen() on closed socket STDIN at - line 25.
326 accept() on closed socket STDIN at - line 26.
327 shutdown() on closed socket STDIN at - line 27.
328 setsockopt() on closed socket STDIN at - line 28.
329 getsockopt() on closed socket STDIN at - line 29.
330 getsockname() on closed socket STDIN at - line 30.
331 getpeername() on closed socket STDIN at - line 31.
332 send() on closed socket STDIN at - line 33.
333         (Are you trying to call send() on dirhandle STDIN?)
334 bind() on closed socket STDIN at - line 34.
335         (Are you trying to call bind() on dirhandle STDIN?)
336 connect() on closed socket STDIN at - line 35.
337         (Are you trying to call connect() on dirhandle STDIN?)
338 listen() on closed socket STDIN at - line 36.
339         (Are you trying to call listen() on dirhandle STDIN?)
340 accept() on closed socket STDIN at - line 37.
341         (Are you trying to call accept() on dirhandle STDIN?)
342 shutdown() on closed socket STDIN at - line 38.
343         (Are you trying to call shutdown() on dirhandle STDIN?)
344 setsockopt() on closed socket STDIN at - line 39.
345         (Are you trying to call setsockopt() on dirhandle STDIN?)
346 getsockopt() on closed socket STDIN at - line 40.
347         (Are you trying to call getsockopt() on dirhandle STDIN?)
348 getsockname() on closed socket STDIN at - line 41.
349         (Are you trying to call getsockname() on dirhandle STDIN?)
350 getpeername() on closed socket STDIN at - line 42.
351         (Are you trying to call getpeername() on dirhandle STDIN?)
352 ########
353 # pp_sys.c [pp_stat]
354 use warnings 'newline' ;
355 stat "abc\ndef";
356 no warnings 'newline' ;
357 stat "abc\ndef";
358 EXPECT
359 Unsuccessful stat on filename containing newline at - line 3.
360 ########
361 # pp_sys.c [pp_fttext]
362 use warnings qw(unopened closed) ;
363 close STDIN ; 
364 -T STDIN ;
365 stat(STDIN) ;
366 -T HOCUS;
367 stat(POCUS);
368 no warnings qw(unopened closed) ;
369 -T STDIN ;
370 stat(STDIN);
371 -T HOCUS;
372 stat(POCUS);
373 EXPECT
374 -T on closed filehandle STDIN at - line 4.
375 stat() on closed filehandle STDIN at - line 5.
376 -T on unopened filehandle HOCUS at - line 6.
377 stat() on unopened filehandle POCUS at - line 7.
378 ########
379 # pp_sys.c [pp_fttext]
380 use warnings 'newline' ;
381 -T "abc\ndef" ;
382 no warnings 'newline' ;
383 -T "abc\ndef" ;
384 EXPECT
385 Unsuccessful open on filename containing newline at - line 3.
386 ########
387 # pp_sys.c [pp_sysread]
388 use warnings 'io' ;
389 if ($^O eq 'dos') {
390     print <<EOM ;
391 SKIPPED
392 # skipped on dos
393 EOM
394     exit ;
395 }
396 my $file = "./xcv" ;
397 open(F, ">$file") ; 
398 my $a = sysread(F, $a,10) ;
399 no warnings 'io' ;
400 my $a = sysread(F, $a,10) ;
401 close F ;
402 use warnings 'io' ;
403 sysread(F, $a, 10);
404 read(F, $a, 10);
405 sysread(NONEXISTENT, $a, 10);
406 read(NONEXISTENT, $a, 10);
407 unlink $file ;
408 EXPECT
409 Filehandle F opened only for output at - line 12.
410 sysread() on closed filehandle F at - line 17.
411 read() on closed filehandle F at - line 18.
412 sysread() on unopened filehandle NONEXISTENT at - line 19.
413 read() on unopened filehandle NONEXISTENT at - line 20.
414 ########
415 # pp_sys.c [pp_binmode]
416 use warnings 'unopened' ;
417 binmode(BLARG);
418 $a = "BLERG";binmode($a);
419 EXPECT
420 binmode() on unopened filehandle BLARG at - line 3.
421 binmode() on unopened filehandle at - line 4.
422 ########
423 # pp_sys.c [pp_lstat]
424 use warnings 'io';
425 open FH, "harness" or die "# $!";
426 lstat FH;
427 open my $fh, $0 or die "# $!";
428 lstat $fh;
429 no warnings 'io';
430 lstat FH;
431 lstat $fh;
432 close FH;
433 close $fh;
434 EXPECT
435 lstat() on filehandle FH at - line 4.
436 lstat() on filehandle $fh at - line 6.
437 ########
438 # pp_sys.c [pp_getc]
439 use warnings qw(unopened closed) ;
440 getc FOO;
441 close STDIN;
442 getc STDIN;
443 # Create an empty file
444 $file = 'getcwarn.tmp';
445 open FH1, ">$file" or die "# $!"; close FH1;
446 open FH2, $file    or die "# $!";
447 getc FH2; # Should not warn at EOF
448 close FH2;
449 getc FH2; # Warns, now
450 unlink $file;
451 no warnings qw(unopened closed) ;
452 getc FOO;
453 getc STDIN;
454 getc FH2;
455 EXPECT
456 getc() on unopened filehandle FOO at - line 3.
457 getc() on closed filehandle STDIN at - line 5.
458 getc() on closed filehandle FH2 at - line 12.
459 ########
460 # pp_sys.c [pp_sselect]
461 use warnings 'misc';
462 $x = 1;
463 select $x, undef, undef, 1;
464 no warnings 'misc';
465 select $x, undef, undef, 1;
466 EXPECT
467 Non-string passed as bitmask at - line 4.
468 ########
469 use Config;
470 BEGIN {
471     if (!$Config{d_fchdir}) {
472         print <<EOM;
473 SKIPPED
474 # fchdir not present
475 EOM
476         exit;
477     }
478 }
479 opendir FOO, '.'; closedir FOO;
480 open BAR, '.'; close BAR;
481 opendir $dh, '.'; closedir $dh;
482 open $fh, '.'; close $fh;
483 chdir FOO;
484 chdir BAR;
485 chdir $dh;
486 chdir $fh;
487 use warnings qw(unopened closed) ;
488 chdir FOO;
489 chdir BAR;
490 chdir $dh;
491 chdir $fh;
492 EXPECT
493 chdir() on unopened filehandle FOO at - line 20.
494 chdir() on closed filehandle BAR at - line 21.
495 chdir() on unopened filehandle $dh at - line 22.
496 chdir() on closed filehandle $fh at - line 23.
497 ########
498 # pp_sys.c [pp_open]
499 use warnings;
500 opendir FOO, ".";
501 opendir my $foo, ".";
502 open FOO, "TEST";
503 open $foo, "TEST";
504 no warnings qw(io deprecated);
505 open FOO, "TEST";
506 open $foo, "TEST";
507 EXPECT
508 Opening dirhandle FOO also as a file at - line 5.
509 Opening dirhandle $foo also as a file at - line 6.
510 ########
511 # pp_sys.c [pp_open_dir]
512 use warnings;
513 open FOO, "TEST";
514 open my $foo, "TEST";
515 opendir FOO, ".";
516 opendir $foo, ".";
517 no warnings qw(io deprecated);
518 opendir FOO, ".";
519 opendir $foo, ".";
520 EXPECT
521 Opening filehandle FOO also as a directory at - line 5.
522 Opening filehandle $foo also as a directory at - line 6.