This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
final touches for lexical warnings (from Paul Marquess)
[perl5.git] / t / pragma / warn / 9enabled
1 Check warnings::enabled & warnings::warn
2
3 __END__
4
5 --FILE-- abc.pm
6 package abc ;
7 use warnings "io" ;
8 print "ok1\n" if ! warnings::enabled('all') ;
9 print "ok2\n" if ! warnings::enabled("io") ;
10 1;
11 --FILE-- 
12 no warnings;
13 use abc ;
14 EXPECT
15 ok1
16 ok2
17 ########
18
19 --FILE-- abc.pm
20 package abc ;
21 no warnings ;
22 print "ok1\n" if !warnings::enabled('all') ;
23 print "ok2\n" if warnings::enabled("syntax") ;
24 1;
25 --FILE-- 
26 use warnings 'syntax' ;
27 use abc ;
28 EXPECT
29 ok1
30 ok2
31 ########
32
33 --FILE-- abc.pm
34 package abc ;
35 use warnings 'syntax' ;
36 print "ok1\n" if   warnings::enabled('io') ;
37 print "ok2\n" if ! warnings::enabled("syntax") ;
38 1;
39 --FILE-- 
40 use warnings 'io' ;
41 use abc ;
42 EXPECT
43 ok1
44 ok2
45 ########
46
47 --FILE-- abc
48 no warnings ;
49 print "ok1\n" if !warnings::enabled('all') ;
50 print "ok2\n" if warnings::enabled("syntax") ;
51 1;
52 --FILE-- 
53 use warnings 'syntax' ;
54 require "abc" ;
55 EXPECT
56 ok1
57 ok2
58 ########
59
60 --FILE-- abc
61 use warnings 'syntax' ;
62 print "ok1\n" if ! warnings::enabled('all') ;
63 print "ok2\n" if ! warnings::enabled("syntax") ;
64 print "ok3\n" if   warnings::enabled("io") ;
65 1;
66 --FILE-- 
67 use warnings 'io' ;
68 require "abc" ;
69 EXPECT
70 ok1
71 ok2
72 ok3
73 ########
74
75 --FILE-- abc.pm
76 package abc ;
77 no warnings ;
78 sub check {
79   print "ok1\n" if !warnings::enabled('all') ;
80   print "ok2\n" if warnings::enabled("syntax") ;
81 }
82 1;
83 --FILE-- 
84 use warnings 'syntax' ;
85 use abc ;
86 abc::check() ;
87 EXPECT
88 ok1
89 ok2
90 ########
91
92 --FILE-- abc.pm
93 package abc ;
94 use warnings 'io' ;
95 sub check {
96   print "ok1\n" if ! warnings::enabled('all') ;
97   print "ok2\n" if   warnings::enabled("syntax") ;
98   print "ok3\n" if ! warnings::enabled("io") ;
99 }
100 1;
101 --FILE-- 
102 use warnings 'syntax' ;
103 use abc ;
104 abc::check() ;
105 EXPECT
106 ok1
107 ok2
108 ok3
109 ########
110
111 --FILE-- abc
112 package abc ;
113 no warnings ;
114 sub check {
115   print "ok1\n" if !warnings::enabled('all') ;
116   print "ok2\n" if warnings::enabled("syntax") ;
117 }
118 1;
119 --FILE-- 
120 use warnings 'syntax' ;
121 require "abc" ;
122 abc::check() ;
123 EXPECT
124 ok1
125 ok2
126 ########
127
128 --FILE-- abc
129 package abc ;
130 use warnings 'io' ;
131 sub check {
132   print "ok1\n" if ! warnings::enabled('all') ;
133   print "ok2\n" if   warnings::enabled("syntax") ;
134   print "ok3\n" if ! warnings::enabled("io") ;
135 }
136 1;
137 --FILE-- 
138 use warnings 'syntax' ;
139 require "abc" ;
140 abc::check() ;
141 EXPECT
142 ok1
143 ok2
144 ok3
145 ########
146
147 --FILE-- abc.pm
148 package abc ;
149 use warnings "io" ;
150 print "ok1\n" if ! warnings::enabled('all') ;
151 print "ok2\n" if ! warnings::enabled("io") ;
152 1;
153 --FILE-- def.pm
154 no warnings;
155 use abc ;
156 1;
157 --FILE-- 
158 use warnings;
159 use def ;
160 EXPECT
161 ok1
162 ok2
163 ########
164
165 --FILE-- abc.pm
166 package abc ;
167 no warnings ;
168 print "ok1\n" if ! warnings::enabled('all') ;
169 print "ok2\n" if warnings::enabled("syntax") ;
170 print "ok3\n" if !warnings::enabled("io") ;
171 1;
172 --FILE-- def.pm
173 use warnings 'syntax' ;
174 print "ok4\n" if !warnings::enabled('all') ;
175 print "ok5\n" if warnings::enabled("io") ;
176 use abc ;
177 1;
178 --FILE--
179 use warnings 'io' ;
180 use def ;
181 EXPECT
182 ok1
183 ok2
184 ok3
185 ok4
186 ok5
187 ########
188
189 --FILE-- abc.pm
190 package abc ;
191 no warnings ;
192 sub check {
193   print "ok1\n" if !warnings::enabled('all') ;
194   print "ok2\n" if warnings::enabled("syntax") ;
195 }
196 1;
197 --FILE-- 
198 use warnings 'syntax' ;
199 use abc ;
200 eval { abc::check() ; };
201 print $@ ;
202 EXPECT
203 ok1
204 ok2
205 ########
206
207 --FILE-- abc.pm
208 package abc ;
209 use warnings 'io' ;
210 sub check {
211   print "ok1\n" if ! warnings::enabled('all') ;
212   print "ok2\n" if   warnings::enabled("syntax") ;
213   print "ok3\n" if ! warnings::enabled("io") ;
214 }
215 1;
216 --FILE-- 
217 use warnings 'syntax' ;
218 use abc ;
219 eval { abc::check() ; } ;
220 print $@ ;
221 EXPECT
222 ok1
223 ok2
224 ok3
225 ########
226
227 --FILE-- abc
228 package abc ;
229 no warnings ;
230 sub check {
231   print "ok1\n" if !warnings::enabled('all') ;
232   print "ok2\n" if warnings::enabled("syntax") ;
233 }
234 1;
235 --FILE-- 
236 use warnings 'syntax' ;
237 require "abc" ;
238 eval { abc::check() ; } ;
239 print $@ ;
240 EXPECT
241 ok1
242 ok2
243 ########
244
245 --FILE-- abc
246 package abc ;
247 use warnings 'io' ;
248 sub check {
249   print "ok1\n" if !warnings::enabled('all') ;
250   print "ok2\n" if warnings::enabled("syntax") ;
251   print "ok3\n" if warnings::enabled("io") ;
252 }
253 1;
254 --FILE-- 
255 use warnings 'syntax' ;
256 require "abc" ;
257 eval { use warnings 'io' ; abc::check() ; };
258 abc::check() ; 
259 print $@ ;
260 EXPECT
261 ok1
262 ok2
263 ok3
264 ok1
265 ok2
266 ########
267
268 --FILE-- abc.pm
269 package abc ;
270 use warnings 'io' ;
271 sub check {
272   print "ok1\n" if ! warnings::enabled('all') ;
273   print "ok2\n" if  warnings::enabled("syntax") ;
274   print "ok3\n" if ! warnings::enabled("io") ;
275 }
276 1;
277 --FILE-- 
278 use warnings 'syntax' ;
279 use abc ;
280 sub fred { abc::check() }
281 fred() ;
282 EXPECT
283 ok1
284 ok2
285 ok3
286 ########
287
288 --FILE-- abc.pm
289 package abc ;
290 use warnings 'io' ;
291 sub check {
292   print "ok1\n" if  ! warnings::enabled('all') ;
293 }
294 1;
295 --FILE-- 
296 use warnings 'syntax' ;
297 use abc ;
298 sub fred { no warnings ; abc::check() }
299 fred() ;
300 EXPECT
301 ok1
302 ########
303
304 --FILE-- abc.pm
305 package abc ;
306 use warnings 'misc' ;
307 sub check {
308   print "ok1\n" if  ! warnings::enabled('all') ;
309   print "ok2\n" if  warnings::enabled("syntax") ;
310   print "ok3\n" if  warnings::enabled("io") ;
311   print "ok4\n" if  ! warnings::enabled("misc") ;
312 }
313 1;
314 --FILE-- 
315 use warnings 'syntax' ;
316 use abc ;
317 sub fred { use warnings 'io'  ; abc::check() }
318 fred() ;
319 EXPECT
320 ok1
321 ok2
322 ok3
323 ok4
324 ########
325
326 # check warnings::warn
327 use warnings ;
328 eval { warnings::warn() } ;
329 print $@ ;
330 eval { warnings::warn("fred", "joe") } ;
331 print $@ ;
332 EXPECT
333 Usage: warnings::warn([category,] 'message') at - line 4
334 unknown warnings category 'fred' at - line 6
335         require 0 called at - line 6
336 ########
337
338 --FILE-- abc.pm
339 package abc ;
340 use warnings 'misc' ;
341 sub check { warnings::warn("io", "hello") }
342 1;
343 --FILE--
344 use warnings "io" ;
345 use abc;
346 abc::check() ;
347 EXPECT
348 hello at - line 3
349 ########
350
351 --FILE-- abc.pm
352 package abc ;
353 use warnings 'misc' ;
354 sub check { warnings::warn("misc", "hello") }
355 1;
356 --FILE--
357 use warnings "io" ;
358 use abc;
359 abc::check() ;
360 EXPECT
361 hello at - line 3
362 ########
363
364 --FILE-- abc.pm
365 package abc ;
366 use warnings 'misc' ;
367 sub check { warnings::warn("io", "hello") }
368 1;
369 --FILE--
370 use warnings qw( FATAL deprecated ) ;
371 use abc;
372 eval { abc::check() ; } ;
373 print "[[$@]]\n";
374 EXPECT
375 hello at - line 3
376 [[]]
377 ########
378
379 --FILE-- abc.pm
380 package abc ;
381 use warnings 'misc' ;
382 sub check { warnings::warn("io", "hello") }
383 1;
384 --FILE--
385 use warnings qw( FATAL io ) ;
386 use abc;
387 eval { abc::check() ; } ;
388 print "[[$@]]\n";
389 EXPECT
390 [[hello at - line 3
391 ]]
392 ########
393 -W
394 --FILE-- abc.pm
395 package abc ;
396 use warnings "io" ;
397 print "ok1\n" if warnings::enabled("io") ;
398 print "ok2\n" if warnings::enabled("all") ;
399 1;
400 --FILE-- 
401 no warnings;
402 use abc ;
403 EXPECT
404 ok1
405 ok2
406 ########
407 -X
408 --FILE-- abc.pm
409 package abc ;
410 use warnings "io" ;
411 print "ok1\n" if !warnings::enabled("io") ;
412 print "ok2\n" if !warnings::enabled("all") ;
413 1;
414 --FILE-- 
415 use warnings;
416 use abc ;
417 EXPECT
418 ok1
419 ok2
420 ########
421
422 --FILE-- abc.pm
423 package abc ;
424 no warnings ;
425 sub check {
426   print "ok\n" if ! warnings::enabled() ;
427 }
428 1;
429 --FILE-- 
430 use warnings 'syntax' ;
431 use abc ;
432 abc::check() ;
433 EXPECT
434 package 'abc' not registered for warnings at - line 3
435 ########
436
437 --FILE-- abc.pm
438 package abc ;
439 use warnings 'io' ;
440 use warnings::register ;
441 sub check {
442   print "ok1\n" if  warnings::enabled ;
443   print "ok2\n" if  warnings::enabled("syntax") ;
444   print "ok3\n" if !warnings::enabled("io") ;
445 }
446 1;
447 --FILE-- 
448 use warnings 'syntax' ;
449 use abc ;
450 use warnings 'abc' ;
451 abc::check() ;
452 EXPECT
453 ok1
454 ok2
455 ok3
456 ########
457
458 --FILE-- abc.pm
459 package abc ;
460 use warnings 'io' ;
461 use warnings::register ;
462 sub check {
463   print "ok1\n" if !warnings::enabled ;
464   print "ok2\n" if  warnings::enabled("syntax") ;
465   print "ok3\n" if !warnings::enabled("io") ;
466 }
467 1;
468 --FILE-- 
469 use warnings 'syntax' ;
470 use abc ;
471 abc::check() ;
472 EXPECT
473 ok1
474 ok2
475 ok3
476 ########
477
478 --FILE-- abc.pm
479 package abc ;
480 no warnings ;
481 use warnings::register ;
482 sub check {
483   print "ok1\n" if warnings::enabled ;
484   print "ok2\n" if warnings::enabled("syntax") ;
485 }
486 1;
487 --FILE-- 
488 use warnings 'syntax' ;
489 use abc ;
490 use warnings 'abc' ;
491 eval { abc::check() ; };
492 print $@ ;
493 EXPECT
494 ok1
495 ok2
496 ########
497
498 --FILE-- abc.pm
499 package abc ;
500 use warnings 'io' ;
501 use warnings::register ;
502 sub check {
503   print "ok1\n" if !warnings::enabled ;
504   print "ok2\n" if  warnings::enabled("syntax") ;
505   print "ok3\n" if !warnings::enabled("io") ;
506 }
507 1;
508 --FILE-- 
509 use warnings 'syntax' ;
510 use abc ;
511 eval { abc::check() ; } ;
512 print $@ ;
513 EXPECT
514 ok1
515 ok2
516 ok3
517 ########
518
519 --FILE-- abc.pm
520 package abc ;
521 use warnings 'io' ;
522 use warnings::register ;
523 sub check {
524   print "ok1\n" if  warnings::enabled ;
525   print "ok2\n" if  warnings::enabled("syntax") ;
526   print "ok3\n" if !warnings::enabled("io") ;
527 }
528 1;
529 --FILE-- 
530 use warnings 'syntax' ;
531 use abc ;
532 use warnings 'abc' ;
533 sub fred { abc::check() }
534 fred() ;
535 EXPECT
536 ok1
537 ok2
538 ok3
539 ########
540
541 --FILE-- abc.pm
542 package abc ;
543 use warnings 'io' ;
544 use warnings::register ;
545 sub check {
546   print "ok1\n" if  ! warnings::enabled ;
547 }
548 1;
549 --FILE-- 
550 use warnings 'syntax' ;
551 use abc ;
552 sub fred { no warnings ; abc::check() }
553 fred() ;
554 EXPECT
555 ok1
556 ########
557
558 --FILE-- abc.pm
559 package abc ;
560 use warnings 'misc' ;
561 use warnings::register;
562 sub check {
563   print "ok1\n" if  warnings::enabled ;
564   print "ok2\n" if  warnings::enabled("syntax") ;
565   print "ok3\n" if  warnings::enabled("io") ;
566   print "ok4\n" if  ! warnings::enabled("misc") ;
567 }
568 1;
569 --FILE-- 
570 use warnings 'syntax' ;
571 use abc ;
572 use warnings 'abc' ;
573 sub fred { use warnings 'io'  ; abc::check() }
574 fred() ;
575 EXPECT
576 ok1
577 ok2
578 ok3
579 ok4
580 ########
581
582 --FILE-- abc.pm
583 package abc ;
584 use warnings 'misc' ;
585 use warnings::register;
586 sub check { warnings::warn("hello") }
587 1;
588 --FILE--
589 use abc;
590 use warnings "abc" ;
591 abc::check() ;
592 EXPECT
593 hello at - line 3
594 ########
595
596 --FILE-- abc.pm
597 package abc ;
598 use warnings::register;
599 sub check { warnings::warn("hello") }
600 1;
601 --FILE--
602 use abc;
603 abc::check() ;
604 EXPECT
605 hello at - line 2
606 ########
607
608 --FILE-- abc.pm
609 package abc ;
610 use warnings::register ;
611 sub check { warnings::warn("hello") }
612 1;
613 --FILE--
614 use abc;
615 use warnings qw( FATAL deprecated ) ;
616 eval { abc::check() ; } ;
617 print "[[$@]]\n";
618 EXPECT
619 hello at - line 3
620 [[]]
621 ########
622
623 --FILE-- abc.pm
624 package abc ;
625 use warnings::register ;
626 sub check { warnings::warn("hello") }
627 1;
628 --FILE--
629 use abc;
630 use warnings qw( FATAL abc ) ;
631 eval { abc::check() ; } ;
632 print "[[$@]]\n";
633 EXPECT
634 [[hello at - line 3
635 ]]
636 ########
637 -W
638 --FILE-- abc.pm
639 package abc ;
640 use warnings "io" ;
641 use warnings::register ;
642 sub check { 
643   print "ok1\n" if warnings::enabled() ;
644   print "ok2\n" if warnings::enabled("io") ;
645   print "ok3\n" if warnings::enabled("all") ;
646 }
647 1;
648 --FILE-- 
649 no warnings;
650 use abc ;
651 abc::check() ;
652 EXPECT
653 ok1
654 ok2
655 ok3
656 ########
657 -X
658 --FILE-- abc.pm
659 package abc ;
660 use warnings "io" ;
661 use warnings::register ;
662 sub check { 
663   print "ok1\n" if !warnings::enabled() ;
664   print "ok2\n" if !warnings::enabled("io") ;
665   print "ok3\n" if !warnings::enabled("all") ;
666 }
667 1;
668 --FILE-- 
669 no warnings;
670 use abc ;
671 abc::check() ;
672 EXPECT
673 ok1
674 ok2
675 ok3
676 ########
677
678 --FILE-- abc.pm
679 package abc ;
680 use warnings "io" ;
681 use warnings::register ;
682 sub check { 
683   print "ok1\n" if warnings::enabled() ;
684   print "ok2\n" if warnings::enabled("io") ;
685   print "ok3\n" if warnings::enabled("all") ;
686 }
687 1;
688 --FILE-- 
689 use warnings 'all';
690 use abc ;
691 abc::check() ;
692 EXPECT
693 ok1
694 ok2
695 ok3
696 ########
697
698 --FILE-- abc.pm
699 package abc ;
700 use warnings "io" ;
701 use warnings::register ;
702 sub check { 
703   print "ok1\n" if !warnings::enabled() ;
704   print "ok2\n" if !warnings::enabled("io") ;
705   print "ok3\n" if !warnings::enabled("all") ;
706 }
707 1;
708 --FILE-- 
709 use abc ;
710 no warnings ;
711 abc::check() ;
712 EXPECT
713 ok1
714 ok2
715 ok3
716 ########
717
718 --FILE-- abc.pm
719 package abc ;
720 use warnings "io" ;
721 use warnings::register ;
722 sub check { 
723   print "ok1\n" if !warnings::enabled() ;
724   print "ok2\n" if !warnings::enabled("io") ;
725   print "ok3\n" if !warnings::enabled("all") ;
726 }
727 1;
728 --FILE-- 
729 use abc ;
730 use warnings 'abc';
731 no warnings ;
732 abc::check() ;
733 EXPECT
734 ok1
735 ok2
736 ok3
737 ########
738
739 --FILE-- abc.pm
740 package abc ;
741 use warnings "io" ;
742 use warnings::register ;
743 sub check { 
744   print "abc self" . (warnings::enabled() ? "" : " not") . " enabled\n" ;
745   print "abc def"  . (warnings::enabled('def') ? "" : " not") . " enabled\n" ;
746   print "abc all"  . (warnings::enabled('all') ? "" : " not") . " enabled\n" ;
747 }
748 1;
749 --FILE-- def.pm
750 package def ;
751 use warnings "io" ;
752 use warnings::register ;
753 sub check { 
754   print "def self" . (warnings::enabled() ? "" : " not") . " enabled\n" ;
755   print "def abc"  . (warnings::enabled('abc') ? "" : " not") . " enabled\n" ;
756   print "def all"  . (warnings::enabled('all') ? "" : " not") . " enabled\n" ;
757 }
758 1;
759 --FILE-- 
760 use abc ;
761 use def ;
762 use warnings 'abc';
763 abc::check() ;
764 def::check() ;
765 no warnings 'abc'  ;
766 use warnings 'def'  ;
767 abc::check() ;
768 def::check() ;
769 use warnings 'abc'  ;
770 use warnings 'def'  ;
771 abc::check() ;
772 def::check() ;
773 no warnings 'abc'  ;
774 no warnings 'def'  ;
775 abc::check() ;
776 def::check() ;
777 use warnings;
778 abc::check() ;
779 def::check() ;
780 no warnings 'abc' ;
781 abc::check() ;
782 def::check() ;
783 EXPECT
784 abc self enabled
785 abc def not enabled
786 abc all not enabled
787 def self not enabled
788 def abc enabled
789 def all not enabled
790 abc self not enabled
791 abc def enabled
792 abc all not enabled
793 def self enabled
794 def abc not enabled
795 def all not enabled
796 abc self enabled
797 abc def enabled
798 abc all not enabled
799 def self enabled
800 def abc enabled
801 def all not enabled
802 abc self not enabled
803 abc def not enabled
804 abc all not enabled
805 def self not enabled
806 def abc not enabled
807 def all not enabled
808 abc self enabled
809 abc def enabled
810 abc all enabled
811 def self enabled
812 def abc enabled
813 def all enabled
814 abc self not enabled
815 abc def enabled
816 abc all not enabled
817 def self enabled
818 def abc not enabled
819 def all not enabled