This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Re: Smoke 15089 Tru64/OSF Problems: numconvert, lstat
[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 __END__
107 # pp_sys.c [pp_untie]
108 use warnings 'untie' ;
109 sub TIESCALAR { bless [] } ; 
110 $b = tie $a, 'main'; 
111 untie $a ;
112 no warnings 'untie' ;
113 $c = tie $d, 'main'; 
114 untie $d ;
115 EXPECT
116 untie attempted while 1 inner references still exist at - line 5.
117 ########
118 # pp_sys.c [pp_leavewrite]
119 use warnings 'io' ;
120 format STDIN =
121 .
122 write STDIN;
123 no warnings 'io' ;
124 write STDIN;
125 EXPECT
126 Filehandle STDIN opened only for input at - line 5.
127 ########
128 # pp_sys.c [pp_leavewrite]
129 use warnings 'closed' ;
130 format STDIN =
131 .
132 close STDIN;
133 write STDIN;
134 opendir STDIN, ".";
135 write STDIN;
136 closedir STDIN;
137 no warnings 'closed' ;
138 write STDIN;
139 opendir STDIN, ".";
140 write STDIN;
141 EXPECT
142 write() on closed filehandle STDIN at - line 6.
143 write() on closed filehandle STDIN at - line 8.
144         (Are you trying to call write() on dirhandle STDIN?)
145 ########
146 # pp_sys.c [pp_leavewrite]
147 use warnings 'io' ;
148 format STDOUT_TOP =
149 abc
150 .
151 format STDOUT =
152 def
153 ghi
154 .
155 $= = 1 ;
156 $- =1 ;
157 open STDOUT, ">".($^O eq 'VMS'? 'NL:' : '/dev/null') ;
158 write ;
159 no warnings 'io' ;
160 write ;
161 EXPECT
162 page overflow at - line 13.
163 ########
164 # pp_sys.c [pp_prtf]
165 use warnings 'unopened' ;
166 $a = "abc"; 
167 printf $a "fred";
168 no warnings 'unopened' ;
169 printf $a "fred";
170 EXPECT
171 printf() on unopened filehandle abc at - line 4.
172 ########
173 # pp_sys.c [pp_prtf]
174 use warnings 'closed' ;
175 close STDIN ;
176 printf STDIN "fred";
177 opendir STDIN, ".";
178 printf STDIN "fred";
179 closedir STDIN;
180 no warnings 'closed' ;
181 printf STDIN "fred";
182 opendir STDIN, ".";
183 printf STDIN "fred";
184 EXPECT
185 printf() on closed filehandle STDIN at - line 4.
186 printf() on closed filehandle STDIN at - line 6.
187         (Are you trying to call printf() on dirhandle STDIN?)
188 ########
189 # pp_sys.c [pp_prtf]
190 use warnings 'io' ;
191 printf STDIN "fred";
192 no warnings 'io' ;
193 printf STDIN "fred";
194 EXPECT
195 Filehandle STDIN opened only for input at - line 3.
196 ########
197 # pp_sys.c [pp_send]
198 use warnings 'closed' ;
199 close STDIN; 
200 syswrite STDIN, "fred", 1;
201 opendir STDIN, ".";
202 syswrite STDIN, "fred", 1;
203 closedir STDIN;
204 no warnings 'closed' ;
205 syswrite STDIN, "fred", 1;
206 opendir STDIN, ".";
207 syswrite STDIN, "fred", 1;
208 EXPECT
209 syswrite() on closed filehandle STDIN at - line 4.
210 syswrite() on closed filehandle STDIN at - line 6.
211         (Are you trying to call syswrite() on dirhandle STDIN?)
212 ########
213 # pp_sys.c [pp_flock]
214 use Config; 
215 BEGIN { 
216   if ( !$Config{d_flock} &&
217        !$Config{d_fcntl_can_lock} &&
218        !$Config{d_lockf} ) {
219     print <<EOM ;
220 SKIPPED
221 # flock not present
222 EOM
223     exit ;
224   } 
225 }
226 use warnings qw(unopened closed);
227 close STDIN;
228 flock STDIN, 8;
229 opendir STDIN, ".";
230 flock STDIN, 8;
231 flock FOO, 8;
232 flock $a, 8;
233 no warnings qw(unopened closed);
234 flock STDIN, 8;
235 opendir STDIN, ".";
236 flock STDIN, 8;
237 flock FOO, 8;
238 flock $a, 8;
239 EXPECT
240 flock() on closed filehandle STDIN at - line 16.
241 flock() on closed filehandle STDIN at - line 18.
242         (Are you trying to call flock() on dirhandle STDIN?)
243 flock() on unopened filehandle FOO at - line 19.
244 flock() on unopened filehandle at - line 20.
245 ########
246 # pp_sys.c [pp_prtf pp_send pp_bind pp_connect pp_listen pp_accept pp_shutdown pp_ssockopt ppp_getpeername]
247 use warnings 'io' ;
248 use Config; 
249 BEGIN { 
250   if ( $^O ne 'VMS' and ! $Config{d_socket}) {
251     print <<EOM ;
252 SKIPPED
253 # send not present
254 # bind not present
255 # connect not present
256 # accept not present
257 # shutdown not present
258 # setsockopt not present
259 # getsockopt not present
260 # getsockname not present
261 # getpeername not present
262 EOM
263     exit ;
264   } 
265 }
266 close STDIN; 
267 send STDIN, "fred", 1;
268 bind STDIN, "fred" ;
269 connect STDIN, "fred" ;
270 listen STDIN, 2;
271 accept "fred", STDIN;
272 shutdown STDIN, 0;
273 setsockopt STDIN, 1,2,3;
274 getsockopt STDIN, 1,2;
275 getsockname STDIN;
276 getpeername STDIN;
277 opendir STDIN, ".";
278 send STDIN, "fred", 1;
279 bind STDIN, "fred" ;
280 connect STDIN, "fred" ;
281 listen STDIN, 2;
282 accept "fred", STDIN;
283 shutdown STDIN, 0;
284 setsockopt STDIN, 1,2,3;
285 getsockopt STDIN, 1,2;
286 getsockname STDIN;
287 getpeername STDIN;
288 closedir STDIN;
289 no warnings 'io' ;
290 send STDIN, "fred", 1;
291 bind STDIN, "fred" ;
292 connect STDIN, "fred" ;
293 listen STDIN, 2;
294 accept STDIN, "fred" ;
295 shutdown STDIN, 0;
296 setsockopt STDIN, 1,2,3;
297 getsockopt STDIN, 1,2;
298 getsockname STDIN;
299 getpeername STDIN;
300 opendir STDIN, ".";
301 send STDIN, "fred", 1;
302 bind STDIN, "fred" ;
303 connect STDIN, "fred" ;
304 listen STDIN, 2;
305 accept "fred", STDIN;
306 shutdown STDIN, 0;
307 setsockopt STDIN, 1,2,3;
308 getsockopt STDIN, 1,2;
309 getsockname STDIN;
310 getpeername STDIN;
311 EXPECT
312 send() on closed socket STDIN at - line 22.
313 bind() on closed socket STDIN at - line 23.
314 connect() on closed socket STDIN at - line 24.
315 listen() on closed socket STDIN at - line 25.
316 accept() on closed socket STDIN at - line 26.
317 shutdown() on closed socket STDIN at - line 27.
318 setsockopt() on closed socket STDIN at - line 28.
319 getsockopt() on closed socket STDIN at - line 29.
320 getsockname() on closed socket STDIN at - line 30.
321 getpeername() on closed socket STDIN at - line 31.
322 send() on closed socket STDIN at - line 33.
323         (Are you trying to call send() on dirhandle STDIN?)
324 bind() on closed socket STDIN at - line 34.
325         (Are you trying to call bind() on dirhandle STDIN?)
326 connect() on closed socket STDIN at - line 35.
327         (Are you trying to call connect() on dirhandle STDIN?)
328 listen() on closed socket STDIN at - line 36.
329         (Are you trying to call listen() on dirhandle STDIN?)
330 accept() on closed socket STDIN at - line 37.
331         (Are you trying to call accept() on dirhandle STDIN?)
332 shutdown() on closed socket STDIN at - line 38.
333         (Are you trying to call shutdown() on dirhandle STDIN?)
334 setsockopt() on closed socket STDIN at - line 39.
335         (Are you trying to call setsockopt() on dirhandle STDIN?)
336 getsockopt() on closed socket STDIN at - line 40.
337         (Are you trying to call getsockopt() on dirhandle STDIN?)
338 getsockname() on closed socket STDIN at - line 41.
339         (Are you trying to call getsockname() on dirhandle STDIN?)
340 getpeername() on closed socket STDIN at - line 42.
341         (Are you trying to call getpeername() on dirhandle STDIN?)
342 ########
343 # pp_sys.c [pp_stat]
344 use warnings 'newline' ;
345 stat "abc\ndef";
346 no warnings 'newline' ;
347 stat "abc\ndef";
348 EXPECT
349 Unsuccessful stat on filename containing newline at - line 3.
350 ########
351 # pp_sys.c [pp_fttext]
352 use warnings qw(unopened closed) ;
353 close STDIN ; 
354 -T STDIN ;
355 stat(STDIN) ;
356 -T HOCUS;
357 stat(POCUS);
358 no warnings qw(unopened closed) ;
359 -T STDIN ;
360 stat(STDIN);
361 -T HOCUS;
362 stat(POCUS);
363 EXPECT
364 -T on closed filehandle STDIN at - line 4.
365 stat() on closed filehandle STDIN at - line 5.
366 -T on unopened filehandle HOCUS at - line 6.
367 stat() on unopened filehandle POCUS at - line 7.
368 ########
369 # pp_sys.c [pp_fttext]
370 use warnings 'newline' ;
371 -T "abc\ndef" ;
372 no warnings 'newline' ;
373 -T "abc\ndef" ;
374 EXPECT
375 Unsuccessful open on filename containing newline at - line 3.
376 ########
377 # pp_sys.c [pp_sysread]
378 use warnings 'io' ;
379 if ($^O eq 'dos') {
380     print <<EOM ;
381 SKIPPED
382 # skipped on dos
383 EOM
384     exit ;
385 }
386 my $file = "./xcv" ;
387 open(F, ">$file") ; 
388 my $a = sysread(F, $a,10) ;
389 no warnings 'io' ;
390 my $a = sysread(F, $a,10) ;
391 close F ;
392 unlink $file ;
393 EXPECT
394 Filehandle F opened only for output at - line 12.
395 ########
396 # pp_sys.c [pp_binmode]
397 use warnings 'unopened' ;
398 binmode(BLARG);
399 $a = "BLERG";binmode($a);
400 EXPECT
401 binmode() on unopened filehandle BLARG at - line 3.
402 binmode() on unopened filehandle at - line 4.
403 ########
404 # pp_sys.c [pp_lstat]
405 use warnings 'io';
406 open FH, "harness" or die "# $!";
407 lstat FH;
408 open my $fh, $0 or die "# $!";
409 lstat $fh;
410 no warnings 'io';
411 lstat FH;
412 lstat $fh;
413 close FH;
414 close $fh;
415 EXPECT
416 lstat() on filehandle FH at - line 4.
417 lstat() on filehandle $fh at - line 6.
418 ########
419 # pp_sys.c [pp_getc]
420 use warnings qw(unopened closed) ;
421 getc FOO;
422 close STDIN;
423 getc STDIN;
424 # Create an empty file
425 $file = 'getcwarn.tmp';
426 open FH1, ">$file" or die "# $!"; close FH1;
427 open FH2, $file    or die "# $!";
428 getc FH2; # Should not warn at EOF
429 close FH2;
430 getc FH2; # Warns, now
431 unlink $file;
432 no warnings qw(unopened closed) ;
433 getc FOO;
434 getc STDIN;
435 getc FH2;
436 EXPECT
437 getc() on unopened filehandle FOO at - line 3.
438 getc() on closed filehandle STDIN at - line 5.
439 getc() on closed filehandle FH2 at - line 12.