This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
fix handling of registered warning categories
[perl5.git] / t / lib / warnings / 9enabled
index a6ad931..872e48a 100644 (file)
@@ -344,8 +344,8 @@ eval {
   } ;
 print $@ ;
 EXPECT
-Usage: warnings::warn([category,] 'message') at - line 5
-Unknown warnings category 'fred' at - line 9
+Usage: warnings::warn([category,] 'message') at - line 5.
+Unknown warnings category 'fred' at - line 9.
 ########
 
 # check warnings::warnif
@@ -359,8 +359,8 @@ eval {
 } ;
 print $@ ;
 EXPECT
-Usage: warnings::warnif([category,] 'message') at - line 5
-Unknown warnings category 'fred' at - line 9
+Usage: warnings::warnif([category,] 'message') at - line 5.
+Unknown warnings category 'fred' at - line 9.
 ########
 
 --FILE-- abc18.pm
@@ -373,7 +373,7 @@ use warnings "io" ;
 use abc18;
 abc18::check() ;
 EXPECT
-hello at - line 3
+hello at - line 3.
 ########
 
 --FILE-- abc19.pm
@@ -386,7 +386,7 @@ use warnings "io" ;
 use abc19;
 abc19::check() ;
 EXPECT
-hello at - line 3
+hello at - line 3.
 ########
 
 --FILE-- abc20.pm
@@ -402,7 +402,7 @@ eval {
   } ;
 print "[[$@]]\n";
 EXPECT
-hello at - line 4
+hello at - line 4.
 [[]]
 ########
 
@@ -419,7 +419,7 @@ eval {
 } ;
 print "[[$@]]\n";
 EXPECT
