This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Use of strings with code points over 0xFF as arguments to "vec"
[perl5.git] / t / lib / warnings / 9enabled
CommitLineData
44626bc9
FC
1Check warnings::enabled, warnings::warn and other functionality of
2warnings.pm.
8d93267c
GS
3
4__END__
5
a95b6808
JH
6--FILE-- abc0.pm
7package abc0 ;
8d93267c 8use warnings "io" ;
d3a7d8c7 9print "ok1\n" if ! warnings::enabled('all') ;
8d93267c
GS
10print "ok2\n" if ! warnings::enabled("io") ;
111;
a95b6808 12--FILE--
8d93267c 13no warnings;
a95b6808 14use abc0 ;
8d93267c
GS
15EXPECT
16ok1
17ok2
18########
19
a95b6808
JH
20--FILE-- abc1.pm
21package abc1 ;
8d93267c 22no warnings ;
d3a7d8c7 23print "ok1\n" if !warnings::enabled('all') ;
8d93267c
GS
24print "ok2\n" if warnings::enabled("syntax") ;
251;
a95b6808 26--FILE--
8d93267c 27use warnings 'syntax' ;
a95b6808 28use abc1 ;
8d93267c
GS
29EXPECT
30ok1
31ok2
32########
33
a95b6808
JH
34--FILE-- abc2.pm
35package abc2 ;
8d93267c 36use warnings 'syntax' ;
d3a7d8c7 37print "ok1\n" if warnings::enabled('io') ;
8d93267c
GS
38print "ok2\n" if ! warnings::enabled("syntax") ;
391;
a95b6808 40--FILE--
8d93267c 41use warnings 'io' ;
a95b6808 42use abc2 ;
8d93267c
GS
43EXPECT
44ok1
45ok2
46########
47
a95b6808 48--FILE-- abc3
8d93267c 49no warnings ;
d3a7d8c7 50print "ok1\n" if !warnings::enabled('all') ;
4f527b71 51print "ok2\n" if !warnings::enabled("syntax") ;
8d93267c 521;
a95b6808 53--FILE--
8d93267c 54use warnings 'syntax' ;
a95b6808 55require "abc3" ;
8d93267c
GS
56EXPECT
57ok1
58ok2
59########
60
a95b6808 61--FILE-- abc4
8d93267c 62use warnings 'syntax' ;
d3a7d8c7 63print "ok1\n" if ! warnings::enabled('all') ;
8d93267c 64print "ok2\n" if ! warnings::enabled("syntax") ;
4f527b71 65print "ok3\n" if ! warnings::enabled("io") ;
8d93267c 661;
a95b6808 67--FILE--
8d93267c 68use warnings 'io' ;
a95b6808 69require "abc4" ;
8d93267c
GS
70EXPECT
71ok1
72ok2
73ok3
74########
75
a95b6808
JH
76--FILE-- abc5.pm
77package abc5 ;
8d93267c
GS
78no warnings ;
79sub check {
d3a7d8c7 80 print "ok1\n" if !warnings::enabled('all') ;
8d93267c
GS
81 print "ok2\n" if warnings::enabled("syntax") ;
82}
831;
a95b6808 84--FILE--
8d93267c 85use warnings 'syntax' ;
a95b6808
JH
86use abc5 ;
87abc5::check() ;
8d93267c
GS
88EXPECT
89ok1
90ok2
91########
92
a95b6808
JH
93--FILE-- abc6.pm
94package abc6 ;
8d93267c
GS
95use warnings 'io' ;
96sub check {
d3a7d8c7
GS
97 print "ok1\n" if ! warnings::enabled('all') ;
98 print "ok2\n" if warnings::enabled("syntax") ;
8d93267c
GS
99 print "ok3\n" if ! warnings::enabled("io") ;
100}
1011;
a95b6808 102--FILE--
8d93267c 103use warnings 'syntax' ;
a95b6808
JH
104use abc6 ;
105abc6::check() ;
8d93267c
GS
106EXPECT
107ok1
108ok2
109ok3
110########
111
a95b6808
JH
112--FILE-- abc7
113package abc7 ;
8d93267c
GS
114no warnings ;
115sub check {
d3a7d8c7 116 print "ok1\n" if !warnings::enabled('all') ;
8d93267c
GS
117 print "ok2\n" if warnings::enabled("syntax") ;
118}
1191;
a95b6808 120--FILE--
8d93267c 121use warnings 'syntax' ;
a95b6808
JH
122require "abc7" ;
123abc7::check() ;
8d93267c
GS
124EXPECT
125ok1
126ok2
127########
128
a95b6808
JH
129--FILE-- abc8
130package abc8 ;
8d93267c
GS
131use warnings 'io' ;
132sub check {
d3a7d8c7
GS
133 print "ok1\n" if ! warnings::enabled('all') ;
134 print "ok2\n" if warnings::enabled("syntax") ;
8d93267c
GS
135 print "ok3\n" if ! warnings::enabled("io") ;
136}
1371;
a95b6808 138--FILE--
8d93267c 139use warnings 'syntax' ;
a95b6808
JH
140require "abc8" ;
141abc8::check() ;
8d93267c
GS
142EXPECT
143ok1
144ok2
145ok3
146########
147
a95b6808
JH
148--FILE-- abc9.pm
149package abc9 ;
8d93267c 150use warnings "io" ;
d3a7d8c7 151print "ok1\n" if ! warnings::enabled('all') ;
8d93267c
GS
152print "ok2\n" if ! warnings::enabled("io") ;
1531;
154--FILE-- def.pm
f89e79d6 155package def;
8d93267c 156no warnings;
a95b6808 157use abc9 ;
8d93267c 1581;
a95b6808 159--FILE--
8d93267c
GS
160use warnings;
161use def ;
162EXPECT
163ok1
164ok2
165########
166
a95b6808
JH
167--FILE-- abc10.pm
168package abc10 ;
8d93267c 169no warnings ;
d3a7d8c7 170print "ok1\n" if ! warnings::enabled('all') ;
8d93267c
GS
171print "ok2\n" if warnings::enabled("syntax") ;
172print "ok3\n" if !warnings::enabled("io") ;
1731;
174--FILE-- def.pm
175use warnings 'syntax' ;
d3a7d8c7 176print "ok4\n" if !warnings::enabled('all') ;
4f527b71 177print "ok5\n" if !warnings::enabled("io") ;
a95b6808 178use abc10 ;
8d93267c
GS
1791;
180--FILE--
181use warnings 'io' ;
182use def ;
183EXPECT
184ok1
185ok2
186ok3
187ok4
188ok5
189########
190
a95b6808
JH
191--FILE-- abc11.pm
192package abc11 ;
8d93267c
GS
193no warnings ;
194sub check {
d3a7d8c7 195 print "ok1\n" if !warnings::enabled('all') ;
8d93267c
GS
196 print "ok2\n" if warnings::enabled("syntax") ;
197}
1981;
a95b6808 199--FILE--
8d93267c 200use warnings 'syntax' ;
a95b6808
JH
201use abc11 ;
202eval {
203 abc11::check() ;
c3186b65 204};
8d93267c
GS
205print $@ ;
206EXPECT
207ok1
208ok2
209########
210
a95b6808
JH
211--FILE-- abc12.pm
212package abc12 ;
8d93267c
GS
213use warnings 'io' ;
214sub check {
d3a7d8c7
GS
215 print "ok1\n" if ! warnings::enabled('all') ;
216 print "ok2\n" if warnings::enabled("syntax") ;
8d93267c
GS
217 print "ok3\n" if ! warnings::enabled("io") ;
218}
2191;
a95b6808 220--FILE--
8d93267c 221use warnings 'syntax' ;
a95b6808
JH
222use abc12 ;
223eval {
224 abc12::check() ;
c3186b65 225 } ;
8d93267c
GS
226print $@ ;
227EXPECT
228ok1
229ok2
230ok3
231########
232
a95b6808
JH
233--FILE-- abc13
234package abc13 ;
8d93267c
GS
235no warnings ;
236sub check {
d3a7d8c7 237 print "ok1\n" if !warnings::enabled('all') ;
8d93267c
GS
238 print "ok2\n" if warnings::enabled("syntax") ;
239}
2401;
a95b6808 241--FILE--
8d93267c 242use warnings 'syntax' ;
a95b6808
JH
243require "abc13" ;
244eval {
245 abc13::check() ;
c3186b65 246 } ;
8d93267c
GS
247print $@ ;
248EXPECT
249ok1
250ok2
251########
252
a95b6808
JH
253--FILE-- abc14
254package abc14 ;
8d93267c
GS
255use warnings 'io' ;
256sub check {
d3a7d8c7 257 print "ok1\n" if !warnings::enabled('all') ;
8d93267c
GS
258 print "ok2\n" if warnings::enabled("syntax") ;
259 print "ok3\n" if warnings::enabled("io") ;
260}
2611;
a95b6808 262--FILE--
8d93267c 263use warnings 'syntax' ;
a95b6808
JH
264require "abc14" ;
265eval {
266 use warnings 'io' ;
267 abc14::check() ;
c3186b65 268};
a95b6808 269abc14::check() ;
8d93267c
GS
270print $@ ;
271EXPECT
272ok1
273ok2
274ok3
275ok1
276ok2
277########
278
a95b6808
JH
279--FILE-- abc15.pm
280package abc15 ;
8d93267c
GS
281use warnings 'io' ;
282sub check {
d3a7d8c7 283 print "ok1\n" if ! warnings::enabled('all') ;
8d93267c
GS
284 print "ok2\n" if warnings::enabled("syntax") ;
285 print "ok3\n" if ! warnings::enabled("io") ;
286}
2871;
a95b6808 288--FILE--
8d93267c 289use warnings 'syntax' ;
a95b6808
JH
290use abc15 ;
291sub fred { abc15::check() }
8d93267c
GS
292fred() ;
293EXPECT
294ok1
295ok2
296ok3
297########
298
a95b6808
JH
299--FILE-- abc16.pm
300package abc16 ;
8d93267c
GS
301use warnings 'io' ;
302sub check {
d3a7d8c7 303 print "ok1\n" if ! warnings::enabled('all') ;
8d93267c
GS
304}
3051;
a95b6808 306--FILE--
8d93267c 307use warnings 'syntax' ;
a95b6808
JH
308use abc16 ;
309sub fred { no warnings ; abc16::check() }
8d93267c
GS
310fred() ;
311EXPECT
312ok1
313########
314
a95b6808
JH
315--FILE-- abc17.pm
316package abc17 ;
8d93267c
GS
317use warnings 'misc' ;
318sub check {
d3a7d8c7 319 print "ok1\n" if ! warnings::enabled('all') ;
8d93267c
GS
320 print "ok2\n" if warnings::enabled("syntax") ;
321 print "ok3\n" if warnings::enabled("io") ;
322 print "ok4\n" if ! warnings::enabled("misc") ;
323}
3241;
a95b6808 325--FILE--
8d93267c 326use warnings 'syntax' ;
a95b6808
JH
327use abc17 ;
328sub fred { use warnings 'io' ; abc17::check() }
8d93267c
GS
329fred() ;
330EXPECT
331ok1
332ok2
333ok3
334ok4
335########
336
337# check warnings::warn
338use warnings ;
a95b6808
JH
339eval {
340 warnings::warn()
c3186b65 341 } ;
8d93267c 342print $@ ;
a95b6808
JH
343eval {
344 warnings::warn("fred", "joe")
c3186b65 345 } ;
8d93267c
GS
346print $@ ;
347EXPECT
879b0cab
Z
348Usage: warnings::warn([category,] 'message') at - line 5.
349Unknown warnings category 'fred' at - line 9.
7e6d00f8
PM
350########
351
352# check warnings::warnif
353use warnings ;
a95b6808
JH
354eval {
355 warnings::warnif()
c3186b65 356} ;
7e6d00f8 357print $@ ;
a95b6808
JH
358eval {
359 warnings::warnif("fred", "joe")
c3186b65 360} ;
7e6d00f8
PM
361print $@ ;
362EXPECT
879b0cab
Z
363Usage: warnings::warnif([category,] 'message') at - line 5.
364Unknown warnings category 'fred' at - line 9.
8d93267c
GS
365########
366
a95b6808
JH
367--FILE-- abc18.pm
368package abc18 ;
8d93267c
GS
369use warnings 'misc' ;
370sub check { warnings::warn("io", "hello") }
3711;
372--FILE--
373use warnings "io" ;
a95b6808
JH
374use abc18;
375abc18::check() ;
8d93267c 376EXPECT
879b0cab 377hello at - line 3.
8d93267c
GS
378########
379
a95b6808
JH
380--FILE-- abc19.pm
381package abc19 ;
8d93267c
GS
382use warnings 'misc' ;
383sub check { warnings::warn("misc", "hello") }
3841;
385--FILE--
386use warnings "io" ;
a95b6808
JH
387use abc19;
388abc19::check() ;
8d93267c 389EXPECT
879b0cab 390hello at - line 3.
8d93267c
GS
391########
392
a95b6808
JH
393--FILE-- abc20.pm
394package abc20 ;
8d93267c
GS
395use warnings 'misc' ;
396sub check { warnings::warn("io", "hello") }
3971;
398--FILE--
399use warnings qw( FATAL deprecated ) ;
a95b6808
JH
400use abc20;
401eval {
402 abc20::check() ;
c3186b65 403 } ;
8d93267c
GS
404print "[[$@]]\n";
405EXPECT
879b0cab 406hello at - line 4.
8d93267c
GS
407[[]]
408########
409
a95b6808
JH
410--FILE-- abc21.pm
411package abc21 ;
8d93267c
GS
412use warnings 'misc' ;
413sub check { warnings::warn("io", "hello") }
4141;
415--FILE--
416use warnings qw( FATAL io ) ;
a95b6808
JH
417use abc21;
418eval {
419 abc21::check() ;
c3186b65 420} ;
8d93267c
GS
421print "[[$@]]\n";
422EXPECT
879b0cab 423[[hello at - line 4.
8d93267c 424]]
d3a7d8c7
GS
425########
426-W
a95b6808
JH
427--FILE-- abc22.pm
428package abc22 ;
d3a7d8c7
GS
429use warnings "io" ;
430print "ok1\n" if warnings::enabled("io") ;
431print "ok2\n" if warnings::enabled("all") ;
4321;
a95b6808 433--FILE--
d3a7d8c7 434no warnings;
a95b6808 435use abc22 ;
d3a7d8c7
GS
436EXPECT
437ok1
438ok2
439########
440-X
a95b6808
JH
441--FILE-- abc23.pm
442package abc23 ;
d3a7d8c7
GS
443use warnings "io" ;
444print "ok1\n" if !warnings::enabled("io") ;
445print "ok2\n" if !warnings::enabled("all") ;
4461;
a95b6808 447--FILE--
d3a7d8c7 448use warnings;
a95b6808 449use abc23 ;
d3a7d8c7
GS
450EXPECT
451ok1
452ok2
453########
454
a95b6808
JH
455--FILE-- abc24.pm
456package abc24 ;
d3a7d8c7
GS
457no warnings ;
458sub check {
459 print "ok\n" if ! warnings::enabled() ;
460}
4611;
a95b6808 462--FILE--
d3a7d8c7 463use warnings 'syntax' ;
a95b6808
JH
464use abc24 ;
465abc24::check() ;
d3a7d8c7 466EXPECT
879b0cab 467package 'abc24' not registered for warnings at abc24.pm line 4.
7e6d00f8
PM
468########
469
a95b6808
JH
470--FILE-- abc25.pm
471package abc25 ;
7e6d00f8
PM
472no warnings ;
473sub check {
474 warnings::warn("fred") ;
475}
4761;
a95b6808 477--FILE--
7e6d00f8 478use warnings 'syntax' ;
a95b6808
JH
479use abc25 ;
480abc25::check() ;
7e6d00f8 481EXPECT
879b0cab 482package 'abc25' not registered for warnings at abc25.pm line 4.
7e6d00f8
PM
483########
484
a95b6808
JH
485--FILE-- abc26.pm
486package abc26 ;
7e6d00f8
PM
487no warnings ;
488sub check {
489 warnings::warnif("fred") ;
490}
4911;
a95b6808 492--FILE--
7e6d00f8 493use warnings 'syntax' ;
a95b6808
JH
494use abc26 ;
495abc26::check() ;
7e6d00f8 496EXPECT
879b0cab 497package 'abc26' not registered for warnings at abc26.pm line 4.
d3a7d8c7
GS
498########
499
a95b6808
JH
500--FILE-- abc27.pm
501package abc27 ;
d3a7d8c7
GS
502use warnings 'io' ;
503use warnings::register ;
504sub check {
505 print "ok1\n" if warnings::enabled ;
506 print "ok2\n" if warnings::enabled("syntax") ;
507 print "ok3\n" if !warnings::enabled("io") ;
508}
5091;
a95b6808 510--FILE--
d3a7d8c7 511use warnings 'syntax' ;
a95b6808
JH
512use abc27 ;
513use warnings 'abc27' ;
514abc27::check() ;
d3a7d8c7
GS
515EXPECT
516ok1
517ok2
518ok3
519########
520
a95b6808
JH
521--FILE-- abc28.pm
522package abc28 ;
d3a7d8c7
GS
523use warnings 'io' ;
524use warnings::register ;
525sub check {
526 print "ok1\n" if !warnings::enabled ;
527 print "ok2\n" if warnings::enabled("syntax") ;
528 print "ok3\n" if !warnings::enabled("io") ;
529}
5301;
a95b6808 531--FILE--
d3a7d8c7 532use warnings 'syntax' ;
a95b6808
JH
533use abc28 ;
534abc28::check() ;
d3a7d8c7
GS
535EXPECT
536ok1
537ok2
538ok3
539########
540
a95b6808
JH
541--FILE-- abc29.pm
542package abc29 ;
d3a7d8c7
GS
543no warnings ;
544use warnings::register ;
545sub check {
546 print "ok1\n" if warnings::enabled ;
547 print "ok2\n" if warnings::enabled("syntax") ;
548}
5491;
a95b6808 550--FILE--
d3a7d8c7 551use warnings 'syntax' ;
a95b6808
JH
552use abc29 ;
553use warnings 'abc29' ;
554eval { abc29::check() ; };
d3a7d8c7
GS
555print $@ ;
556EXPECT
557ok1
558ok2
559########
560
a95b6808
JH
561--FILE-- abc30.pm
562package abc30 ;
d3a7d8c7
GS
563use warnings 'io' ;
564use warnings::register ;
565sub check {
566 print "ok1\n" if !warnings::enabled ;
567 print "ok2\n" if warnings::enabled("syntax") ;
568 print "ok3\n" if !warnings::enabled("io") ;
569}
5701;
a95b6808 571--FILE--
d3a7d8c7 572use warnings 'syntax' ;
a95b6808
JH
573use abc30 ;
574eval { abc30::check() ; } ;
d3a7d8c7
GS
575print $@ ;
576EXPECT
577ok1
578ok2
579ok3
580########
581
a95b6808
JH
582--FILE-- abc31.pm
583package abc31 ;
d3a7d8c7
GS
584use warnings 'io' ;
585use warnings::register ;
586sub check {
587 print "ok1\n" if warnings::enabled ;
588 print "ok2\n" if warnings::enabled("syntax") ;
589 print "ok3\n" if !warnings::enabled("io") ;
590}
5911;
a95b6808 592--FILE--
d3a7d8c7 593use warnings 'syntax' ;
a95b6808
JH
594use abc31 ;
595use warnings 'abc31' ;
596sub fred { abc31::check() }
d3a7d8c7
GS
597fred() ;
598EXPECT
599ok1
600ok2
601ok3
602########
603
a95b6808
JH
604--FILE-- abc32.pm
605package abc32 ;
d3a7d8c7
GS
606use warnings 'io' ;
607use warnings::register ;
608sub check {
609 print "ok1\n" if ! warnings::enabled ;
610}
6111;
a95b6808 612--FILE--
d3a7d8c7 613use warnings 'syntax' ;
a95b6808
JH
614use abc32 ;
615sub fred { no warnings ; abc32::check() }
d3a7d8c7
GS
616fred() ;
617EXPECT
618ok1
619########
620
a95b6808
JH
621--FILE-- abc33.pm
622package abc33 ;
d3a7d8c7
GS
623use warnings 'misc' ;
624use warnings::register;
625sub check {
626 print "ok1\n" if warnings::enabled ;
627 print "ok2\n" if warnings::enabled("syntax") ;
628 print "ok3\n" if warnings::enabled("io") ;
629 print "ok4\n" if ! warnings::enabled("misc") ;
630}
6311;
a95b6808 632--FILE--
d3a7d8c7 633use warnings 'syntax' ;
a95b6808
JH
634use abc33 ;
635use warnings 'abc33' ;
636sub fred { use warnings 'io' ; abc33::check() }
d3a7d8c7
GS
637fred() ;
638EXPECT
639ok1
640ok2
641ok3
642ok4
643########
644
a95b6808
JH
645--FILE-- abc34.pm
646package abc34 ;
d3a7d8c7
GS
647use warnings 'misc' ;
648use warnings::register;
649sub check { warnings::warn("hello") }
6501;
651--FILE--
a95b6808
JH
652use abc34;
653use warnings "abc34" ;
654abc34::check() ;
d3a7d8c7 655EXPECT
879b0cab 656hello at - line 3.
d3a7d8c7
GS
657########
658
a95b6808
JH
659--FILE-- abc35.pm
660package abc35 ;
d3a7d8c7
GS
661use warnings::register;
662sub check { warnings::warn("hello") }
6631;
664--FILE--
a95b6808
JH
665use abc35;
666abc35::check() ;
d3a7d8c7 667EXPECT
879b0cab 668hello at - line 2.
d3a7d8c7
GS
669########
670
a95b6808
JH
671--FILE-- abc36.pm
672package abc36 ;
d3a7d8c7
GS
673use warnings::register ;
674sub check { warnings::warn("hello") }
6751;
676--FILE--
a95b6808 677use abc36;
d3a7d8c7 678use warnings qw( FATAL deprecated ) ;
c3186b65 679eval {
a95b6808 680 abc36::check() ;
c3186b65 681 } ;
d3a7d8c7
GS
682print "[[$@]]\n";
683EXPECT
879b0cab 684hello at - line 4.
d3a7d8c7
GS
685[[]]
686########
687
a95b6808
JH
688--FILE-- abc37.pm
689package abc37 ;
d3a7d8c7
GS
690use warnings::register ;
691sub check { warnings::warn("hello") }
6921;
693--FILE--
a95b6808
JH
694use abc37;
695use warnings qw( FATAL abc37 ) ;
696eval {
697 abc37::check() ;
c3186b65 698 } ;
d3a7d8c7
GS
699print "[[$@]]\n";
700EXPECT
879b0cab 701[[hello at - line 4.
d3a7d8c7
GS
702]]
703########
704-W
a95b6808
JH
705--FILE-- abc38.pm
706package abc38 ;
d3a7d8c7
GS
707use warnings "io" ;
708use warnings::register ;
a95b6808 709sub check {
d3a7d8c7
GS
710 print "ok1\n" if warnings::enabled() ;
711 print "ok2\n" if warnings::enabled("io") ;
712 print "ok3\n" if warnings::enabled("all") ;
713}
7141;
a95b6808 715--FILE--
d3a7d8c7 716no warnings;
a95b6808
JH
717use abc38 ;
718abc38::check() ;
d3a7d8c7
GS
719EXPECT
720ok1
721ok2
722ok3
723########
724-X
a95b6808
JH
725--FILE-- abc39.pm
726package abc39 ;
d3a7d8c7
GS
727use warnings "io" ;
728use warnings::register ;
a95b6808 729sub check {
d3a7d8c7
GS
730 print "ok1\n" if !warnings::enabled() ;
731 print "ok2\n" if !warnings::enabled("io") ;
732 print "ok3\n" if !warnings::enabled("all") ;
733}
7341;
a95b6808 735--FILE--
d3a7d8c7 736no warnings;
a95b6808
JH
737use abc39 ;
738abc39::check() ;
d3a7d8c7
GS
739EXPECT
740ok1
741ok2
742ok3
743########
744
a95b6808
JH
745--FILE-- abc40.pm
746package abc40 ;
d3a7d8c7
GS
747use warnings "io" ;
748use warnings::register ;
a95b6808 749sub check {
d3a7d8c7
GS
750 print "ok1\n" if warnings::enabled() ;
751 print "ok2\n" if warnings::enabled("io") ;
752 print "ok3\n" if warnings::enabled("all") ;
753}
7541;
a95b6808 755--FILE--
d3a7d8c7 756use warnings 'all';
a95b6808
JH
757use abc40 ;
758abc40::check() ;
d3a7d8c7
GS
759EXPECT
760ok1
761ok2
762ok3
763########
764
a95b6808
JH
765--FILE-- abc41.pm
766package abc41 ;
d3a7d8c7
GS
767use warnings "io" ;
768use warnings::register ;
a95b6808 769sub check {
d3a7d8c7
GS
770 print "ok1\n" if !warnings::enabled() ;
771 print "ok2\n" if !warnings::enabled("io") ;
772 print "ok3\n" if !warnings::enabled("all") ;
773}
7741;
a95b6808
JH
775--FILE--
776use abc41 ;
d3a7d8c7 777no warnings ;
a95b6808 778abc41::check() ;
d3a7d8c7
GS
779EXPECT
780ok1
781ok2
782ok3
783########
784
a95b6808
JH
785--FILE-- abc42.pm
786package abc42 ;
d3a7d8c7
GS
787use warnings "io" ;
788use warnings::register ;
a95b6808 789sub check {
d3a7d8c7
GS
790 print "ok1\n" if !warnings::enabled() ;
791 print "ok2\n" if !warnings::enabled("io") ;
792 print "ok3\n" if !warnings::enabled("all") ;
7e6d00f8 793 warnings::warnif("my message 1") ;
a95b6808 794 warnings::warnif('abc42', "my message 2") ;
7e6d00f8
PM
795 warnings::warnif('io', "my message 3") ;
796 warnings::warnif('all', "my message 4") ;
d3a7d8c7
GS
797}
7981;
a95b6808
JH
799--FILE--
800use abc42 ;
801use warnings 'abc42';
d3a7d8c7 802no warnings ;
a95b6808 803abc42::check() ;
d3a7d8c7
GS
804EXPECT
805ok1
806ok2
807ok3
808########
809
a95b6808
JH
810--FILE-- abc43.pm
811package abc43 ;
d3a7d8c7
GS
812use warnings "io" ;
813use warnings::register ;
a95b6808
JH
814sub check {
815 print "abc43 self" . (warnings::enabled() ? "" : " not") . " enabled\n" ;
816 print "abc43 def" . (warnings::enabled('def') ? "" : " not") . " enabled\n" ;
817 print "abc43 all" . (warnings::enabled('all') ? "" : " not") . " enabled\n" ;
d3a7d8c7
GS
818}
8191;
820--FILE-- def.pm
821package def ;
822use warnings "io" ;
823use warnings::register ;
a95b6808 824sub check {
d3a7d8c7 825 print "def self" . (warnings::enabled() ? "" : " not") . " enabled\n" ;
a95b6808 826 print "def abc43" . (warnings::enabled('abc43') ? "" : " not") . " enabled\n" ;
d3a7d8c7
GS
827 print "def all" . (warnings::enabled('all') ? "" : " not") . " enabled\n" ;
828}
8291;
a95b6808
JH
830--FILE--
831use abc43 ;
d3a7d8c7 832use def ;
a95b6808
JH
833use warnings 'abc43';
834abc43::check() ;
d3a7d8c7 835def::check() ;
a95b6808 836no warnings 'abc43' ;
d3a7d8c7 837use warnings 'def' ;
a95b6808 838abc43::check() ;
d3a7d8c7 839def::check() ;
a95b6808 840use warnings 'abc43' ;
d3a7d8c7 841use warnings 'def' ;
a95b6808 842abc43::check() ;
d3a7d8c7 843def::check() ;
a95b6808 844no warnings 'abc43' ;
d3a7d8c7 845no warnings 'def' ;
a95b6808 846abc43::check() ;
d3a7d8c7
GS
847def::check() ;
848use warnings;
a95b6808 849abc43::check() ;
d3a7d8c7 850def::check() ;
a95b6808
JH
851no warnings 'abc43' ;
852abc43::check() ;
d3a7d8c7
GS
853def::check() ;
854EXPECT
a95b6808
JH
855abc43 self enabled
856abc43 def not enabled
857abc43 all not enabled
d3a7d8c7 858def self not enabled
a95b6808 859def abc43 enabled
d3a7d8c7 860def all not enabled
a95b6808
JH
861abc43 self not enabled
862abc43 def enabled
863abc43 all not enabled
d3a7d8c7 864def self enabled
a95b6808 865def abc43 not enabled
d3a7d8c7 866def all not enabled
a95b6808
JH
867abc43 self enabled
868abc43 def enabled
869abc43 all not enabled
d3a7d8c7 870def self enabled
a95b6808 871def abc43 enabled
d3a7d8c7 872def all not enabled
a95b6808
JH
873abc43 self not enabled
874abc43 def not enabled
875abc43 all not enabled
d3a7d8c7 876def self not enabled
a95b6808 877def abc43 not enabled
d3a7d8c7 878def all not enabled
a95b6808
JH
879abc43 self enabled
880abc43 def enabled
881abc43 all enabled
d3a7d8c7 882def self enabled
a95b6808 883def abc43 enabled
d3a7d8c7 884def all enabled
a95b6808
JH
885abc43 self not enabled
886abc43 def enabled
006c1a1d 887abc43 all enabled
d3a7d8c7 888def self enabled
a95b6808 889def abc43 not enabled
006c1a1d 890def all enabled
114bafba
GS
891########
892-w
a95b6808
JH
893--FILE-- abc44.pm
894package abc44 ;
114bafba
GS
895no warnings ;
896use warnings::register ;
a95b6808 897sub check {
114bafba
GS
898 print "ok1\n" if warnings::enabled() ;
899 print "ok2\n" if warnings::enabled("io") ;
900 print "ok3\n" if warnings::enabled("all") ;
901}
9021;
a95b6808
JH
903--FILE--
904use abc44 ;
905abc44::check() ;
114bafba
GS
906EXPECT
907ok1
908ok2
909ok3
910########
911-w
a95b6808
JH
912--FILE-- abc45.pm
913package abc45 ;
114bafba
GS
914no warnings ;
915use warnings::register ;
a95b6808 916sub check {
114bafba
GS
917 print "ok1\n" if !warnings::enabled() ;
918 print "ok2\n" if !warnings::enabled("io") ;
919 print "ok3\n" if !warnings::enabled("all") ;
920}
9211;
a95b6808
JH
922--FILE--
923use abc45 ;
924use warnings 'abc45';
114bafba 925no warnings ;
a95b6808 926abc45::check() ;
114bafba
GS
927EXPECT
928ok1
929ok2
930ok3
931########
932
a95b6808
JH
933--FILE-- abc46.pm
934package abc46 ;
114bafba
GS
935no warnings ;
936use warnings::register ;
a95b6808 937sub check {
114bafba
GS
938 print "ok1\n" if !warnings::enabled() ;
939 print "ok2\n" if !warnings::enabled("io") ;
940 print "ok3\n" if !warnings::enabled("all") ;
7e6d00f8 941 warnings::warnif("my message 1") ;
a95b6808 942 warnings::warnif('abc46', "my message 2") ;
7e6d00f8
PM
943 warnings::warnif('io', "my message 3") ;
944 warnings::warnif('all', "my message 4") ;
114bafba
GS
945}
9461;
a95b6808
JH
947--FILE--
948use abc46 ;
949use warnings 'abc46';
114bafba
GS
950no warnings ;
951BEGIN { $^W = 1 ; }
a95b6808 952abc46::check() ;
114bafba
GS
953EXPECT
954ok1
955ok2
956ok3
957########
958
a95b6808
JH
959--FILE-- abc47.pm
960package abc47 ;
114bafba
GS
961no warnings ;
962use warnings::register ;
a95b6808 963sub check {
114bafba
GS
964 print "ok1\n" if !warnings::enabled() ;
965 print "ok2\n" if !warnings::enabled("io") ;
966 print "ok3\n" if !warnings::enabled("all") ;
967}
9681;
a95b6808
JH
969--FILE--
970use abc47 ;
971use warnings 'abc47';
114bafba
GS
972no warnings ;
973$^W = 1 ;
a95b6808 974abc47::check() ;
114bafba
GS
975EXPECT
976ok1
977ok2
978ok3
7e6d00f8
PM
979########
980
a95b6808 981--FILE-- abc48.pm
a781f7c3 982$| = 1;
a95b6808 983package abc48 ;
7e6d00f8
PM
984no warnings ;
985use warnings::register ;
a95b6808 986sub check {
7e6d00f8
PM
987 print "ok1\n" if warnings::enabled() ;
988 print "ok2\n" if !warnings::enabled("io") ;
989 print "ok3\n" if !warnings::enabled("all") ;
a95b6808 990 print "ok4\n" if warnings::enabled("abc48") ;
7e6d00f8
PM
991 warnings::warn("my message 1") ;
992 warnings::warnif("my message 2") ;
a95b6808 993 warnings::warnif('abc48', "my message 3") ;
7e6d00f8
PM
994 warnings::warnif('io', "my message 4") ;
995 warnings::warnif('all', "my message 5") ;
996}
997sub in2 { no warnings ; check() }
998sub in1 { no warnings ; in2() }
9991;
a95b6808
JH
1000--FILE--
1001use abc48 ;
1002use warnings 'abc48';
1003abc48::in1() ;
7e6d00f8 1004EXPECT
7e6d00f8
PM
1005ok1
1006ok2
1007ok3
1008ok4
879b0cab
Z
1009my message 1 at - line 3.
1010my message 2 at - line 3.
1011my message 3 at - line 3.
7e6d00f8
PM
1012########
1013
1014--FILE-- def.pm
1015package def ;
1016no warnings ;
1017use warnings::register ;
a95b6808 1018sub check {
7e6d00f8
PM
1019 print "ok1\n" if warnings::enabled() ;
1020 print "ok2\n" if !warnings::enabled("io") ;
1021 print "ok3\n" if !warnings::enabled("all") ;
1022 print "ok4\n" if warnings::enabled("def") ;
1023 warnings::warn("my message 1") ;
1024 warnings::warnif("my message 2") ;
1025 warnings::warnif('def', "my message 3") ;
1026 warnings::warnif('io', "my message 4") ;
1027 warnings::warnif('all', "my message 5") ;
1028}
1029sub in2 { no warnings ; check() }
1030sub in1 { no warnings ; in2() }
10311;
a95b6808 1032--FILE-- abc49.pm
a781f7c3 1033$| = 1;
a95b6808 1034package abc49 ;
7e6d00f8
PM
1035use def ;
1036use warnings 'def';
1037sub in1 { def::in1() ; }
10381;
a95b6808
JH
1039--FILE--
1040use abc49 ;
7e6d00f8 1041no warnings;
a95b6808 1042abc49::in1() ;
7e6d00f8 1043EXPECT
7e6d00f8
PM
1044ok1
1045ok2
1046ok3
1047ok4
879b0cab
Z
1048my message 1 at abc49.pm line 5.
1049my message 2 at abc49.pm line 5.
1050my message 3 at abc49.pm line 5.
7e6d00f8
PM
1051########
1052
1053--FILE-- def.pm
a781f7c3 1054$| = 1;
7e6d00f8
PM
1055package def ;
1056no warnings ;
1057use warnings::register ;
1058require Exporter;
1059@ISA = qw( Exporter ) ;
1060@EXPORT = qw( in1 ) ;
a95b6808 1061sub check {
7e6d00f8
PM
1062 print "ok1\n" if warnings::enabled() ;
1063 print "ok2\n" if !warnings::enabled("io") ;
1064 print "ok3\n" if !warnings::enabled("all") ;
a95b6808 1065 print "ok4\n" if warnings::enabled("abc50") ;
7e6d00f8
PM
1066 print "ok5\n" if !warnings::enabled("def") ;
1067 warnings::warn("my message 1") ;
1068 warnings::warnif("my message 2") ;
a95b6808 1069 warnings::warnif('abc50', "my message 3") ;
7e6d00f8
PM
1070 warnings::warnif('def', "my message 4") ;
1071 warnings::warnif('io', "my message 5") ;
1072 warnings::warnif('all', "my message 6") ;
1073}
1074sub in2 { no warnings ; check() }
1075sub in1 { no warnings ; in2() }
10761;
a95b6808
JH
1077--FILE-- abc50.pm
1078package abc50 ;
7e6d00f8
PM
1079use warnings::register ;
1080use def ;
1081#@ISA = qw(def) ;
10821;
a95b6808
JH
1083--FILE--
1084use abc50 ;
7e6d00f8 1085no warnings;
a95b6808
JH
1086use warnings 'abc50';
1087abc50::in1() ;
7e6d00f8 1088EXPECT
7e6d00f8
PM
1089ok2
1090ok3
1091ok4
1092ok5
879b0cab
Z
1093my message 1 at - line 4.
1094my message 3 at - line 4.
7e6d00f8
PM
1095########
1096
1097--FILE-- def.pm
1098package def ;
1099no warnings ;
1100use warnings::register ;
1101
1102sub new
1103{
1104 my $class = shift ;
1105 bless [], $class ;
1106}
1107
a95b6808
JH
1108sub check
1109{
7e6d00f8
PM
1110 my $self = shift ;
1111 print "ok1\n" if !warnings::enabled() ;
1112 print "ok2\n" if !warnings::enabled("io") ;
1113 print "ok3\n" if !warnings::enabled("all") ;
a95b6808 1114 print "ok4\n" if warnings::enabled("abc51") ;
7e6d00f8
PM
1115 print "ok5\n" if !warnings::enabled("def") ;
1116 print "ok6\n" if warnings::enabled($self) ;
1117
1118 warnings::warn("my message 1") ;
1119 warnings::warn($self, "my message 2") ;
1120
1121 warnings::warnif("my message 3") ;
a95b6808 1122 warnings::warnif('abc51', "my message 4") ;
7e6d00f8
PM
1123 warnings::warnif('def', "my message 5") ;
1124 warnings::warnif('io', "my message 6") ;
1125 warnings::warnif('all', "my message 7") ;
1126 warnings::warnif($self, "my message 8") ;
1127}
a95b6808 1128sub in2
7e6d00f8 1129{
a95b6808 1130 no warnings ;
7e6d00f8
PM
1131 my $self = shift ;
1132 $self->check() ;
1133}
a95b6808
JH
1134sub in1
1135{
7e6d00f8
PM
1136 no warnings ;
1137 my $self = shift ;
1138 $self->in2();
1139}
11401;
a95b6808 1141--FILE-- abc51.pm
a781f7c3 1142$| = 1;
a95b6808 1143package abc51 ;
7e6d00f8
PM
1144use warnings::register ;
1145use def ;
1146@ISA = qw(def) ;
1147sub new
1148{
1149 my $class = shift ;
1150 bless [], $class ;
1151}
1152
11531;
a95b6808
JH
1154--FILE--
1155use abc51 ;
7e6d00f8 1156no warnings;
a95b6808
JH
1157use warnings 'abc51';
1158$a = new abc51 ;
7e6d00f8
PM
1159$a->in1() ;
1160print "**\n";
1161$b = new def ;
1162$b->in1() ;
1163EXPECT
7e6d00f8
PM
1164ok1
1165ok2
1166ok3
1167ok4
1168ok5
1169ok6
879b0cab
Z
1170my message 1 at - line 5.
1171my message 2 at - line 5.
1172my message 4 at - line 5.
1173my message 8 at - line 5.
7e6d00f8
PM
1174**
1175ok1
1176ok2
1177ok3
1178ok4
1179ok5
879b0cab
Z
1180my message 1 at - line 8.
1181my message 2 at - line 8.
1182my message 4 at - line 8.
4f527b71
AS
1183########
1184
572bfd36
RS
1185--FILE-- abc52.pm
1186package abc52 ;
1187use warnings::register ('foo', 'bar');
1188sub check {
1189 warnings::warnif('abc52', "hello");
1190 warnings::warnif('abc52::foo', "hello foo");
1191 warnings::warnif('abc52::bar', "hello bar");
1192}
11931;
1194--FILE--
1195use abc52;
1196use warnings("abc52", "abc52::bar");
1197abc52::check() ;
1198EXPECT
879b0cab
Z
1199hello at - line 3.
1200hello bar at - line 3.
572bfd36
RS
1201########
1202
4f527b71
AS
1203--FILE--
1204# test for bug [perl #15395]
1205my ( $warn_cat, # warning category we'll try to control
1206 $warn_msg, # the error message to catch
1207);
1208
1209package SomeModule;
1210use warnings::register;
1211
1212BEGIN {
1213 $warn_cat = __PACKAGE__;
1214 $warn_msg = 'from ' . __PACKAGE__;
1215}
1216
1217# a sub that generates a random warning
1218sub gen_warning {
1219 warnings::warnif( $warn_msg );
1220}
1221
1222package ClientModule;
1223# use SomeModule; (would go here)
1224our @CARP_NOT = ( $warn_cat ); # deliver warnings to *our* client
1225
1226# call_warner provokes a warning. It is delivered to its caller,
1227# who should also be able to control it
1228sub call_warner {
1229 SomeModule::gen_warning();
1230}
1231
1232# user
1233
1234package main;
1235my $warn_line = __LINE__ + 3; # this line should be in the error message
1236eval {
1237 use warnings FATAL => $warn_cat; # we want to know if this works
1238 ClientModule::call_warner();
1239};
1240
1241# have we caught an error, and is it the one we generated?
1242print "ok1\n" if $@ =~ /$warn_msg/;
1243
1244# does it indicate the right line?
a95b6808 1245print "ok2\n" if $@ =~ /line $warn_line/;
4f527b71
AS
1246EXPECT
1247ok1
1248ok2
68a00014
AR
1249########
1250
1251--FILE-- fatal1.pm
1252package fatal1 ;
1253no warnings ;
1254print "ok1\n" if !warnings::fatal_enabled('all') ;
1255print "ok2\n" if !warnings::fatal_enabled("syntax") ;
12561;
1257--FILE--
1258use fatal1 ;
1259EXPECT
1260ok1
1261ok2
1262########
1263
1264--FILE-- fatal2.pm
1265package fatal2;
1266no warnings ;
1267print "ok1\n" if !warnings::fatal_enabled('all') ;
1268print "ok2\n" if warnings::fatal_enabled("syntax") ;
12691;
1270--FILE--
1271use warnings FATAL => 'syntax' ;
1272use fatal2 ;
1273EXPECT
1274ok1
1275ok2
1276########
1277
1278--FILE-- fatal3.pm
1279package fatal3 ;
1280no warnings ;
1281print "ok1\n" if warnings::fatal_enabled('all') ;
1282print "ok2\n" if warnings::fatal_enabled("syntax") ;
12831;
1284--FILE--
1285use warnings FATAL => 'all' ;
1286use fatal3 ;
1287EXPECT
1288ok1
1289ok2
1290########
1291
1292--FILE-- fatal4.pm
1293package fatal4 ;
1294no warnings ;
006c1a1d 1295print "ok1\n" if warnings::fatal_enabled('all') ;
68a00014
AR
1296print "ok2\n" if warnings::fatal_enabled("void") ;
1297print "ok3\n" if !warnings::fatal_enabled("syntax") ;
12981;
1299--FILE--
1300use warnings FATAL => 'all', NONFATAL => 'syntax' ;
1301use fatal4 ;
1302EXPECT
1303ok1
1304ok2
1305ok3
006c1a1d
Z
1306########
1307{ Quux::quux(); }
1308{ no warnings; Quux::quux(); }
1309{ no warnings; use warnings "void"; Quux::quux(); }
1310{ use warnings; Quux::quux(); }
1311{ use warnings; no warnings "void"; Quux::quux(); }
1312use warnings ();
c9cfa0d2 1313BEGIN { warnings::register_categories(qw(wibble wobble wabble wubble webble)); }
006c1a1d
Z
1314package Quux {
1315 sub quux {
1316 warnings::warnif($_, "My $_ is flanged")
c9cfa0d2 1317 foreach qw(wibble wobble wabble wubble webble);
006c1a1d
Z
1318 ();
1319 }
1320}
1321{ Quux::quux(); }
1322{ no warnings; Quux::quux(); }
1323{ no warnings; use warnings "void"; Quux::quux(); }
1324{ use warnings; Quux::quux(); }
1325{ use warnings; no warnings "void"; Quux::quux(); }
c9cfa0d2 1326{ no warnings; use warnings qw(wibble wabble webble); Quux::quux(); }
006c1a1d 1327{ no warnings; use warnings qw(wobble wubble); Quux::quux(); }
c9cfa0d2 1328{ use warnings; no warnings qw(wibble wabble webble); Quux::quux(); }
006c1a1d 1329{ use warnings; no warnings qw(wobble wubble); Quux::quux(); }
c9cfa0d2
Z
1330{ use warnings qw(wubble NONFATAL void); Quux::quux(); }
1331{ use warnings qw(wubble); no warnings "void"; Quux::quux(); }
1332{ no warnings "webble"; Quux::quux(); }
1333{ use warnings qw(NONFATAL webble); Quux::quux(); }
1334print "done\n";
006c1a1d
Z
1335EXPECT
1336My wibble is flanged at - line 4.
1337My wobble is flanged at - line 4.
1338My wabble is flanged at - line 4.
1339My wubble is flanged at - line 4.
c9cfa0d2 1340My webble is flanged at - line 4.
006c1a1d
Z
1341My wibble is flanged at - line 5.
1342My wobble is flanged at - line 5.
1343My wabble is flanged at - line 5.
1344My wubble is flanged at - line 5.
c9cfa0d2 1345My webble is flanged at - line 5.
006c1a1d
Z
1346My wibble is flanged at - line 18.
1347My wobble is flanged at - line 18.
1348My wabble is flanged at - line 18.
1349My wubble is flanged at - line 18.
c9cfa0d2 1350My webble is flanged at - line 18.
006c1a1d
Z
1351My wibble is flanged at - line 19.
1352My wobble is flanged at - line 19.
1353My wabble is flanged at - line 19.
1354My wubble is flanged at - line 19.
c9cfa0d2 1355My webble is flanged at - line 19.
006c1a1d
Z
1356My wibble is flanged at - line 20.
1357My wabble is flanged at - line 20.
c9cfa0d2 1358My webble is flanged at - line 20.
006c1a1d
Z
1359My wobble is flanged at - line 21.
1360My wubble is flanged at - line 21.
1361My wobble is flanged at - line 22.
1362My wubble is flanged at - line 22.
1363My wibble is flanged at - line 23.
1364My wabble is flanged at - line 23.
c9cfa0d2
Z
1365My webble is flanged at - line 23.
1366My wubble is flanged at - line 24.
1367My wubble is flanged at - line 25.
1368My webble is flanged at - line 27.
1369done
c4583f59
FC
1370########
1371# NAME _at_level
1372select STDERR;
1373{ use warnings "utf8"; foo() }
1374sub foo { use warnings "syntax"; bar() }
1375sub bar {
1376 use warnings "unpack";
1377 local $\="\n";
1378 print "1. ", warnings::enabled_at_level("unpack", 0)||0;
1379 print "2. ", warnings::enabled_at_level("unpack", 1)||0;
1380 print "3. ", warnings::enabled_at_level("unpack", 2)||0;
1381 print "4. ", warnings::enabled_at_level("syntax", 0)||0;
1382 print "5. ", warnings::enabled_at_level("syntax", 1)||0;
1383 print "6. ", warnings::enabled_at_level("syntax", 2)||0;
1384 print "7. ", warnings::enabled_at_level("utf8", 0)||0;
1385 print "8. ", warnings::enabled_at_level("utf8", 1)||0;
1386 print "9. ", warnings::enabled_at_level("utf8", 2)||0;
1387 warnings::warn_at_level ("misc",0,"A mandatory foo warning");
1388 warnings::warn_at_level ("misc",1,"A mandatory top-level warning");
1389 warnings::warnif_at_level("syntax",0,"A conditional syntax warning");
1390 warnings::warnif_at_level("syntax",1,"A conditional syntax warning");
1391 warnings::warnif_at_level("utf8",0,"A conditional utf8 warning");
1392 warnings::warnif_at_level("utf8",1,"A conditional utf8 warning");
1393}
1394{ use warnings "syntax"; use warnings FATAL => "utf8"; foo2() }
1395sub foo2 {
1396 use warnings FATAL => "syntax"; use warnings "utf8"; bar2()
1397}
1398sub bar2 {
1399 $\="\n";
1400 print "10. ", warnings::fatal_enabled_at_level("syntax", 0)||0;
1401 print "11. ", warnings::fatal_enabled_at_level("syntax", 1)||0;
1402 print "12. ", warnings::fatal_enabled_at_level("utf8", 0)||0;
1403 print "13. ", warnings::fatal_enabled_at_level("utf8", 1)||0;
1404 undef $\;
1405 eval { warnings::warn_at_level ("syntax",1,"A fatal warning") };
1406 print "Died: $@" if $@;
1407 eval { warnings::warnif_at_level("syntax",1,"A fatal syntax warning") };
1408 print "Died: $@" if $@;
1409 eval { warnings::warnif_at_level("syntax",2,"A syntax warning") };
1410 print "Died: $@" if $@;
1411 eval { warnings::warnif_at_level("utf8",1,"A utf8 warning") };
1412 print "Died: $@" if $@;
1413 eval { warnings::warnif_at_level("utf8",2,"A fatal utf8 warning") };
1414 print "Died: $@" if $@;
1415}
1416EXPECT
14171. 0
14182. 0
14193. 0
14204. 1
14215. 0
14226. 0
14237. 0
14248. 1
14259. 0
1426A mandatory foo warning at - line 3.
1427A mandatory top-level warning at - line 2.
1428A conditional syntax warning at - line 3.
1429A conditional utf8 warning at - line 2.
143010. 1
143111. 0
143212. 0
143313. 1
1434Died: A fatal warning at - line 25.
1435Died: A fatal syntax warning at - line 25.
1436A syntax warning at - line 23.
1437A utf8 warning at - line 25.
1438Died: A fatal utf8 warning at - line 23.
a7caeb5e
FC
1439########
1440# NAME _at_level with filehandle
1441use warnings;
1442# Create temp file for testing handles.
1443open oUt, ">tmp" or die $!;
1444print oUt "foo\nbar\n";
1445close oUt;
1446sub bimp {
1447 open FH, "tmp";
1448 <FH>; <FH>;
1449 warnings::warn_at_level("syntax", 0, "Foo warning");
1450 close FH;
1451 warnings::warn_at_level("syntax", 0, "Bar warning");
1452};
1453bimp;
1454EXPECT
1455Foo warning at - line 13, <FH> line 2.
1456Bar warning at - line 13.
a0da1e16
FC
1457########
1458# NAME _at_level with chunky filehandle
1459use warnings;
1460# Create temp file for testing handles.
1461open oUt, ">tmp" or die $!;
1462print oUt "foo7bar7";
1463close oUt;
1464sub bimp {
1465 open FH, "tmp";
1466 $/ = 7;
1467 <FH>; <FH>;
1468 warnings::warn_at_level("syntax", 0, "Foo warning");
1469 close FH;
1470 warnings::warn_at_level("syntax", 0, "Bar warning");
1471};
1472bimp;
1473EXPECT
1474Foo warning at - line 14, <FH> chunk 2.
1475Bar warning at - line 14.