diff options
Diffstat (limited to 'lib/warnings/7fatal')
-rw-r--r-- | lib/warnings/7fatal | 312 |
1 files changed, 312 insertions, 0 deletions
diff --git a/lib/warnings/7fatal b/lib/warnings/7fatal new file mode 100644 index 0000000000..a25fa2c2ea --- /dev/null +++ b/lib/warnings/7fatal @@ -0,0 +1,312 @@ +Check FATAL functionality + +__END__ + +# Check compile time warning +use warnings FATAL => 'syntax' ; +{ + no warnings ; + $a =+ 1 ; +} +$a =+ 1 ; +print STDERR "The End.\n" ; +EXPECT +Reversed += operator at - line 8. +######## + +# Check compile time warning +use warnings FATAL => 'all' ; +{ + no warnings ; + my $a =+ 1 ; +} +my $a =+ 1 ; +print STDERR "The End.\n" ; +EXPECT +Reversed += operator at - line 8. +######## + +# Check runtime scope of pragma +use warnings FATAL => 'uninitialized' ; +{ + no warnings ; + my $b ; chop $b ; +} +my $b ; chop $b ; +print STDERR "The End.\n" ; +EXPECT +Use of uninitialized value in scalar chop at - line 8. +######## + +# Check runtime scope of pragma +use warnings FATAL => 'all' ; +{ + no warnings ; + my $b ; chop $b ; +} +my $b ; chop $b ; +print STDERR "The End.\n" ; +EXPECT +Use of uninitialized value in scalar chop at - line 8. +######## + +# Check runtime scope of pragma +no warnings ; +{ + use warnings FATAL => 'uninitialized' ; + $a = sub { my $b ; chop $b ; } +} +&$a ; +print STDERR "The End.\n" ; +EXPECT +Use of uninitialized value in scalar chop at - line 6. +######## + +# Check runtime scope of pragma +no warnings ; +{ + use warnings FATAL => 'all' ; + $a = sub { my $b ; chop $b ; } +} +&$a ; +print STDERR "The End.\n" ; +EXPECT +Use of uninitialized value in scalar chop at - line 6. +######## + +--FILE-- abc +$a =+ 1 ; +1; +--FILE-- +use warnings FATAL => 'syntax' ; +require "./abc"; +EXPECT + +######## + +--FILE-- abc +use warnings FATAL => 'syntax' ; +1; +--FILE-- +require "./abc"; +$a =+ 1 ; +EXPECT + +######## + +--FILE-- abc +use warnings 'syntax' ; +$a =+ 1 ; +1; +--FILE-- +use warnings FATAL => 'uninitialized' ; +require "./abc"; +my $a ; chop $a ; +print STDERR "The End.\n" ; +EXPECT +Reversed += operator at ./abc line 2. +Use of uninitialized value in scalar chop at - line 3. +######## + +--FILE-- abc.pm +use warnings 'syntax' ; +$a =+ 1 ; +1; +--FILE-- +use warnings FATAL => 'uninitialized' ; +use abc; +my $a ; chop $a ; +print STDERR "The End.\n" ; +EXPECT +Reversed += operator at abc.pm line 2. +Use of uninitialized value in scalar chop at - line 3. +######## + +# Check scope of pragma with eval +no warnings ; +eval { + use warnings FATAL => 'uninitialized' ; + my $b ; chop $b ; +}; print STDERR "-- $@" ; +my $b ; chop $b ; +print STDERR "The End.\n" ; +EXPECT +-- Use of uninitialized value in scalar chop at - line 6. +The End. +######## + +# Check scope of pragma with eval +use warnings FATAL => 'uninitialized' ; +eval { + my $b ; chop $b ; +}; print STDERR "-- $@" ; +my $b ; chop $b ; +print STDERR "The End.\n" ; +EXPECT +-- Use of uninitialized value in scalar chop at - line 5. +Use of uninitialized value in scalar chop at - line 7. +######## + +# Check scope of pragma with eval +use warnings FATAL => 'uninitialized' ; +eval { + no warnings ; + my $b ; chop $b ; +}; print STDERR $@ ; +my $b ; chop $b ; +print STDERR "The End.\n" ; +EXPECT +Use of uninitialized value in scalar chop at - line 8. +######## + +# Check scope of pragma with eval +no warnings ; +eval { + use warnings FATAL => 'syntax' ; + $a =+ 1 ; +}; print STDERR "-- $@" ; +$a =+ 1 ; +print STDERR "The End.\n" ; +EXPECT +Reversed += operator at - line 6. +######## + +# Check scope of pragma with eval +use warnings FATAL => 'syntax' ; +eval { + $a =+ 1 ; +}; print STDERR "-- $@" ; +$a =+ 1 ; +print STDERR "The End.\n" ; +EXPECT +Reversed += operator at - line 5. +######## + +# Check scope of pragma with eval +use warnings FATAL => 'syntax' ; +eval { + no warnings ; + $a =+ 1 ; +}; print STDERR $@ ; +$a =+ 1 ; +print STDERR "The End.\n" ; +EXPECT +Reversed += operator at - line 8. +######## + +# Check scope of pragma with eval +no warnings ; +eval { + use warnings FATAL => 'syntax' ; +}; print STDERR $@ ; +$a =+ 1 ; +print STDERR "The End.\n" ; +EXPECT +The End. +######## + +# Check scope of pragma with eval +no warnings ; +eval q[ + use warnings FATAL => 'uninitialized' ; + my $b ; chop $b ; +]; print STDERR "-- $@"; +my $b ; chop $b ; +print STDERR "The End.\n" ; +EXPECT +-- Use of uninitialized value in scalar chop at (eval 1) line 3. +The End. +######## + +# Check scope of pragma with eval +use warnings FATAL => 'uninitialized' ; +eval ' + my $b ; chop $b ; +'; print STDERR "-- $@" ; +my $b ; chop $b ; +print STDERR "The End.\n" ; +EXPECT +-- Use of uninitialized value in scalar chop at (eval 1) line 2. +Use of uninitialized value in scalar chop at - line 7. +######## + +# Check scope of pragma with eval +use warnings FATAL => 'uninitialized' ; +eval ' + no warnings ; + my $b ; chop $b ; +'; print STDERR $@ ; +my $b ; chop $b ; +print STDERR "The End.\n" ; +EXPECT +Use of uninitialized value in scalar chop at - line 8. +######## + +# Check scope of pragma with eval +no warnings ; +eval q[ + use warnings FATAL => 'syntax' ; + $a =+ 1 ; +]; print STDERR "-- $@"; +$a =+ 1 ; +print STDERR "The End.\n" ; +EXPECT +-- Reversed += operator at (eval 1) line 3. +The End. +######## + +# Check scope of pragma with eval +use warnings FATAL => 'syntax' ; +eval ' + $a =+ 1 ; +'; print STDERR "-- $@"; +print STDERR "The End.\n" ; +EXPECT +-- Reversed += operator at (eval 1) line 2. +The End. +######## + +# Check scope of pragma with eval +use warnings FATAL => 'syntax' ; +eval ' + no warnings ; + $a =+ 1 ; +'; print STDERR "-- $@"; +$a =+ 1 ; +print STDERR "The End.\n" ; +EXPECT +Reversed += operator at - line 8. +######## + +use warnings 'void' ; + +time ; + +{ + use warnings FATAL => qw(void) ; + length "abc" ; +} + +join "", 1,2,3 ; + +print "done\n" ; +EXPECT +Useless use of time in void context at - line 4. +Useless use of length in void context at - line 8. +######## + +use warnings ; + +time ; + +{ + use warnings FATAL => qw(void) ; + length "abc" ; +} + +join "", 1,2,3 ; + +print "done\n" ; +EXPECT +Useless use of time in void context at - line 4. +Useless use of length in void context at - line 8. |