-[[hello at - line 4
+[[hello at - line 4.
 ]]
 ########
 -W
@@ -463,7 +463,7 @@ use warnings 'syntax' ;
 use abc24 ;
 abc24::check() ;
 EXPECT
-package 'abc24' not registered for warnings at abc24.pm line 4
+package 'abc24' not registered for warnings at abc24.pm line 4.
 ########
 
 --FILE-- abc25.pm
@@ -478,7 +478,7 @@ use warnings 'syntax' ;
 use abc25 ;
 abc25::check() ;
 EXPECT
-package 'abc25' not registered for warnings at abc25.pm line 4
+package 'abc25' not registered for warnings at abc25.pm line 4.
 ########
 
 --FILE-- abc26.pm
@@ -493,7 +493,7 @@ use warnings 'syntax' ;
 use abc26 ;
 abc26::check() ;
 EXPECT
-package 'abc26' not registered for warnings at abc26.pm line 4
+package 'abc26' not registered for warnings at abc26.pm line 4.
 ########
 
 --FILE-- abc27.pm
@@ -652,7 +652,7 @@ use abc34;
 use warnings "abc34" ;
 abc34::check() ;
 EXPECT
-hello at - line 3
+hello at - line 3.
 ########
 
 --FILE-- abc35.pm
@@ -664,7 +664,7 @@ sub check { warnings::warn("hello") }
 use abc35;
 abc35::check() ;
 EXPECT
-hello at - line 2
+hello at - line 2.
 ########
 
 --FILE-- abc36.pm
@@ -680,7 +680,7 @@ eval {
   } ;
 print "[[$@]]\n";
 EXPECT
-hello at - line 4
+hello at - line 4.
 [[]]
 ########
 
@@ -697,7 +697,7 @@ eval {
   } ;
 print "[[$@]]\n";
 EXPECT
-[[hello at - line 4
+[[hello at - line 4.
 ]]
 ########
 -W
@@ -883,10 +883,10 @@ def abc43 enabled
 def all enabled
 abc43 self not enabled
 abc43 def enabled
-abc43 all not enabled
+abc43 all enabled
 def self enabled
 def abc43 not enabled
-def all not enabled
+def all enabled
 ########
 -w
 --FILE-- abc44.pm
@@ -1005,9 +1005,9 @@ ok1
 ok2
 ok3
 ok4
-my message 1 at - line 3
-my message 2 at - line 3
-my message 3 at - line 3
+my message 1 at - line 3.
+my message 2 at - line 3.
+my message 3 at - line 3.
 ########
 
 --FILE-- def.pm
@@ -1044,9 +1044,9 @@ ok1
 ok2
 ok3
 ok4
-my message 1 at abc49.pm line 5
-my message 2 at abc49.pm line 5
-my message 3 at abc49.pm line 5
+my message 1 at abc49.pm line 5.
+my message 2 at abc49.pm line 5.
+my message 3 at abc49.pm line 5.
 ########
 
 --FILE-- def.pm
@@ -1089,8 +1089,8 @@ ok2
 ok3
 ok4
 ok5
-my message 1 at - line 4
-my message 3 at - line 4
+my message 1 at - line 4.
+my message 3 at - line 4.
 ########
 
 --FILE-- def.pm
@@ -1166,19 +1166,37 @@ ok3
 ok4
 ok5
 ok6
-my message 1 at - line 5
-my message 2 at - line 5
-my message 4 at - line 5
-my message 8 at - line 5
+my message 1 at - line 5.
+my message 2 at - line 5.
+my message 4 at - line 5.
+my message 8 at - line 5.
 **
 ok1
 ok2
 ok3
 ok4
 ok5
-my message 1 at - line 8
-my message 2 at - line 8
-my message 4 at - line 8
+my message 1 at - line 8.
+my message 2 at - line 8.
+my message 4 at - line 8.
+########
+
+--FILE-- abc52.pm
+package abc52 ;
+use warnings::register ('foo', 'bar');
+sub check {
+    warnings::warnif('abc52', "hello");
+    warnings::warnif('abc52::foo', "hello foo");
+    warnings::warnif('abc52::bar', "hello bar");
+}
+1;
+--FILE--
+use abc52;
+use warnings("abc52", "abc52::bar");
+abc52::check() ;
+EXPECT
+hello at - line 3.
+hello bar at - line 3.
 ########
 
 --FILE--
@@ -1227,3 +1245,109 @@ print "ok2\n" if $@ =~ /line $warn_line/;
 EXPECT
 ok1
 ok2
+########
+
+--FILE-- fatal1.pm
+package fatal1 ;
+no warnings ;
+print "ok1\n" if !warnings::fatal_enabled('all') ;
+print "ok2\n" if !warnings::fatal_enabled("syntax") ;
+1;
+--FILE--
+use fatal1 ;
+EXPECT
+ok1
+ok2
+########
+
+--FILE-- fatal2.pm
+package  fatal2;
+no warnings ;
+print "ok1\n" if !warnings::fatal_enabled('all') ;
+print "ok2\n" if warnings::fatal_enabled("syntax") ;
+1;
+--FILE--
+use warnings FATAL => 'syntax' ;
+use fatal2 ;
+EXPECT
+ok1
+ok2
+########
+
+--FILE-- fatal3.pm
+package fatal3 ;
+no warnings ;
+print "ok1\n" if warnings::fatal_enabled('all') ;
+print "ok2\n" if warnings::fatal_enabled("syntax") ;
+1;
+--FILE--
+use warnings FATAL => 'all' ;
+use fatal3 ;
+EXPECT
+ok1
+ok2
+########
+
+--FILE-- fatal4.pm
+package fatal4 ;
+no warnings ;
+print "ok1\n" if warnings::fatal_enabled('all') ;
+print "ok2\n" if warnings::fatal_enabled("void") ;
+print "ok3\n" if !warnings::fatal_enabled("syntax") ;
+1;
+--FILE--
+use warnings FATAL => 'all', NONFATAL => 'syntax' ;
+use fatal4 ;
+EXPECT
+ok1
+ok2
+ok3
+########
+{ Quux::quux(); }
+{ no warnings; Quux::quux(); }
+{ no warnings; use warnings "void"; Quux::quux(); }
+{ use warnings; Quux::quux(); }
+{ use warnings; no warnings "void"; Quux::quux(); }
+use warnings ();
+BEGIN { warnings::register_categories(qw(wibble wobble wabble wubble)); }
+package Quux {
+  sub quux {
+    warnings::warnif($_, "My $_ is flanged")
+      foreach qw(wibble wobble wabble wubble);
+    ();
+  }
+}
+{ Quux::quux(); }
+{ no warnings; Quux::quux(); }
+{ no warnings; use warnings "void"; Quux::quux(); }
+{ use warnings; Quux::quux(); }
+{ use warnings; no warnings "void"; Quux::quux(); }
+{ no warnings; use warnings qw(wibble wabble); Quux::quux(); }
+{ no warnings; use warnings qw(wobble wubble); Quux::quux(); }
+{ use warnings; no warnings qw(wibble wabble); Quux::quux(); }
+{ use warnings; no warnings qw(wobble wubble); Quux::quux(); }
+EXPECT
+My wibble is flanged at - line 4.
+My wobble is flanged at - line 4.
+My wabble is flanged at - line 4.
+My wubble is flanged at - line 4.
+My wibble is flanged at - line 5.
+My wobble is flanged at - line 5.
+My wabble is flanged at - line 5.
+My wubble is flanged at - line 5.
+My wibble is flanged at - line 18.
+My wobble is flanged at - line 18.
+My wabble is flanged at - line 18.
+My wubble is flanged at - line 18.
+My wibble is flanged at - line 19.
+My wobble is flanged at - line 19.
+My wabble is flanged at - line 19.
+My wubble is flanged at - line 19.
+My wibble is flanged at - line 20.
+My wabble is flanged at - line 20.
+My wobble is flanged at - line 21.
+My wubble is flanged at - line 21.
+My wobble is flanged at - line 22.
+My wubble is flanged at - line 22.
+My wibble is flanged at - line 23.
+My wabble is flanged at - line 23.