This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
More test fixups for #11537.
[perl5.git] / t / lib / warnings / 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 package def;
155 no warnings;
156 use abc ;
157 1;
158 --FILE-- 
159 use warnings;
160 use def ;
161 EXPECT
162 ok1
163 ok2
164 ########
165
166 --FILE-- abc.pm
167 package abc ;
168 no warnings ;
169 print "ok1\n" if ! warnings::enabled('all') ;
170 print "ok2\n" if warnings::enabled("syntax") ;
171 print "ok3\n" if !warnings::enabled("io") ;
172 1;
173 --FILE-- def.pm
174 use warnings 'syntax' ;
175 print "ok4\n" if !warnings::enabled('all') ;
176 print "ok5\n" if warnings::enabled("io") ;
177 use abc ;
178 1;
179 --FILE--
180 use warnings 'io' ;
181 use def ;
182 EXPECT
183 ok1
184 ok2
185 ok3
186 ok4
187 ok5
188 ########
189
190 --FILE-- abc.pm
191 package abc ;
192 no warnings ;
193 sub check {
194   print "ok1\n" if !warnings::enabled('all') ;
195   print "ok2\n" if warnings::enabled("syntax") ;
196 }
197 1;
198 --FILE-- 
199 use warnings 'syntax' ;
200 use abc ;
201 eval { abc::check() ; };
202 print $@ ;
203 EXPECT
204 ok1
205 ok2
206 ########
207
208 --FILE-- abc.pm
209 package abc ;
210 use warnings 'io' ;
211 sub check {
212   print "ok1\n" if ! warnings::enabled('all') ;
213   print "ok2\n" if   warnings::enabled("syntax") ;
214   print "ok3\n" if ! warnings::enabled("io") ;
215 }
216 1;
217 --FILE-- 
218 use warnings 'syntax' ;
219 use abc ;
220 eval { abc::check() ; } ;
221 print $@ ;
222 EXPECT
223 ok1
224 ok2
225 ok3
226 ########
227
228 --FILE-- abc
229 package abc ;
230 no warnings ;
231 sub check {
232   print "ok1\n" if !warnings::enabled('all') ;
233   print "ok2\n" if warnings::enabled("syntax") ;
234 }
235 1;
236 --FILE-- 
237 use warnings 'syntax' ;
238 require "abc" ;
239 eval { abc::check() ; } ;
240 print $@ ;
241 EXPECT
242 ok1
243 ok2
244 ########
245
246 --FILE-- abc
247 package abc ;
248 use warnings 'io' ;
249 sub check {
250   print "ok1\n" if !warnings::enabled('all') ;
251   print "ok2\n" if warnings::enabled("syntax") ;
252   print "ok3\n" if warnings::enabled("io") ;
253 }
254 1;
255 --FILE-- 
256 use warnings 'syntax' ;
257 require "abc" ;
258 eval { use warnings 'io' ; abc::check() ; };
259 abc::check() ; 
260 print $@ ;
261 EXPECT
262 ok1
263 ok2
264 ok3
265 ok1
266 ok2
267 ########
268
269 --FILE-- abc.pm
270 package abc ;
271 use warnings 'io' ;
272 sub check {
273   print "ok1\n" if ! warnings::enabled('all') ;
274   print "ok2\n" if  warnings::enabled("syntax") ;
275   print "ok3\n" if ! warnings::enabled("io") ;
276 }
277 1;
278 --FILE-- 
279 use warnings 'syntax' ;
280 use abc ;
281 sub fred { abc::check() }
282 fred() ;
283 EXPECT
284 ok1
285 ok2
286 ok3
287 ########
288
289 --FILE-- abc.pm
290 package abc ;
291 use warnings 'io' ;
292 sub check {
293   print "ok1\n" if  ! warnings::enabled('all') ;
294 }
295 1;
296 --FILE-- 
297 use warnings 'syntax' ;
298 use abc ;
299 sub fred { no warnings ; abc::check() }
300 fred() ;
301 EXPECT
302 ok1
303 ########
304
305 --FILE-- abc.pm
306 package abc ;
307 use warnings 'misc' ;
308 sub check {
309   print "ok1\n" if  ! warnings::enabled('all') ;
310   print "ok2\n" if  warnings::enabled("syntax") ;
311   print "ok3\n" if  warnings::enabled("io") ;
312   print "ok4\n" if  ! warnings::enabled("misc") ;
313 }
314 1;
315 --FILE-- 
316 use warnings 'syntax' ;
317 use abc ;
318 sub fred { use warnings 'io'  ; abc::check() }
319 fred() ;
320 EXPECT
321 ok1
322 ok2
323 ok3
324 ok4
325 ########
326
327 # check warnings::warn
328 use warnings ;
329 eval { warnings::warn() } ;
330 print $@ ;
331 eval { warnings::warn("fred", "joe") } ;
332 print $@ ;
333 EXPECT
334 Usage: warnings::warn([category,] 'message') at - line 4
335 unknown warnings category 'fred' at - line 6
336 ########
337
338 # check warnings::warnif
339 use warnings ;
340 eval { warnings::warnif() } ;
341 print $@ ;
342 eval { warnings::warnif("fred", "joe") } ;
343 print $@ ;
344 EXPECT
345 Usage: warnings::warnif([category,] 'message') at - line 4
346 unknown warnings category 'fred' at - line 6
347 ########
348
349 --FILE-- abc.pm
350 package abc ;
351 use warnings 'misc' ;
352 sub check { warnings::warn("io", "hello") }
353 1;
354 --FILE--
355 use warnings "io" ;
356 use abc;
357 abc::check() ;
358 EXPECT
359 hello at - line 3
360 ########
361
362 --FILE-- abc.pm
363 package abc ;
364 use warnings 'misc' ;
365 sub check { warnings::warn("misc", "hello") }
366 1;
367 --FILE--
368 use warnings "io" ;
369 use abc;
370 abc::check() ;
371 EXPECT
372 hello at - line 3
373 ########
374
375 --FILE-- abc.pm
376 package abc ;
377 use warnings 'misc' ;
378 sub check { warnings::warn("io", "hello") }
379 1;
380 --FILE--
381 use warnings qw( FATAL deprecated ) ;
382 use abc;
383 eval { abc::check() ; } ;
384 print "[[$@]]\n";
385 EXPECT
386 hello at - line 3
387         eval {...} called at - line 3
388 [[]]
389 ########
390
391 --FILE-- abc.pm
392 package abc ;
393 use warnings 'misc' ;
394 sub check { warnings::warn("io", "hello") }
395 1;
396 --FILE--
397 use warnings qw( FATAL io ) ;
398 use abc;
399 eval { abc::check() ; } ;
400 print "[[$@]]\n";
401 EXPECT
402 [[hello at - line 3
403         eval {...} called at - line 3
404 ]]
405 ########
406 -W
407 --FILE-- abc.pm
408 package abc ;
409 use warnings "io" ;
410 print "ok1\n" if warnings::enabled("io") ;
411 print "ok2\n" if warnings::enabled("all") ;
412 1;
413 --FILE-- 
414 no warnings;
415 use abc ;
416 EXPECT
417 ok1
418 ok2
419 ########
420 -X
421 --FILE-- abc.pm
422 package abc ;
423 use warnings "io" ;
424 print "ok1\n" if !warnings::enabled("io") ;
425 print "ok2\n" if !warnings::enabled("all") ;
426 1;
427 --FILE-- 
428 use warnings;
429 use abc ;
430 EXPECT
431 ok1
432 ok2
433 ########
434
435 --FILE-- abc.pm
436 package abc ;
437 no warnings ;
438 sub check {
439   print "ok\n" if ! warnings::enabled() ;
440 }
441 1;
442 --FILE-- 
443 use warnings 'syntax' ;
444 use abc ;
445 abc::check() ;
446 EXPECT
447 package 'abc' not registered for warnings at abc.pm line 4
448 ########
449
450 --FILE-- abc.pm
451 package abc ;
452 no warnings ;
453 sub check {
454   warnings::warn("fred") ;
455 }
456 1;
457 --FILE-- 
458 use warnings 'syntax' ;
459 use abc ;
460 abc::check() ;
461 EXPECT
462 package 'abc' not registered for warnings at abc.pm line 4
463 ########
464
465 --FILE-- abc.pm
466 package abc ;
467 no warnings ;
468 sub check {
469   warnings::warnif("fred") ;
470 }
471 1;
472 --FILE-- 
473 use warnings 'syntax' ;
474 use abc ;
475 abc::check() ;
476 EXPECT
477 package 'abc' not registered for warnings at abc.pm line 4
478 ########
479
480 --FILE-- abc.pm
481 package abc ;
482 use warnings 'io' ;
483 use warnings::register ;
484 sub check {
485   print "ok1\n" if  warnings::enabled ;
486   print "ok2\n" if  warnings::enabled("syntax") ;
487   print "ok3\n" if !warnings::enabled("io") ;
488 }
489 1;
490 --FILE-- 
491 use warnings 'syntax' ;
492 use abc ;
493 use warnings 'abc' ;
494 abc::check() ;
495 EXPECT
496 ok1
497 ok2
498 ok3
499 ########
500
501 --FILE-- abc.pm
502 package abc ;
503 use warnings 'io' ;
504 use warnings::register ;
505 sub check {
506   print "ok1\n" if !warnings::enabled ;
507   print "ok2\n" if  warnings::enabled("syntax") ;
508   print "ok3\n" if !warnings::enabled("io") ;
509 }
510 1;
511 --FILE-- 
512 use warnings 'syntax' ;
513 use abc ;
514 abc::check() ;
515 EXPECT
516 ok1
517 ok2
518 ok3
519 ########
520
521 --FILE-- abc.pm
522 package abc ;
523 no warnings ;
524 use warnings::register ;
525 sub check {
526   print "ok1\n" if warnings::enabled ;
527   print "ok2\n" if warnings::enabled("syntax") ;
528 }
529 1;
530 --FILE-- 
531 use warnings 'syntax' ;
532 use abc ;
533 use warnings 'abc' ;
534 eval { abc::check() ; };
535 print $@ ;
536 EXPECT
537 ok1
538 ok2
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   print "ok2\n" if  warnings::enabled("syntax") ;
548   print "ok3\n" if !warnings::enabled("io") ;
549 }
550 1;
551 --FILE-- 
552 use warnings 'syntax' ;
553 use abc ;
554 eval { abc::check() ; } ;
555 print $@ ;
556 EXPECT
557 ok1
558 ok2
559 ok3
560 ########
561
562 --FILE-- abc.pm
563 package abc ;
564 use warnings 'io' ;
565 use warnings::register ;
566 sub check {
567   print "ok1\n" if  warnings::enabled ;
568   print "ok2\n" if  warnings::enabled("syntax") ;
569   print "ok3\n" if !warnings::enabled("io") ;
570 }
571 1;
572 --FILE-- 
573 use warnings 'syntax' ;
574 use abc ;
575 use warnings 'abc' ;
576 sub fred { abc::check() }
577 fred() ;
578 EXPECT
579 ok1
580 ok2
581 ok3
582 ########
583
584 --FILE-- abc.pm
585 package abc ;
586 use warnings 'io' ;
587 use warnings::register ;
588 sub check {
589   print "ok1\n" if  ! warnings::enabled ;
590 }
591 1;
592 --FILE-- 
593 use warnings 'syntax' ;
594 use abc ;
595 sub fred { no warnings ; abc::check() }
596 fred() ;
597 EXPECT
598 ok1
599 ########
600
601 --FILE-- abc.pm
602 package abc ;
603 use warnings 'misc' ;
604 use warnings::register;
605 sub check {
606   print "ok1\n" if  warnings::enabled ;
607   print "ok2\n" if  warnings::enabled("syntax") ;
608   print "ok3\n" if  warnings::enabled("io") ;
609   print "ok4\n" if  ! warnings::enabled("misc") ;
610 }
611 1;
612 --FILE-- 
613 use warnings 'syntax' ;
614 use abc ;
615 use warnings 'abc' ;
616 sub fred { use warnings 'io'  ; abc::check() }
617 fred() ;
618 EXPECT
619 ok1
620 ok2
621 ok3
622 ok4
623 ########
624
625 --FILE-- abc.pm
626 package abc ;
627 use warnings 'misc' ;
628 use warnings::register;
629 sub check { warnings::warn("hello") }
630 1;
631 --FILE--
632 use abc;
633 use warnings "abc" ;
634 abc::check() ;
635 EXPECT
636 hello at - line 3
637 ########
638
639 --FILE-- abc.pm
640 package abc ;
641 use warnings::register;
642 sub check { warnings::warn("hello") }
643 1;
644 --FILE--
645 use abc;
646 abc::check() ;
647 EXPECT
648 hello at - line 2
649 ########
650
651 --FILE-- abc.pm
652 package abc ;
653 use warnings::register ;
654 sub check { warnings::warn("hello") }
655 1;
656 --FILE--
657 use abc;
658 use warnings qw( FATAL deprecated ) ;
659 eval { abc::check() ; } ;
660 print "[[$@]]\n";
661 EXPECT
662 hello at - line 3
663         eval {...} called at - line 3
664 [[]]
665 ########
666
667 --FILE-- abc.pm
668 package abc ;
669 use warnings::register ;
670 sub check { warnings::warn("hello") }
671 1;
672 --FILE--
673 use abc;
674 use warnings qw( FATAL abc ) ;
675 eval { abc::check() ; } ;
676 print "[[$@]]\n";
677 EXPECT
678 [[hello at - line 3
679         eval {...} called at - line 3
680 ]]
681 ########
682 -W
683 --FILE-- abc.pm
684 package abc ;
685 use warnings "io" ;
686 use warnings::register ;
687 sub check { 
688   print "ok1\n" if warnings::enabled() ;
689   print "ok2\n" if warnings::enabled("io") ;
690   print "ok3\n" if warnings::enabled("all") ;
691 }
692 1;
693 --FILE-- 
694 no warnings;
695 use abc ;
696 abc::check() ;
697 EXPECT
698 ok1
699 ok2
700 ok3
701 ########
702 -X
703 --FILE-- abc.pm
704 package abc ;
705 use warnings "io" ;
706 use warnings::register ;
707 sub check { 
708   print "ok1\n" if !warnings::enabled() ;
709   print "ok2\n" if !warnings::enabled("io") ;
710   print "ok3\n" if !warnings::enabled("all") ;
711 }
712 1;
713 --FILE-- 
714 no warnings;
715 use abc ;
716 abc::check() ;
717 EXPECT
718 ok1
719 ok2
720 ok3
721 ########
722
723 --FILE-- abc.pm
724 package abc ;
725 use warnings "io" ;
726 use warnings::register ;
727 sub check { 
728   print "ok1\n" if warnings::enabled() ;
729   print "ok2\n" if warnings::enabled("io") ;
730   print "ok3\n" if warnings::enabled("all") ;
731 }
732 1;
733 --FILE-- 
734 use warnings 'all';
735 use abc ;
736 abc::check() ;
737 EXPECT
738 ok1
739 ok2
740 ok3
741 ########
742
743 --FILE-- abc.pm
744 package abc ;
745 use warnings "io" ;
746 use warnings::register ;
747 sub check { 
748   print "ok1\n" if !warnings::enabled() ;
749   print "ok2\n" if !warnings::enabled("io") ;
750   print "ok3\n" if !warnings::enabled("all") ;
751 }
752 1;
753 --FILE-- 
754 use abc ;
755 no warnings ;
756 abc::check() ;
757 EXPECT
758 ok1
759 ok2
760 ok3
761 ########
762
763 --FILE-- abc.pm
764 package abc ;
765 use warnings "io" ;
766 use warnings::register ;
767 sub check { 
768   print "ok1\n" if !warnings::enabled() ;
769   print "ok2\n" if !warnings::enabled("io") ;
770   print "ok3\n" if !warnings::enabled("all") ;
771   warnings::warnif("my message 1") ;
772   warnings::warnif('abc', "my message 2") ;
773   warnings::warnif('io', "my message 3") ;
774   warnings::warnif('all', "my message 4") ;
775 }
776 1;
777 --FILE-- 
778 use abc ;
779 use warnings 'abc';
780 no warnings ;
781 abc::check() ;
782 EXPECT
783 ok1
784 ok2
785 ok3
786 ########
787
788 --FILE-- abc.pm
789 package abc ;
790 use warnings "io" ;
791 use warnings::register ;
792 sub check { 
793   print "abc self" . (warnings::enabled() ? "" : " not") . " enabled\n" ;
794   print "abc def"  . (warnings::enabled('def') ? "" : " not") . " enabled\n" ;
795   print "abc all"  . (warnings::enabled('all') ? "" : " not") . " enabled\n" ;
796 }
797 1;
798 --FILE-- def.pm
799 package def ;
800 use warnings "io" ;
801 use warnings::register ;
802 sub check { 
803   print "def self" . (warnings::enabled() ? "" : " not") . " enabled\n" ;
804   print "def abc"  . (warnings::enabled('abc') ? "" : " not") . " enabled\n" ;
805   print "def all"  . (warnings::enabled('all') ? "" : " not") . " enabled\n" ;
806 }
807 1;
808 --FILE-- 
809 use abc ;
810 use def ;
811 use warnings 'abc';
812 abc::check() ;
813 def::check() ;
814 no warnings 'abc'  ;
815 use warnings 'def'  ;
816 abc::check() ;
817 def::check() ;
818 use warnings 'abc'  ;
819 use warnings 'def'  ;
820 abc::check() ;
821 def::check() ;
822 no warnings 'abc'  ;
823 no warnings 'def'  ;
824 abc::check() ;
825 def::check() ;
826 use warnings;
827 abc::check() ;
828 def::check() ;
829 no warnings 'abc' ;
830 abc::check() ;
831 def::check() ;
832 EXPECT
833 abc self enabled
834 abc def not enabled
835 abc all not enabled
836 def self not enabled
837 def abc enabled
838 def all not enabled
839 abc self not enabled
840 abc def enabled
841 abc all not enabled
842 def self enabled
843 def abc not enabled
844 def all not enabled
845 abc self enabled
846 abc def enabled
847 abc all not enabled
848 def self enabled
849 def abc enabled
850 def all not enabled
851 abc self not enabled
852 abc def not enabled
853 abc all not enabled
854 def self not enabled
855 def abc not enabled
856 def all not enabled
857 abc self enabled
858 abc def enabled
859 abc all enabled
860 def self enabled
861 def abc enabled
862 def all enabled
863 abc self not enabled
864 abc def enabled
865 abc all not enabled
866 def self enabled
867 def abc not enabled
868 def all not enabled
869 ########
870 -w
871 --FILE-- abc.pm
872 package abc ;
873 no warnings ;
874 use warnings::register ;
875 sub check { 
876   print "ok1\n" if warnings::enabled() ;
877   print "ok2\n" if warnings::enabled("io") ;
878   print "ok3\n" if warnings::enabled("all") ;
879 }
880 1;
881 --FILE-- 
882 use abc ;
883 abc::check() ;
884 EXPECT
885 ok1
886 ok2
887 ok3
888 ########
889 -w
890 --FILE-- abc.pm
891 package abc ;
892 no warnings ;
893 use warnings::register ;
894 sub check { 
895   print "ok1\n" if !warnings::enabled() ;
896   print "ok2\n" if !warnings::enabled("io") ;
897   print "ok3\n" if !warnings::enabled("all") ;
898 }
899 1;
900 --FILE-- 
901 use abc ;
902 use warnings 'abc';
903 no warnings ;
904 abc::check() ;
905 EXPECT
906 ok1
907 ok2
908 ok3
909 ########
910
911 --FILE-- abc.pm
912 package abc ;
913 no warnings ;
914 use warnings::register ;
915 sub check { 
916   print "ok1\n" if !warnings::enabled() ;
917   print "ok2\n" if !warnings::enabled("io") ;
918   print "ok3\n" if !warnings::enabled("all") ;
919   warnings::warnif("my message 1") ;
920   warnings::warnif('abc', "my message 2") ;
921   warnings::warnif('io', "my message 3") ;
922   warnings::warnif('all', "my message 4") ;
923 }
924 1;
925 --FILE-- 
926 use abc ;
927 use warnings 'abc';
928 no warnings ;
929 BEGIN { $^W = 1 ; }
930 abc::check() ;
931 EXPECT
932 ok1
933 ok2
934 ok3
935 ########
936
937 --FILE-- abc.pm
938 package abc ;
939 no warnings ;
940 use warnings::register ;
941 sub check { 
942   print "ok1\n" if !warnings::enabled() ;
943   print "ok2\n" if !warnings::enabled("io") ;
944   print "ok3\n" if !warnings::enabled("all") ;
945 }
946 1;
947 --FILE-- 
948 use abc ;
949 use warnings 'abc';
950 no warnings ;
951 $^W = 1 ;
952 abc::check() ;
953 EXPECT
954 ok1
955 ok2
956 ok3
957 ########
958
959 --FILE-- abc.pm
960 $| = 1;
961 package abc ;
962 no warnings ;
963 use warnings::register ;
964 sub check { 
965   print "ok1\n" if  warnings::enabled() ;
966   print "ok2\n" if !warnings::enabled("io") ;
967   print "ok3\n" if !warnings::enabled("all") ;
968   print "ok4\n" if  warnings::enabled("abc") ;
969   warnings::warn("my message 1") ;
970   warnings::warnif("my message 2") ;
971   warnings::warnif('abc', "my message 3") ;
972   warnings::warnif('io', "my message 4") ;
973   warnings::warnif('all', "my message 5") ;
974 }
975 sub in2 { no warnings ; check() }
976 sub in1 { no warnings ; in2() }
977 1;
978 --FILE-- 
979 use abc ;
980 use warnings 'abc';
981 abc::in1() ;
982 EXPECT
983 ok1
984 ok2
985 ok3
986 ok4
987 my message 1 at - line 3
988 my message 2 at - line 3
989 my message 3 at - line 3
990 ########
991
992 --FILE-- def.pm
993 package def ;
994 no warnings ;
995 use warnings::register ;
996 sub check { 
997   print "ok1\n" if  warnings::enabled() ;
998   print "ok2\n" if !warnings::enabled("io") ;
999   print "ok3\n" if !warnings::enabled("all") ;
1000   print "ok4\n" if  warnings::enabled("def") ;
1001   warnings::warn("my message 1") ;
1002   warnings::warnif("my message 2") ;
1003   warnings::warnif('def', "my message 3") ;
1004   warnings::warnif('io', "my message 4") ;
1005   warnings::warnif('all', "my message 5") ;
1006 }
1007 sub in2 { no warnings ; check() }
1008 sub in1 { no warnings ; in2() }
1009 1;
1010 --FILE-- abc.pm
1011 $| = 1;
1012 package abc ;
1013 use def ;
1014 use warnings 'def';
1015 sub in1 { def::in1() ; }
1016 1;
1017 --FILE-- 
1018 use abc ;
1019 no warnings;
1020 abc::in1() ;
1021 EXPECT
1022 ok1
1023 ok2
1024 ok3
1025 ok4
1026 my message 1 at abc.pm line 5
1027         abc::in1() called at - line 3
1028 my message 2 at abc.pm line 5
1029         abc::in1() called at - line 3
1030 my message 3 at abc.pm line 5
1031         abc::in1() called at - line 3
1032 ########
1033
1034 --FILE-- def.pm
1035 $| = 1;
1036 package def ;
1037 no warnings ;
1038 use warnings::register ;
1039 require Exporter;
1040 @ISA = qw( Exporter ) ;
1041 @EXPORT = qw( in1 ) ;
1042 sub check { 
1043   print "ok1\n" if  warnings::enabled() ;
1044   print "ok2\n" if !warnings::enabled("io") ;
1045   print "ok3\n" if !warnings::enabled("all") ;
1046   print "ok4\n" if  warnings::enabled("abc") ;
1047   print "ok5\n" if !warnings::enabled("def") ;
1048   warnings::warn("my message 1") ;
1049   warnings::warnif("my message 2") ;
1050   warnings::warnif('abc', "my message 3") ;
1051   warnings::warnif('def', "my message 4") ;
1052   warnings::warnif('io', "my message 5") ;
1053   warnings::warnif('all', "my message 6") ;
1054 }
1055 sub in2 { no warnings ; check() }
1056 sub in1 { no warnings ; in2() }
1057 1;
1058 --FILE-- abc.pm
1059 package abc ;
1060 use warnings::register ;
1061 use def ;
1062 #@ISA = qw(def) ;
1063 1;
1064 --FILE-- 
1065 use abc ;
1066 no warnings;
1067 use warnings 'abc';
1068 abc::in1() ;
1069 EXPECT
1070 ok2
1071 ok3
1072 ok4
1073 ok5
1074 my message 1 at - line 4
1075 my message 3 at - line 4
1076 ########
1077
1078 --FILE-- def.pm
1079 package def ;
1080 no warnings ;
1081 use warnings::register ;
1082
1083 sub new
1084 {
1085     my $class = shift ;
1086     bless [], $class ;
1087 }
1088
1089 sub check 
1090
1091   my $self = shift ;
1092   print "ok1\n" if !warnings::enabled() ;
1093   print "ok2\n" if !warnings::enabled("io") ;
1094   print "ok3\n" if !warnings::enabled("all") ;
1095   print "ok4\n" if  warnings::enabled("abc") ;
1096   print "ok5\n" if !warnings::enabled("def") ;
1097   print "ok6\n" if  warnings::enabled($self) ;
1098
1099   warnings::warn("my message 1") ;
1100   warnings::warn($self, "my message 2") ;
1101
1102   warnings::warnif("my message 3") ;
1103   warnings::warnif('abc', "my message 4") ;
1104   warnings::warnif('def', "my message 5") ;
1105   warnings::warnif('io', "my message 6") ;
1106   warnings::warnif('all', "my message 7") ;
1107   warnings::warnif($self, "my message 8") ;
1108 }
1109 sub in2 
1110 {
1111   no warnings ; 
1112   my $self = shift ;
1113   $self->check() ;
1114 }
1115 sub in1 
1116
1117   no warnings ;
1118   my $self = shift ;
1119   $self->in2();
1120 }
1121 1;
1122 --FILE-- abc.pm
1123 $| = 1;
1124 package abc ;
1125 use warnings::register ;
1126 use def ;
1127 @ISA = qw(def) ;
1128 sub new
1129 {
1130     my $class = shift ;
1131     bless [], $class ;
1132 }
1133
1134 1;
1135 --FILE-- 
1136 use abc ;
1137 no warnings;
1138 use warnings 'abc';
1139 $a = new abc ;
1140 $a->in1() ;
1141 print "**\n";
1142 $b = new def ;
1143 $b->in1() ;
1144 EXPECT
1145 ok1
1146 ok2
1147 ok3
1148 ok4
1149 ok5
1150 ok6
1151 my message 1 at - line 5
1152 my message 2 at - line 5
1153 my message 4 at - line 5
1154 my message 8 at - line 5
1155 **
1156 ok1
1157 ok2
1158 ok3
1159 ok4
1160 ok5
1161 my message 1 at - line 8
1162 my message 2 at - line 8
1163 my message 4 at - line 8