X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F61-uplevel-args.t;h=f6955adfbf821339eb798ef3ee8b3c9ffdfd67b9;hb=44b173f9220cfdd1afd01ae4baf414f885d2f0b2;hp=59a9071fe0e5370d6671680781959ce2a664de5c;hpb=8afcc751a1eb6d635f6a1a015711ecc674072a38;p=perl%2Fmodules%2FScope-Upper.git diff --git a/t/61-uplevel-args.t b/t/61-uplevel-args.t index 59a9071..f6955ad 100644 --- a/t/61-uplevel-args.t +++ b/t/61-uplevel-args.t @@ -3,9 +3,9 @@ use strict; use warnings; -use Test::More tests => 9 + 4 * 7 + 3 + ((5 * 4 * 4) * 3 + 1) + 2 + 6; +use Test::More tests => 9 + 4 * 7 + 3 + ((5 * 4 * 4) * 3 + 1) + 3 + 2 + 6; -use Scope::Upper qw; +use Scope::Upper qw; # Basic @@ -233,6 +233,29 @@ SKIP: { }->('dummy'); } +# uplevel() to uplevel() + +{ + my $desc = '\&uplevel as the uplevel() callback'; + local $@; + eval { + sub { + my $cxt = HERE; + sub { + sub { + # Note that an XS call does not need a context, so after the first uplevel + # call UP will point to the scope above the first target. + uplevel(\&uplevel => (sub { + is "@_", '1 2 3', "$desc: arguments inisde"; + is HERE, $cxt, "$desc: context inside"; + } => 1 .. 3 => UP) => UP); + }->(10 .. 19); + }->(sub { die 'wut' } => HERE); + }->('dummy'); + }; + is $@, '', "$desc: no error"; +} + # Magic {