This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
88c3542c7f56dec84bac0b152e3eb00156817fbb
[perl5.git] / t / pragma / warn / 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   Filehandle %s opened only for input           [pp_leavewrite]
7     format STDIN =
8     .
9     write STDIN;
10
11   write() on closed filehandle %s               [pp_leavewrite]
12     format STDIN =
13     .
14     close STDIN;
15     write STDIN ;
16
17   page overflow                                 [pp_leavewrite]
18
19   printf() on unopened filehandle abc           [pp_prtf]
20     $a = "abc"; printf $a "fred"
21
22   Filehandle %s opened only for input           [pp_prtf]
23     $a = "abc"; 
24     printf $a "fred"
25
26   printf() on closed filehandle %s              [pp_prtf]
27     close STDIN ;
28     printf STDIN "fred"
29
30   syswrite() on closed filehandle %s            [pp_send]
31     close STDIN; 
32     syswrite STDIN, "fred", 1;
33
34   send() on closed socket %s                    [pp_send]
35     close STDIN; 
36     send STDIN, "fred", 1
37
38   bind() on closed socket %s                    [pp_bind]
39     close STDIN; 
40     bind STDIN, "fred" ;
41
42
43   connect() on closed socket %s                 [pp_connect]
44     close STDIN; 
45     connect STDIN, "fred" ;
46
47   listen() on closed socket %s                  [pp_listen]
48     close STDIN; 
49     listen STDIN, 2;
50
51   accept() on closed socket %s                  [pp_accept]
52     close STDIN; 
53     accept "fred", STDIN ;
54
55   shutdown() on closed socket %s                [pp_shutdown]
56     close STDIN; 
57     shutdown STDIN, 0;
58
59   setsockopt() on closed socket %s              [pp_ssockopt]
60   getsockopt() on closed socket %s              [pp_ssockopt]
61     close STDIN; 
62     setsockopt STDIN, 1,2,3;
63     getsockopt STDIN, 1,2;
64
65   getsockname() on closed socket %s             [pp_getpeername]
66   getpeername() on closed socket %s             [pp_getpeername]
67     close STDIN; 
68     getsockname STDIN;
69     getpeername STDIN;
70
71   flock() on closed socket %s                   [pp_flock]
72   flock() on closed socket                      [pp_flock]
73     close STDIN;
74     flock STDIN, 8;
75     flock $a, 8;
76
77   lstat() on filehandle %s                      [pp_stat]
78     lstat(STDIN);
79
80   warn(warn_nl, "stat");                        [pp_stat]
81
82   -T on closed filehandle %s
83   stat() on closed filehandle %s
84         close STDIN ; -T STDIN ; stat(STDIN) ;
85
86   warn(warn_nl, "open");                        [pp_fttext]
87     -T "abc\ndef" ;
88
89   Filehandle %s opened only for output          [pp_sysread]
90         my $file = "./xcv" ;
91         open(F, ">$file") ; 
92         my $a = sysread(F, $a,10) ;
93   
94   
95
96 __END__
97 # pp_sys.c [pp_untie]
98 use warnings 'untie' ;
99 sub TIESCALAR { bless [] } ; 
100 $b = tie $a, 'main'; 
101 untie $a ;
102 no warnings 'untie' ;
103 $c = tie $d, 'main'; 
104 untie $d ;
105 EXPECT
106 untie attempted while 1 inner references still exist at - line 5.
107 ########
108 # pp_sys.c [pp_leavewrite]
109 use warnings 'io' ;
110 format STDIN =
111 .
112 write STDIN;
113 no warnings 'io' ;
114 write STDIN;
115 EXPECT
116 Filehandle STDIN opened only for input at - line 5.
117 ########
118 # pp_sys.c [pp_leavewrite]
119 use warnings 'closed' ;
120 format STDIN =
121 .
122 close STDIN;
123 write STDIN;
124 opendir STDIN, ".";
125 write STDIN;
126 closedir STDIN;
127 no warnings 'closed' ;
128 write STDIN;
129 opendir STDIN, ".";
130 write STDIN;
131 EXPECT
132 write() on closed filehandle STDIN at - line 6.
133 write() on closed filehandle STDIN at - line 8.
134         (Are you trying to call write() on dirhandle STDIN?)
135 ########
136 # pp_sys.c [pp_leavewrite]
137 use warnings 'io' ;
138 format STDOUT_TOP =
139 abc
140 .
141 format STDOUT =
142 def
143 ghi
144 .
145 $= = 1 ;
146 $- =1 ;
147 open STDOUT, ">".($^O eq 'VMS'? 'NL:' : '/dev/null') ;
148 write ;
149 no warnings 'io' ;
150 write ;
151 EXPECT
152 page overflow at - line 13.
153 ########
154 # pp_sys.c [pp_prtf]
155 use warnings 'unopened' ;
156 $a = "abc"; 
157 printf $a "fred";
158 no warnings 'unopened' ;
159 printf $a "fred";
160 EXPECT
161 printf() on unopened filehandle abc at - line 4.
162 ########
163 # pp_sys.c [pp_prtf]
164 use warnings 'closed' ;
165 close STDIN ;
166 printf STDIN "fred";
167 opendir STDIN, ".";
168 printf STDIN "fred";
169 closedir STDIN;
170 no warnings 'closed' ;
171 printf STDIN "fred";
172 opendir STDIN, ".";
173 printf STDIN "fred";
174 EXPECT
175 printf() on closed filehandle STDIN at - line 4.
176 printf() on closed filehandle STDIN at - line 6.
177         (Are you trying to call printf() on dirhandle STDIN?)
178 ########
179 # pp_sys.c [pp_prtf]
180 use warnings 'io' ;
181 printf STDIN "fred";
182 no warnings 'io' ;
183 printf STDIN "fred";
184 EXPECT
185 Filehandle STDIN opened only for input at - line 3.
186 ########
187 # pp_sys.c [pp_send]
188 use warnings 'closed' ;
189 close STDIN; 
190 syswrite STDIN, "fred", 1;
191 opendir STDIN, ".";
192 syswrite STDIN, "fred", 1;
193 closedir STDIN;
194 no warnings 'closed' ;
195 syswrite STDIN, "fred", 1;
196 opendir STDIN, ".";
197 syswrite STDIN, "fred", 1;
198 EXPECT
199 syswrite() on closed filehandle STDIN at - line 4.
200 syswrite() on closed filehandle STDIN at - line 6.
201         (Are you trying to call syswrite() on dirhandle STDIN?)
202 ########
203 # pp_sys.c [pp_flock]
204 use Config; 
205 BEGIN { 
206   if ( $^O eq 'VMS' and ! $Config{d_flock}) {
207     print <<EOM ;
208 SKIPPED
209 # flock not present
210 EOM
211     exit ;
212   } 
213 }
214 use warnings qw(unopened closed);
215 close STDIN;
216 flock STDIN, 8;
217 opendir STDIN, ".";
218 flock STDIN, 8;
219 flock FOO, 8;
220 flock $a, 8;
221 no warnings qw(unopened closed);
222 flock STDIN, 8;
223 opendir STDIN, ".";
224 flock STDIN, 8;
225 flock FOO, 8;
226 flock $a, 8;
227 EXPECT
228 flock() on closed filehandle STDIN at - line 14.
229 flock() on closed filehandle STDIN at - line 16.
230         (Are you trying to call flock() on dirhandle STDIN?)
231 flock() on unopened filehandle FOO at - line 17.
232 flock() on unopened filehandle at - line 18.
233 ########
234 # pp_sys.c [pp_prtf pp_send pp_bind pp_connect pp_listen pp_accept pp_shutdown pp_ssockopt ppp_getpeername]
235 use warnings 'io' ;
236 use Config; 
237 BEGIN { 
238   if ( $^O ne 'VMS' and ! $Config{d_socket}) {
239     print <<EOM ;
240 SKIPPED
241 # send not present
242 # bind not present
243 # connect not present
244 # accept not present
245 # shutdown not present
246 # setsockopt not present
247 # getsockopt not present
248 # getsockname not present
249 # getpeername not present
250 EOM
251     exit ;
252   } 
253 }
254 close STDIN; 
255 send STDIN, "fred", 1;
256 bind STDIN, "fred" ;
257 connect STDIN, "fred" ;
258 listen STDIN, 2;
259 accept "fred", STDIN;
260 shutdown STDIN, 0;
261 setsockopt STDIN, 1,2,3;
262 getsockopt STDIN, 1,2;
263 getsockname STDIN;
264 getpeername STDIN;
265 opendir STDIN, ".";
266 send STDIN, "fred", 1;
267 bind STDIN, "fred" ;
268 connect STDIN, "fred" ;
269 listen STDIN, 2;
270 accept "fred", STDIN;
271 shutdown STDIN, 0;
272 setsockopt STDIN, 1,2,3;
273 getsockopt STDIN, 1,2;
274 getsockname STDIN;
275 getpeername STDIN;
276 closedir STDIN;
277 no warnings 'io' ;
278 send STDIN, "fred", 1;
279 bind STDIN, "fred" ;
280 connect STDIN, "fred" ;
281 listen STDIN, 2;
282 accept STDIN, "fred" ;
283 shutdown STDIN, 0;
284 setsockopt STDIN, 1,2,3;
285 getsockopt STDIN, 1,2;
286 getsockname STDIN;
287 getpeername STDIN;
288 opendir STDIN, ".";
289 send STDIN, "fred", 1;
290 bind STDIN, "fred" ;
291 connect STDIN, "fred" ;
292 listen STDIN, 2;
293 accept "fred", STDIN;
294 shutdown STDIN, 0;
295 setsockopt STDIN, 1,2,3;
296 getsockopt STDIN, 1,2;
297 getsockname STDIN;
298 getpeername STDIN;
299 EXPECT
300 send() on closed socket STDIN at - line 22.
301 bind() on closed socket STDIN at - line 23.
302 connect() on closed socket STDIN at - line 24.
303 listen() on closed socket STDIN at - line 25.
304 accept() on closed socket STDIN at - line 26.
305 shutdown() on closed socket STDIN at - line 27.
306 setsockopt() on closed socket STDIN at - line 28.
307 getsockopt() on closed socket STDIN at - line 29.
308 getsockname() on closed socket STDIN at - line 30.
309 getpeername() on closed socket STDIN at - line 31.
310 send() on closed socket STDIN at - line 33.
311         (Are you trying to call send() on dirhandle STDIN?)
312 bind() on closed socket STDIN at - line 34.
313         (Are you trying to call bind() on dirhandle STDIN?)
314 connect() on closed socket STDIN at - line 35.
315         (Are you trying to call connect() on dirhandle STDIN?)
316 listen() on closed socket STDIN at - line 36.
317         (Are you trying to call listen() on dirhandle STDIN?)
318 accept() on closed socket STDIN at - line 37.
319         (Are you trying to call accept() on dirhandle STDIN?)
320 shutdown() on closed socket STDIN at - line 38.
321         (Are you trying to call shutdown() on dirhandle STDIN?)
322 setsockopt() on closed socket STDIN at - line 39.
323         (Are you trying to call setsockopt() on dirhandle STDIN?)
324 getsockopt() on closed socket STDIN at - line 40.
325         (Are you trying to call getsockopt() on dirhandle STDIN?)
326 getsockname() on closed socket STDIN at - line 41.
327         (Are you trying to call getsockname() on dirhandle STDIN?)
328 getpeername() on closed socket STDIN at - line 42.
329         (Are you trying to call getpeername() on dirhandle STDIN?)
330 ########
331 # pp_sys.c [pp_stat]
332 use warnings 'newline' ;
333 stat "abc\ndef";
334 no warnings 'newline' ;
335 stat "abc\ndef";
336 EXPECT
337 Unsuccessful stat on filename containing newline at - line 3.
338 ########
339 # pp_sys.c [pp_stat]
340 use Config; 
341 BEGIN { 
342   if ($^O eq 'd_lstat') {
343     print <<EOM ;
344 SKIPPED
345 # lstat not present
346 EOM
347     exit ;
348   } 
349 }
350 use warnings 'io' ;
351 lstat(STDIN) ;
352 no warnings 'io' ;
353 lstat(STDIN) ;
354 EXPECT
355 lstat() on filehandle STDIN at - line 13.
356 ########
357 # pp_sys.c [pp_fttext]
358 use warnings qw(unopened closed) ;
359 close STDIN ; 
360 -T STDIN ;
361 stat(STDIN) ;
362 -T HOCUS;
363 stat(POCUS);
364 no warnings qw(unopened closed) ;
365 -T STDIN ;
366 stat(STDIN);
367 -T HOCUS;
368 stat(POCUS);
369 EXPECT
370 -T on closed filehandle STDIN at - line 4.
371 stat() on closed filehandle STDIN at - line 5.
372 -T on unopened filehandle HOCUS at - line 6.
373 stat() on unopened filehandle POCUS at - line 7.
374 ########
375 # pp_sys.c [pp_fttext]
376 use warnings 'newline' ;
377 -T "abc\ndef" ;
378 no warnings 'newline' ;
379 -T "abc\ndef" ;
380 EXPECT
381 Unsuccessful open on filename containing newline at - line 3.
382 ########
383 # pp_sys.c [pp_sysread]
384 use warnings 'io' ;
385 if ($^O eq 'dos') {
386     print <<EOM ;
387 SKIPPED
388 # skipped on dos
389 EOM
390     exit ;
391 }
392 my $file = "./xcv" ;
393 open(F, ">$file") ; 
394 my $a = sysread(F, $a,10) ;
395 no warnings 'io' ;
396 my $a = sysread(F, $a,10) ;
397 close F ;
398 unlink $file ;
399 EXPECT
400 Filehandle F opened only for output at - line 5.