X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F20-localize-target.t;h=136feb6eed60e920ecaaac262e089fb4a3f5015d;hb=59a1136cba8ac79b0428d55824873b55a9b700aa;hp=726a588d156763797c0f3523ae2556b305dcb14f;hpb=965e21f781c23f8c20242d17d7db745d8c035eb3;p=perl%2Fmodules%2FScope-Upper.git diff --git a/t/20-localize-target.t b/t/20-localize-target.t index 726a588..136feb6 100644 --- a/t/20-localize-target.t +++ b/t/20-localize-target.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 50; +use Test::More tests => 50 + 4; use Scope::Upper qw/localize UP HERE/; @@ -254,3 +254,27 @@ my $xh = { a => 5, c => 7 }; } is foo(), 8, 'localize "&foo", sub { 8 } => UP [ok]'; } + +# Invalid + +sub invalid_ref { qr/^Invalid \Q$_[0]\E reference as the localization target/ } + +{ + eval { localize \1, 0 => HERE }; + like $@, invalid_ref('SCALAR'), 'invalid localize \1, 0 => HERE'; +} + +{ + eval { localize [ ], 0 => HERE }; + like $@, invalid_ref('ARRAY'), 'invalid localize [ ], 0 => HERE'; +} + +{ + eval { localize { }, 0 => HERE }; + like $@, invalid_ref('HASH'), 'invalid localize { }, 0 => HERE'; +} + +{ + eval { localize sub { }, 0 => HERE }; + like $@, invalid_ref('CODE'), 'invalid localize sub { }, 0 => HERE'; +}