This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Remove a duplicate test separator "########\n" line from the pp_sys tests.
[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 format FOO =
135 .
136 close STDIN;
137 write STDIN;
138 write FOO;
139 opendir STDIN, ".";
140 write STDIN;
141 closedir STDIN;
142 opendir FOO, ".";
143 write FOO;
144 closedir FOO;
145 no warnings 'closed' ;
146 write STDIN;
147 write FOO;
148 opendir STDIN, ".";
149 opendir FOO, ".";
150 write STDIN;
151 write FOO;
152 EXPECT
153 write() on closed filehandle STDIN at - line 8.
154 write() on closed filehandle STDIN at - line 11.
155         (Are you trying to call write() on dirhandle STDIN?)
156 ########
157 # pp_sys.c [pp_leavewrite]
158 use warnings 'unopened';
159 format STDIN =
160 .
161 format FOO =
162 .
163 close STDIN;
164 write STDIN;
165 write FOO;
166 opendir STDIN, ".";
167 write STDIN;
168 closedir STDIN;
169 opendir FOO, ".";
170 write FOO;
171 closedir FOO;
172 no warnings 'unopened';
173 write STDIN;
174 write FOO;
175 opendir STDIN, ".";
176 opendir FOO, ".";
177 write STDIN;
178 write FOO;
179 EXPECT
180 write() on unopened filehandle FOO at - line 9.
181 write() on unopened filehandle FOO at - line 14.
182         (Are you trying to call write() on dirhandle FOO?)
183 ########
184 # pp_sys.c [pp_leavewrite]
185 use warnings 'io' ;
186 format STDOUT_TOP =
187 abc
188 .
189 format STDOUT =
190 def
191 ghi
192 .
193 $= = 1 ;
194 $- =1 ;
195 open STDOUT, ">".($^O eq 'VMS'? 'NL:' : '/dev/null') ;
196 write ;
197 no warnings 'io' ;
198 write ;
199 EXPECT
200 page overflow at - line 13.
201 ########
202 # pp_sys.c [pp_prtf]
203 use warnings 'unopened' ;
204 $a = "abc"; 
205 printf $a "fred";
206 no warnings 'unopened' ;
207 printf $a "fred";
208 EXPECT
209 printf() on unopened filehandle abc at - line 4.
210 ########
211 # pp_sys.c [pp_prtf]
212 use warnings 'closed' ;
213 close STDIN ;
214 printf STDIN "fred";
215 opendir STDIN, ".";
216 printf STDIN "fred";
217 closedir STDIN;
218 no warnings 'closed' ;
219 printf STDIN "fred";
220 opendir STDIN, ".";
221 printf STDIN "fred";
222 EXPECT
223 printf() on closed filehandle STDIN at - line 4.
224 printf() on closed filehandle STDIN at - line 6.
225         (Are you trying to call printf() on dirhandle STDIN?)
226 ########
227 # pp_sys.c [pp_prtf]
228 use warnings 'io' ;
229 printf STDIN "fred";
230 no warnings 'io' ;
231 printf STDIN "fred";
232 EXPECT
233 Filehandle STDIN opened only for input at - line 3.
234 ########
235 # pp_sys.c [pp_send]
236 use warnings 'io' ;
237 syswrite STDIN, "fred";
238 no warnings 'io' ;
239 syswrite STDIN, "fred";
240 EXPECT
241 Filehandle STDIN opened only for input at - line 3.
242 ########
243 # pp_sys.c [pp_send]
244 use warnings 'closed' ;
245 close STDIN; 
246 syswrite STDIN, "fred", 1;
247 opendir STDIN, ".";
248 syswrite STDIN, "fred", 1;
249 closedir STDIN;
250 no warnings 'closed' ;
251 syswrite STDIN, "fred", 1;
252 opendir STDIN, ".";
253 syswrite STDIN, "fred", 1;
254 EXPECT
255 syswrite() on closed filehandle STDIN at - line 4.
256 syswrite() on closed filehandle STDIN at - line 6.
257         (Are you trying to call syswrite() on dirhandle STDIN?)
258 ########
259 # pp_sys.c [pp_flock]
260 use Config; 
261 BEGIN { 
262   if ( !$Config{d_flock} &&
263        !$Config{d_fcntl_can_lock} &&
264        !$Config{d_lockf} ) {
265     print <<EOM ;
266 SKIPPED
267 # flock not present
268 EOM
269     exit ;
270   } 
271 }
272 use warnings qw(unopened closed);
273 close STDIN;
274 flock STDIN, 8;
275 opendir STDIN, ".";
276 flock STDIN, 8;
277 flock FOO, 8;
278 flock $a, 8;
279 no warnings qw(unopened closed);
280 flock STDIN, 8;
281 opendir STDIN, ".";
282 flock STDIN, 8;
283 flock FOO, 8;
284 flock $a, 8;
285 EXPECT
286 flock() on closed filehandle STDIN at - line 16.
287 flock() on closed filehandle STDIN at - line 18.
288         (Are you trying to call flock() on dirhandle STDIN?)
289 flock() on unopened filehandle FOO at - line 19.
290 flock() on unopened filehandle at - line 20.
291 ########
292 # pp_sys.c [pp_prtf pp_send pp_bind pp_connect pp_listen pp_accept pp_shutdown pp_ssockopt ppp_getpeername]
293 use warnings 'closed';
294 use Config; 
295 BEGIN { 
296   if ( $^O ne 'VMS' and ! $Config{d_socket}) {
297     print <<EOM ;
298 SKIPPED
299 # send not present
300 # bind not present
301 # connect not present
302 # accept not present
303 # shutdown not present
304 # setsockopt not present
305 # getsockopt not present
306 # getsockname not present
307 # getpeername not present
308 EOM
309     exit ;
310   } 
311 }
312 close STDIN; 
313 send STDIN, "fred", 1;
314 bind STDIN, "fred" ;
315 connect STDIN, "fred" ;
316 listen STDIN, 2;
317 accept "fred", STDIN;
318 shutdown STDIN, 0;
319 setsockopt STDIN, 1,2,3;
320 getsockopt STDIN, 1,2;
321 getsockname STDIN;
322 getpeername STDIN;
323 opendir STDIN, ".";
324 send STDIN, "fred", 1;
325 bind STDIN, "fred" ;
326 connect STDIN, "fred" ;
327 listen STDIN, 2;
328 accept "fred", STDIN;
329 shutdown STDIN, 0;
330 setsockopt STDIN, 1,2,3;
331 getsockopt STDIN, 1,2;
332 getsockname STDIN;
333 getpeername STDIN;
334 closedir STDIN;
335 send FOO, "fred", 1;
336 bind FOO, "fred" ;
337 connect FOO, "fred" ;
338 listen FOO, 2;
339 accept "fred", FOO;
340 shutdown FOO, 0;
341 setsockopt FOO, 1,2,3;
342 getsockopt FOO, 1,2;
343 getsockname FOO;
344 getpeername FOO;
345 opendir FOO, ".";
346 send FOO, "fred", 1;
347 bind FOO, "fred" ;
348 connect FOO, "fred" ;
349 listen FOO, 2;
350 accept "fred", FOO;
351 shutdown FOO, 0;
352 setsockopt FOO, 1,2,3;
353 getsockopt FOO, 1,2;
354 getsockname FOO;
355 getpeername FOO;
356 closedir FOO;
357 no warnings 'closed';
358 send STDIN, "fred", 1;
359 bind STDIN, "fred" ;
360 connect STDIN, "fred" ;
361 listen STDIN, 2;
362 accept STDIN, "fred" ;
363 shutdown STDIN, 0;
364 setsockopt STDIN, 1,2,3;
365 getsockopt STDIN, 1,2;
366 getsockname STDIN;
367 getpeername STDIN;
368 opendir STDIN, ".";
369 send STDIN, "fred", 1;
370 bind STDIN, "fred" ;
371 connect STDIN, "fred" ;
372 listen STDIN, 2;
373 accept "fred", STDIN;
374 shutdown STDIN, 0;
375 setsockopt STDIN, 1,2,3;
376 getsockopt STDIN, 1,2;
377 getsockname STDIN;
378 getpeername STDIN;
379 send FOO, "fred", 1;
380 bind FOO, "fred" ;
381 connect FOO, "fred" ;
382 listen FOO, 2;
383 accept FOO, "fred" ;
384 shutdown FOO, 0;
385 setsockopt FOO, 1,2,3;
386 getsockopt FOO, 1,2;
387 getsockname FOO;
388 getpeername FOO;
389 opendir FOO, ".";
390 send FOO, "fred", 1;
391 bind FOO, "fred" ;
392 connect FOO, "fred" ;
393 listen FOO, 2;
394 accept "fred", FOO;
395 shutdown FOO, 0;
396 setsockopt FOO, 1,2,3;
397 getsockopt FOO, 1,2;
398 getsockname FOO;
399 getpeername FOO;
400 EXPECT
401 send() on closed socket STDIN at - line 22.
402 bind() on closed socket STDIN at - line 23.
403 connect() on closed socket STDIN at - line 24.
404 listen() on closed socket STDIN at - line 25.
405 accept() on closed socket STDIN at - line 26.
406 shutdown() on closed socket STDIN at - line 27.
407 setsockopt() on closed socket STDIN at - line 28.
408 getsockopt() on closed socket STDIN at - line 29.
409 getsockname() on closed socket STDIN at - line 30.
410 getpeername() on closed socket STDIN at - line 31.
411 send() on closed socket STDIN at - line 33.
412         (Are you trying to call send() on dirhandle STDIN?)
413 bind() on closed socket STDIN at - line 34.
414         (Are you trying to call bind() on dirhandle STDIN?)
415 connect() on closed socket STDIN at - line 35.
416         (Are you trying to call connect() on dirhandle STDIN?)
417 listen() on closed socket STDIN at - line 36.
418         (Are you trying to call listen() on dirhandle STDIN?)
419 accept() on closed socket STDIN at - line 37.
420         (Are you trying to call accept() on dirhandle STDIN?)
421 shutdown() on closed socket STDIN at - line 38.
422         (Are you trying to call shutdown() on dirhandle STDIN?)
423 setsockopt() on closed socket STDIN at - line 39.
424         (Are you trying to call setsockopt() on dirhandle STDIN?)
425 getsockopt() on closed socket STDIN at - line 40.
426         (Are you trying to call getsockopt() on dirhandle STDIN?)
427 getsockname() on closed socket STDIN at - line 41.
428         (Are you trying to call getsockname() on dirhandle STDIN?)
429 getpeername() on closed socket STDIN at - line 42.
430         (Are you trying to call getpeername() on dirhandle STDIN?)
431 ########
432 # pp_sys.c [pp_prtf pp_send pp_bind pp_connect pp_listen pp_accept pp_shutdown pp_ssockopt ppp_getpeername]
433 use warnings 'unopened';
434 use Config; 
435 BEGIN { 
436   if ( $^O ne 'VMS' and ! $Config{d_socket}) {
437     print <<EOM ;
438 SKIPPED
439 # send not present
440 # bind not present
441 # connect not present
442 # accept not present
443 # shutdown not present
444 # setsockopt not present
445 # getsockopt not present
446 # getsockname not present
447 # getpeername not present
448 EOM
449     exit ;
450   } 
451 }
452 close STDIN; 
453 send STDIN, "fred", 1;
454 bind STDIN, "fred" ;
455 connect STDIN, "fred" ;
456 listen STDIN, 2;
457 accept "fred", STDIN;
458 shutdown STDIN, 0;
459 setsockopt STDIN, 1,2,3;
460 getsockopt STDIN, 1,2;
461 getsockname STDIN;
462 getpeername STDIN;
463 opendir STDIN, ".";
464 send STDIN, "fred", 1;
465 bind STDIN, "fred" ;
466 connect STDIN, "fred" ;
467 listen STDIN, 2;
468 accept "fred", STDIN;
469 shutdown STDIN, 0;
470 setsockopt STDIN, 1,2,3;
471 getsockopt STDIN, 1,2;
472 getsockname STDIN;
473 getpeername STDIN;
474 closedir STDIN;
475 send FOO, "fred", 1;
476 bind FOO, "fred" ;
477 connect FOO, "fred" ;
478 listen FOO, 2;
479 accept "fred", FOO;
480 shutdown FOO, 0;
481 setsockopt FOO, 1,2,3;
482 getsockopt FOO, 1,2;
483 getsockname FOO;
484 getpeername FOO;
485 opendir FOO, ".";
486 send FOO, "fred", 1;
487 bind FOO, "fred" ;
488 connect FOO, "fred" ;
489 listen FOO, 2;
490 accept "fred", FOO;
491 shutdown FOO, 0;
492 setsockopt FOO, 1,2,3;
493 getsockopt FOO, 1,2;
494 getsockname FOO;
495 getpeername FOO;
496 closedir FOO;
497 no warnings 'unopened';
498 send STDIN, "fred", 1;
499 bind STDIN, "fred" ;
500 connect STDIN, "fred" ;
501 listen STDIN, 2;
502 accept STDIN, "fred" ;
503 shutdown STDIN, 0;
504 setsockopt STDIN, 1,2,3;
505 getsockopt STDIN, 1,2;
506 getsockname STDIN;
507 getpeername STDIN;
508 opendir STDIN, ".";
509 send STDIN, "fred", 1;
510 bind STDIN, "fred" ;
511 connect STDIN, "fred" ;
512 listen STDIN, 2;
513 accept "fred", STDIN;
514 shutdown STDIN, 0;
515 setsockopt STDIN, 1,2,3;
516 getsockopt STDIN, 1,2;
517 getsockname STDIN;
518 getpeername STDIN;
519 send FOO, "fred", 1;
520 bind FOO, "fred" ;
521 connect FOO, "fred" ;
522 listen FOO, 2;
523 accept FOO, "fred" ;
524 shutdown FOO, 0;
525 setsockopt FOO, 1,2,3;
526 getsockopt FOO, 1,2;
527 getsockname FOO;
528 getpeername FOO;
529 opendir FOO, ".";
530 send FOO, "fred", 1;
531 bind FOO, "fred" ;
532 connect FOO, "fred" ;
533 listen FOO, 2;
534 accept "fred", FOO;
535 shutdown FOO, 0;
536 setsockopt FOO, 1,2,3;
537 getsockopt FOO, 1,2;
538 getsockname FOO;
539 getpeername FOO;
540 EXPECT
541 send() on unopened socket FOO at - line 44.
542 bind() on unopened socket FOO at - line 45.
543 connect() on unopened socket FOO at - line 46.
544 listen() on unopened socket FOO at - line 47.
545 accept() on unopened socket FOO at - line 48.
546 shutdown() on unopened socket FOO at - line 49.
547 setsockopt() on unopened socket FOO at - line 50.
548 getsockopt() on unopened socket FOO at - line 51.
549 getsockname() on unopened socket FOO at - line 52.
550 getpeername() on unopened socket FOO at - line 53.
551 send() on unopened socket FOO at - line 55.
552         (Are you trying to call send() on dirhandle FOO?)
553 bind() on unopened socket FOO at - line 56.
554         (Are you trying to call bind() on dirhandle FOO?)
555 connect() on unopened socket FOO at - line 57.
556         (Are you trying to call connect() on dirhandle FOO?)
557 listen() on unopened socket FOO at - line 58.
558         (Are you trying to call listen() on dirhandle FOO?)
559 accept() on unopened socket FOO at - line 59.
560         (Are you trying to call accept() on dirhandle FOO?)
561 shutdown() on unopened socket FOO at - line 60.
562         (Are you trying to call shutdown() on dirhandle FOO?)
563 setsockopt() on unopened socket FOO at - line 61.
564         (Are you trying to call setsockopt() on dirhandle FOO?)
565 getsockopt() on unopened socket FOO at - line 62.
566         (Are you trying to call getsockopt() on dirhandle FOO?)
567 getsockname() on unopened socket FOO at - line 63.
568         (Are you trying to call getsockname() on dirhandle FOO?)
569 getpeername() on unopened socket FOO at - line 64.
570         (Are you trying to call getpeername() on dirhandle FOO?)
571 ########
572 # pp_sys.c [pp_stat]
573 use warnings 'newline' ;
574 stat "abc\ndef";
575 no warnings 'newline' ;
576 stat "abc\ndef";
577 EXPECT
578 Unsuccessful stat on filename containing newline at - line 3.
579 ########
580 # pp_sys.c [pp_fttext]
581 use warnings qw(unopened closed) ;
582 close STDIN ; 
583 -T STDIN ;
584 stat(STDIN) ;
585 -T HOCUS;
586 stat(POCUS);
587 stat "../test.pl";
588 stat *foo;
589 no warnings qw(unopened closed) ;
590 -T STDIN ;
591 stat(STDIN);
592 -T HOCUS;
593 stat(POCUS);
594 stat "../test.pl";
595 stat *foo;
596 EXPECT
597 -T on closed filehandle STDIN at - line 4.
598 stat() on closed filehandle STDIN at - line 5.
599 -T on unopened filehandle HOCUS at - line 6.
600 stat() on unopened filehandle POCUS at - line 7.
601 stat() on unopened filehandle foo at - line 9.
602 ########
603 # pp_sys.c [pp_fttext]
604 use warnings 'newline' ;
605 -T "abc\ndef" ;
606 no warnings 'newline' ;
607 -T "abc\ndef" ;
608 EXPECT
609 Unsuccessful open on filename containing newline at - line 3.
610 ########
611 # pp_sys.c [pp_sysread]
612 use warnings 'io' ;
613 if ($^O eq 'dos') {
614     print <<EOM ;
615 SKIPPED
616 # skipped on dos
617 EOM
618     exit ;
619 }
620 my $file = "./xcv" ;
621 open(F, ">$file") ; 
622 my $a = sysread(F, $a,10) ;
623 no warnings 'io' ;
624 my $a = sysread(F, $a,10) ;
625 close F ;
626 use warnings 'io' ;
627 sysread(F, $a, 10);
628 read(F, $a, 10);
629 sysread(NONEXISTENT, $a, 10);
630 read(NONEXISTENT, $a, 10);
631 unlink $file ;
632 EXPECT
633 Filehandle F opened only for output at - line 12.
634 sysread() on closed filehandle F at - line 17.
635 read() on closed filehandle F at - line 18.
636 sysread() on unopened filehandle NONEXISTENT at - line 19.
637 read() on unopened filehandle NONEXISTENT at - line 20.
638 ########
639 # pp_sys.c [pp_binmode]
640 use warnings 'unopened' ;
641 binmode(BLARG);
642 $a = "BLERG";binmode($a);
643 EXPECT
644 binmode() on unopened filehandle BLARG at - line 3.
645 binmode() on unopened filehandle at - line 4.
646 ########
647 # pp_sys.c [pp_lstat]
648 use warnings 'io';
649 open FH, "../harness" or die "# $!";
650 lstat FH;
651 lstat *FH;
652 lstat \*FH;
653 open my $fh, $0 or die "# $!";
654 lstat $fh;
655 lstat *FH{IO};
656 no warnings 'io';
657 lstat FH;
658 lstat $fh;
659 close FH;
660 close $fh;
661 EXPECT
662 lstat() on filehandle FH at - line 4.
663 lstat() on filehandle FH at - line 5.
664 lstat() on filehandle FH at - line 6.
665 lstat() on filehandle $fh at - line 8.
666 lstat() on filehandle at - line 9.
667 ########
668
669 # pp_sys.c [pp_lstat]
670 use warnings 'io';
671 use utf8;
672 use open qw( :utf8 :std );
673 open ᶠḨ, "../harness" or die "# $!";
674 lstat ᶠḨ;
675 open my $fᚺ, $0 or die "# $!";
676 lstat $fᚺ;
677 no warnings 'io';
678 lstat ᶠḨ;
679 lstat $fᚺ;
680 close ᶠḨ;
681 close $fᚺ;
682 EXPECT
683 lstat() on filehandle ᶠḨ at - line 7.
684 lstat() on filehandle $fᚺ at - line 9.
685 ########
686 # pp_sys.c [pp_getc]
687 use warnings qw(unopened closed) ;
688 getc FOO;
689 close STDIN;
690 getc STDIN;
691 # Create an empty file
692 $file = 'getcwarn.tmp';
693 open FH1, ">$file" or die "# $!"; close FH1;
694 open FH2, $file    or die "# $!";
695 getc FH2; # Should not warn at EOF
696 close FH2;
697 getc FH2; # Warns, now
698 unlink $file;
699 no warnings qw(unopened closed) ;
700 getc FOO;
701 getc STDIN;
702 getc FH2;
703 EXPECT
704 getc() on unopened filehandle FOO at - line 3.
705 getc() on closed filehandle STDIN at - line 5.
706 getc() on closed filehandle FH2 at - line 12.
707 ########
708 # pp_sys.c [pp_sselect]
709 use warnings 'misc';
710 $x = 1;
711 select $x, undef, undef, 1;
712 sub TIESCALAR{bless[]} sub FETCH {"hello"} sub STORE{}
713 tie $y, "";
714 select $y, undef, undef, 1;
715 no warnings 'misc';
716 select $x, undef, undef, 1;
717 EXPECT
718 Non-string passed as bitmask at - line 4.
719 ########
720 use Config;
721 BEGIN {
722     if (!$Config{d_fchdir}) {
723         print <<EOM;
724 SKIPPED
725 # fchdir not present
726 EOM
727         exit;
728     }
729 }
730 opendir FOO, '.'; closedir FOO;
731 open BAR, '.'; close BAR;
732 opendir $dh, '.'; closedir $dh;
733 open $fh, '.'; close $fh;
734 chdir FOO;
735 chdir BAR;
736 chdir $dh;
737 chdir $fh;
738 use warnings qw(unopened closed) ;
739 chdir FOO;
740 chdir BAR;
741 chdir $dh;
742 chdir $fh;
743 EXPECT
744 chdir() on unopened filehandle FOO at - line 20.
745 chdir() on closed filehandle BAR at - line 21.
746 chdir() on unopened filehandle $dh at - line 22.
747 chdir() on closed filehandle $fh at - line 23.
748 ########
749 # pp_sys.c [pp_open]
750 use warnings;
751 opendir FOO, ".";
752 opendir my $foo, ".";
753 open FOO, "../harness";
754 open $foo, "../harness";
755 no warnings qw(io deprecated);
756 open FOO, "../harness";
757 open $foo, "../harness";
758 EXPECT
759 Opening dirhandle FOO also as a file at - line 5.
760 Opening dirhandle $foo also as a file at - line 6.
761 ########
762
763 # pp_sys.c [pp_open]
764 use utf8;
765 use open qw( :utf8 :std );
766 use warnings;
767 opendir FOO, ".";
768 opendir $foo, ".";
769 open FOO, "../harness";
770 open $foo, "../harness";
771 no warnings qw(io deprecated);
772 open FOO, "../harness";
773 open $foo, "../harness";
774 EXPECT
775 Opening dirhandle FOO also as a file at - line 8.
776 Opening dirhandle $foo also as a file at - line 9.
777 ########
778 # pp_sys.c [pp_open_dir]
779 use warnings;
780 open FOO, "../harness";
781 open my $foo, "../harness";
782 opendir FOO, ".";
783 opendir $foo, ".";
784 no warnings qw(io deprecated);
785 opendir FOO, ".";
786 opendir $foo, ".";
787 EXPECT
788 Opening filehandle FOO also as a directory at - line 5.
789 Opening filehandle $foo also as a directory at - line 6.
790 ########
791
792 # pp_sys.c [pp_open_dir]
793 use utf8;
794 use open qw( :utf8 :std );
795 use warnings;
796 use warnings;
797 open FOO, "../harness";
798 open $foo, "../harness";
799 opendir FOO, ".";
800 opendir $foo, ".";
801 no warnings qw(io deprecated);
802 opendir FOO, ".";
803 opendir $foo, ".";
804 EXPECT
805 Opening filehandle FOO also as a directory at - line 9.
806 Opening filehandle $foo also as a directory at - line 10.
807 ########
808 # pp_sys.c [pp_*dir]
809 use warnings 'io';
810 opendir FOO, ".";
811 opendir $foo, ".";
812 closedir FOO;
813 closedir $foo;
814
815 readdir(FOO);
816 telldir(FOO);
817 seekdir(FOO, 0);
818 rewinddir(FOO);
819 closedir(FOO);
820
821 readdir($foo);
822 telldir($foo);
823 seekdir($foo, 0);
824 rewinddir($foo);
825 closedir($foo);
826
827 EXPECT
828 readdir() attempted on invalid dirhandle FOO at - line 8.
829 telldir() attempted on invalid dirhandle FOO at - line 9.
830 seekdir() attempted on invalid dirhandle FOO at - line 10.
831 rewinddir() attempted on invalid dirhandle FOO at - line 11.
832 closedir() attempted on invalid dirhandle FOO at - line 12.
833 readdir() attempted on invalid dirhandle $foo at - line 14.
834 telldir() attempted on invalid dirhandle $foo at - line 15.
835 seekdir() attempted on invalid dirhandle $foo at - line 16.
836 rewinddir() attempted on invalid dirhandle $foo at - line 17.
837 closedir() attempted on invalid dirhandle $foo at - line 18.
838 ########
839
840 # pp_sys.c [pp_*dir]
841 use utf8;
842 use open qw( :utf8 :std );
843 use warnings 'io';
844 opendir FOO, ".";
845 opendir $foo, ".";
846 opendir FOO, ".";
847 opendir $foo, ".";
848 closedir FOO;
849 closedir $foo;
850
851 readdir(FOO);
852 telldir(FOO);
853 seekdir(FOO, 0);
854 rewinddir(FOO);
855 closedir(FOO);
856
857 readdir($foo);
858 telldir($foo);
859 seekdir($foo, 0);
860 rewinddir($foo);
861 closedir($foo);
862
863 EXPECT
864 readdir() attempted on invalid dirhandle FOO at - line 13.
865 telldir() attempted on invalid dirhandle FOO at - line 14.
866 seekdir() attempted on invalid dirhandle FOO at - line 15.
867 rewinddir() attempted on invalid dirhandle FOO at - line 16.
868 closedir() attempted on invalid dirhandle FOO at - line 17.
869 readdir() attempted on invalid dirhandle $foo at - line 19.
870 telldir() attempted on invalid dirhandle $foo at - line 20.
871 seekdir() attempted on invalid dirhandle $foo at - line 21.
872 rewinddir() attempted on invalid dirhandle $foo at - line 22.
873 closedir() attempted on invalid dirhandle $foo at - line 23.