xref: /openbsd/gnu/usr.bin/perl/t/lib/warnings/7fatal (revision db3296cf)
1Check FATAL functionality
2
3__END__
4
5# Check compile time warning
6use warnings FATAL => 'syntax' ;
7{
8    no warnings ;
9    $a =+ 1 ;
10}
11$a =+ 1 ;
12print STDERR "The End.\n" ;
13EXPECT
14Reversed += operator at - line 8.
15########
16
17# Check compile time warning
18use warnings FATAL => 'all' ;
19{
20    no warnings ;
21    my $a =+ 1 ;
22}
23my $a =+ 1 ;
24print STDERR "The End.\n" ;
25EXPECT
26Reversed += operator at - line 8.
27########
28
29# Check runtime scope of pragma
30use warnings FATAL => 'uninitialized' ;
31{
32    no warnings ;
33    my $b ; chop $b ;
34}
35my $b ; chop $b ;
36print STDERR "The End.\n" ;
37EXPECT
38Use of uninitialized value in scalar chop at - line 8.
39########
40
41# Check runtime scope of pragma
42use warnings FATAL => 'all' ;
43{
44    no warnings ;
45    my $b ; chop $b ;
46}
47my $b ; chop $b ;
48print STDERR "The End.\n" ;
49EXPECT
50Use of uninitialized value in scalar chop at - line 8.
51########
52
53# Check runtime scope of pragma
54no warnings ;
55{
56    use warnings FATAL => 'uninitialized' ;
57    $a = sub { my $b ; chop $b ; }
58}
59&$a ;
60print STDERR "The End.\n" ;
61EXPECT
62Use of uninitialized value in scalar chop at - line 6.
63########
64
65# Check runtime scope of pragma
66no warnings ;
67{
68    use warnings FATAL => 'all' ;
69    $a = sub { my $b ; chop $b ; }
70}
71&$a ;
72print STDERR "The End.\n" ;
73EXPECT
74Use of uninitialized value in scalar chop at - line 6.
75########
76
77--FILE-- abc
78$a =+ 1 ;
791;
80--FILE--
81use warnings FATAL => 'syntax' ;
82require "./abc";
83EXPECT
84
85########
86
87--FILE-- abc
88use warnings FATAL => 'syntax' ;
891;
90--FILE--
91require "./abc";
92$a =+ 1 ;
93EXPECT
94
95########
96
97--FILE-- abc
98use warnings 'syntax' ;
99$a =+ 1 ;
1001;
101--FILE--
102use warnings FATAL => 'uninitialized' ;
103require "./abc";
104my $a ; chop $a ;
105print STDERR "The End.\n" ;
106EXPECT
107Reversed += operator at ./abc line 2.
108Use of uninitialized value in scalar chop at - line 3.
109########
110
111--FILE-- abc.pm
112use warnings 'syntax' ;
113$a =+ 1 ;
1141;
115--FILE--
116use warnings FATAL => 'uninitialized' ;
117use abc;
118my $a ; chop $a ;
119print STDERR "The End.\n" ;
120EXPECT
121Reversed += operator at abc.pm line 2.
122Use of uninitialized value in scalar chop at - line 3.
123########
124
125# Check scope of pragma with eval
126no warnings ;
127eval {
128    use warnings FATAL => 'uninitialized' ;
129    my $b ; chop $b ;
130}; print STDERR "-- $@" ;
131my $b ; chop $b ;
132print STDERR "The End.\n" ;
133EXPECT
134-- Use of uninitialized value in scalar chop at - line 6.
135The End.
136########
137
138# Check scope of pragma with eval
139use warnings FATAL => 'uninitialized' ;
140eval {
141    my $b ; chop $b ;
142}; print STDERR "-- $@" ;
143my $b ; chop $b ;
144print STDERR "The End.\n" ;
145EXPECT
146-- Use of uninitialized value in scalar chop at - line 5.
147Use of uninitialized value in scalar chop at - line 7.
148########
149
150# Check scope of pragma with eval
151use warnings FATAL => 'uninitialized' ;
152eval {
153    no warnings ;
154    my $b ; chop $b ;
155}; print STDERR $@ ;
156my $b ; chop $b ;
157print STDERR "The End.\n" ;
158EXPECT
159Use of uninitialized value in scalar chop at - line 8.
160########
161
162# Check scope of pragma with eval
163no warnings ;
164eval {
165    use warnings FATAL => 'syntax' ;
166    $a =+ 1 ;
167}; print STDERR "-- $@" ;
168$a =+ 1 ;
169print STDERR "The End.\n" ;
170EXPECT
171Reversed += operator at - line 6.
172########
173
174# Check scope of pragma with eval
175use warnings FATAL => 'syntax' ;
176eval {
177    $a =+ 1 ;
178}; print STDERR "-- $@" ;
179$a =+ 1 ;
180print STDERR "The End.\n" ;
181EXPECT
182Reversed += operator at - line 5.
183########
184
185# Check scope of pragma with eval
186use warnings FATAL => 'syntax' ;
187eval {
188    no warnings ;
189    $a =+ 1 ;
190}; print STDERR $@ ;
191$a =+ 1 ;
192print STDERR "The End.\n" ;
193EXPECT
194Reversed += operator at - line 8.
195########
196
197# Check scope of pragma with eval
198no warnings ;
199eval {
200    use warnings FATAL => 'syntax' ;
201}; print STDERR $@ ;
202$a =+ 1 ;
203print STDERR "The End.\n" ;
204EXPECT
205The End.
206########
207
208# Check scope of pragma with eval
209no warnings ;
210eval q[
211    use warnings FATAL => 'uninitialized' ;
212    my $b ; chop $b ;
213]; print STDERR "-- $@";
214my $b ; chop $b ;
215print STDERR "The End.\n" ;
216EXPECT
217-- Use of uninitialized value in scalar chop at (eval 1) line 3.
218The End.
219########
220
221# Check scope of pragma with eval
222use warnings FATAL => 'uninitialized' ;
223eval '
224    my $b ; chop $b ;
225'; print STDERR "-- $@" ;
226my $b ; chop $b ;
227print STDERR "The End.\n" ;
228EXPECT
229-- Use of uninitialized value in scalar chop at (eval 1) line 2.
230Use of uninitialized value in scalar chop at - line 7.
231########
232
233# Check scope of pragma with eval
234use warnings FATAL => 'uninitialized' ;
235eval '
236    no warnings ;
237    my $b ; chop $b ;
238'; print STDERR $@ ;
239my $b ; chop $b ;
240print STDERR "The End.\n" ;
241EXPECT
242Use of uninitialized value in scalar chop at - line 8.
243########
244
245# Check scope of pragma with eval
246no warnings ;
247eval q[
248    use warnings FATAL => 'syntax' ;
249    $a =+ 1 ;
250]; print STDERR "-- $@";
251$a =+ 1 ;
252print STDERR "The End.\n" ;
253EXPECT
254-- Reversed += operator at (eval 1) line 3.
255The End.
256########
257
258# Check scope of pragma with eval
259use warnings FATAL => 'syntax' ;
260eval '
261    $a =+ 1 ;
262'; print STDERR "-- $@";
263print STDERR "The End.\n" ;
264EXPECT
265-- Reversed += operator at (eval 1) line 2.
266The End.
267########
268
269# Check scope of pragma with eval
270use warnings FATAL => 'syntax' ;
271eval '
272    no warnings ;
273    $a =+ 1 ;
274'; print STDERR "-- $@";
275$a =+ 1 ;
276print STDERR "The End.\n" ;
277EXPECT
278Reversed += operator at - line 8.
279########
280
281use warnings 'void' ;
282
283time ;
284
285{
286    use warnings FATAL => qw(void) ;
287    length "abc" ;
288}
289
290join "", 1,2,3 ;
291
292print "done\n" ;
293EXPECT
294Useless use of time in void context at - line 4.
295Useless use of length in void context at - line 8.
296########
297
298use warnings ;
299
300time ;
301
302{
303    use warnings FATAL => qw(void) ;
304    length "abc" ;
305}
306
307join "", 1,2,3 ;
308
309print "done\n" ;
310EXPECT
311Useless use of time in void context at - line 4.
312Useless use of length in void context at - line 8.
313########
314
315use warnings FATAL => 'all';
316{
317    no warnings;
318    my $b ; chop $b;
319    {
320        use warnings ;
321        my $b ; chop $b;
322    }
323}
324my $b ; chop $b;
325print STDERR "The End.\n" ;
326EXPECT
327Use of uninitialized value in scalar chop at - line 8.
328Use of uninitialized value in scalar chop at - line 11.
329########
330
331use warnings FATAL => 'all';
332{
333    no warnings FATAL => 'all';
334    my $b ; chop $b;
335    {
336        use warnings ;
337        my $b ; chop $b;
338    }
339}
340my $b ; chop $b;
341print STDERR "The End.\n" ;
342EXPECT
343Use of uninitialized value in scalar chop at - line 8.
344Use of uninitialized value in scalar chop at - line 11.
345########
346
347use warnings FATAL => 'all';
348{
349    no warnings 'syntax';
350    {
351        use warnings ;
352        my $b ; chop $b;
353    }
354}
355my $b ; chop $b;
356print STDERR "The End.\n" ;
357EXPECT
358Use of uninitialized value in scalar chop at - line 7.
359########
360
361use warnings FATAL => 'syntax', NONFATAL => 'void' ;
362
363length "abc";
364print STDERR "The End.\n" ;
365EXPECT
366Useless use of length in void context at - line 4.
367The End.
368########
369
370use warnings FATAL => 'all', NONFATAL => 'void' ;
371
372length "abc";
373print STDERR "The End.\n" ;
374EXPECT
375Useless use of length in void context at - line 4.
376The End.
377########
378
379use warnings FATAL => 'all', NONFATAL => 'void' ;
380
381my $a ; chomp $a;
382length "abc";
383print STDERR "The End.\n" ;
384EXPECT
385Useless use of length in void context at - line 5.
386Use of uninitialized value in scalar chomp at - line 4.
387########
388
389use warnings FATAL => 'void', NONFATAL => 'void' ;
390
391length "abc";
392print STDERR "The End.\n" ;
393EXPECT
394Useless use of length in void context at - line 4.
395The End.
396########
397
398use warnings NONFATAL => 'void', FATAL => 'void' ;
399
400length "abc";
401print STDERR "The End.\n" ;
402EXPECT
403Useless use of length in void context at - line 4.
404########
405
406use warnings FATAL => 'all', NONFATAL => 'io';
407no warnings 'once';
408
409open(F, "<true\ncd");
410close "fred" ;
411print STDERR "The End.\n" ;
412EXPECT
413Unsuccessful open on filename containing newline at - line 5.
414close() on unopened filehandle fred at - line 6.
415The End.
416########
417
418use warnings FATAL => 'all', NONFATAL => 'io', FATAL => 'unopened' ;
419no warnings 'once';
420
421open(F, "<true\ncd");
422close "fred" ;
423print STDERR "The End.\n" ;
424EXPECT
425Unsuccessful open on filename containing newline at - line 5.
426close() on unopened filehandle fred at - line 6.
427