X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F05-words.t;h=318581d2c5f40e7f552fae6613a4a6df324395c3;hb=c4d42ba6866ff8c6a542ba718db27cca5f64ba1e;hp=751b464b0a12ca7e0d37fdd78dff1ad3bdd1c6a5;hpb=b1705371d0b8be388540f125bde19d10e3e14ea8;p=perl%2Fmodules%2FScope-Upper.git diff --git a/t/05-words.t b/t/05-words.t index 751b464..318581d 100644 --- a/t/05-words.t +++ b/t/05-words.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 33; +use Test::More tests => 46; use Scope::Upper qw/:words/; @@ -15,44 +15,44 @@ is SUB, undef, 'main : sub'; is EVAL, undef, 'main : eval'; { - is HERE, 0, '{ 1 } : here'; - is TOP, 1, '{ 1 } : top'; - is UP, 1, '{ 1 } : up'; - is DOWN, 0, '{ 1 } : down'; - is DOWN(UP), 0, '{ 1 } : up then down'; - is UP(DOWN), 1, '{ 1 } : down then up'; + is HERE, 1, '{ 1 } : here'; + is TOP, 0, '{ 1 } : top'; + is UP, 0, '{ 1 } : up'; + is DOWN, 1, '{ 1 } : down'; + is DOWN(UP), 1, '{ 1 } : up then down'; + is UP(DOWN), 0, '{ 1 } : down then up'; } do { - is TOP, 1, 'do { 1 } : top'; - is SUB, undef, 'do { 1 } : sub'; + is HERE, 1, 'do { 1 } : here'; + is SUB, undef, 'do { 1 } : sub'; is EVAL, undef, 'do { 1 } : eval'; }; eval { - is TOP, 1, 'eval { 1 } : top'; - is SUB, undef, 'eval { 1 } : sub'; - is EVAL, 0, 'eval { 1 } : eval'; + is HERE, 1, 'eval { 1 } : here'; + is SUB, undef, 'eval { 1 } : sub'; + is EVAL, 1, 'eval { 1 } : eval'; }; eval q[ - is TOP, 1, 'eval "1" : top'; - is SUB, undef, 'eval "1" : sub'; - is EVAL, 0, 'eval "1" : eval'; + is HERE, 1, 'eval "1" : here'; + is SUB, undef, 'eval "1" : sub'; + is EVAL, 1, 'eval "1" : eval'; ]; do { - is TOP, 1, 'do { 1 } while (0) : top'; + is HERE, 1, 'do { 1 } while (0) : here'; } while (0); sub { - is TOP, 1, 'sub { 1 } : top'; - is SUB, 0, 'sub { 1 } : sub'; + is HERE, 1, 'sub { 1 } : here'; + is SUB, 1, 'sub { 1 } : sub'; is EVAL, undef, 'sub { 1 } : eval'; }->(); for (1) { - is TOP, 1, 'for () { 1 } : top'; + is HERE, 1, 'for () { 1 } : here'; } do { @@ -61,16 +61,38 @@ do { sub { eval q[ { - is HERE, 0, 'mixed : here'; - is TOP, 6, 'mixed : top'; - is SUB, 2, 'mixed : first sub'; - is SUB(SUB), 2, 'mixed : still first sub'; - is EVAL, 1, 'mixed : first eval'; - is EVAL(EVAL), 1, 'mixed : still first eval'; - is EVAL(UP(EVAL)), 4, 'mixed : second eval'; + is HERE, 6, 'mixed : here'; + is TOP, 0, 'mixed : top'; + is SUB, 4, 'mixed : first sub'; + is SUB(SUB), 4, 'mixed : still first sub'; + is EVAL, 5, 'mixed : first eval'; + is EVAL(EVAL), 5, 'mixed : still first eval'; + is EVAL(UP(EVAL)), 2, 'mixed : second eval'; } ]; }->(); } }; } while (0); + +{ + is CALLER, 0, '{ } : caller'; + is CALLER(0), 0, '{ } : caller 0'; + is CALLER(1), 0, '{ } : caller 1'; + sub { + is CALLER, 2, '{ sub { } } : caller'; + is CALLER(0), 2, '{ sub { } } : caller 0'; + is CALLER(1), 0, '{ sub { } } : caller 1'; + for (1) { + is CALLER, 2, '{ sub { for { } } } : caller'; + is CALLER(0), 2, '{ sub { for { } } } : caller 0'; + is CALLER(1), 0, '{ sub { for { } } } : caller 1'; + eval { + is CALLER, 4, '{ sub { for { eval { } } } } : caller'; + is CALLER(0), 4, '{ sub { for { eval { } } } } : caller 0'; + is CALLER(1), 2, '{ sub { for { eval { } } } } : caller 1'; + is CALLER(2), 0, '{ sub { for { eval { } } } } : caller 2'; + } + } + }->(); +}