]> git.vpit.fr Git - perl/modules/Scope-Upper.git/blobdiff - t/05-words.t
Complete with_at() coverage
[perl/modules/Scope-Upper.git] / t / 05-words.t
index 2376d3559ed008b7ba70d7d5ed094b8d24c7a5df..a52a362adcd15d38b5af9941e2c60ecede089220 100644 (file)
@@ -3,21 +3,21 @@
 use strict;
 use warnings;
 
-use Test::More tests => 33;
+use Test::More tests => 46;
 
 use Scope::Upper qw/:words/;
 
-is CURRENT, 0, 'main : current';
-is TOP, 0, 'main : top';
-is UP, 0, 'main : up';
+is HERE, 0, 'main : here';
+is TOP,  0, 'main : top';
+is UP,   0, 'main : up';
 is DOWN, 0, 'main : down';
-is SUB, undef, 'main : sub';
+is SUB,  undef, 'main : sub';
 is EVAL, undef, 'main : eval';
 
 {
- is CURRENT, 0, '{ 1 } : current';
- is TOP, 1, '{ 1 } : top';
- is UP, 1, '{ 1 } : up';
+ 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';
@@ -61,12 +61,12 @@ do {
    sub {
     eval q[
      {
-      is CURRENT, 0, 'mixed : current';
-      is TOP, 6, 'mixed : top';
-      is SUB, 2, 'mixed : first sub';
+      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(EVAL),     1, 'mixed : still first eval';
       is EVAL(UP(EVAL)), 4, 'mixed : second eval';
      }
     ];
@@ -74,3 +74,25 @@ do {
   }
  };
 } while (0);
+
+{
+ is CALLER,    1, '{ } : caller';
+ is CALLER(0), 1, '{ } : caller 0';
+ is CALLER(1), 1, '{ } : caller 1';
+ sub {
+  is CALLER,    0, '{ sub { } } : caller';
+  is CALLER(0), 0, '{ sub { } } : caller 0';
+  is CALLER(1), 2, '{ sub { } } : caller 1';
+  for (1) {
+   is CALLER,    1, '{ sub { for { } } } : caller';
+   is CALLER(0), 1, '{ sub { for { } } } : caller 0';
+   is CALLER(1), 3, '{ sub { for { } } } : caller 1';
+   eval {
+    is CALLER,    0, '{ sub { for { eval { } } } } : caller';
+    is CALLER(0), 0, '{ sub { for { eval { } } } } : caller 0';
+    is CALLER(1), 2, '{ sub { for { eval { } } } } : caller 1';
+    is CALLER(2), 4, '{ sub { for { eval { } } } } : caller 2';
+   }
+  }
+ }->();
+}