]> git.vpit.fr Git - perl/modules/Scope-Upper.git/blobdiff - t/05-words.t
A better test for imports
[perl/modules/Scope-Upper.git] / t / 05-words.t
index 318581d2c5f40e7f552fae6613a4a6df324395c3..1598e46fd2b57dd31e507ad7057e24858e810f9b 100644 (file)
@@ -3,14 +3,17 @@
 use strict;
 use warnings;
 
-use Test::More tests => 46;
+use Test::More tests => 29 + 13 * 2;
 
 use Scope::Upper qw/:words/;
 
+# This test is for internal use only and doesn't imply any kind of future
+# compatibility on what the words should actually return.
+# It is expected to fail when ran under the debugger.
+
 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 EVAL, undef, 'main : eval';
 
@@ -18,9 +21,6 @@ is EVAL, undef, 'main : eval';
  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 {
@@ -76,22 +76,35 @@ do {
 } while (0);
 
 {
- is CALLER,    0, '{ } : caller';
- is CALLER(0), 0, '{ } : caller 0';
- is CALLER(1), 0, '{ } : caller 1';
+ is SCOPE,    1, 'block : scope';
+ is SCOPE(0), 1, 'block : scope 0';
+ is SCOPE(1), 0, 'block : scope 1';
+ is CALLER,    0, 'block: caller';
+ is CALLER(0), 0, 'block : caller 0';
+ is CALLER(1), 0, 'block : caller 1';
  sub {
-  is CALLER,    2, '{ sub { } } : caller';
-  is CALLER(0), 2, '{ sub { } } : caller 0';
-  is CALLER(1), 0, '{ sub { } } : caller 1';
+  is SCOPE,    2, 'block sub : scope';
+  is SCOPE(0), 2, 'block sub : scope 0';
+  is SCOPE(1), 1, 'block sub : scope 1';
+  is CALLER,    2, 'block sub : caller';
+  is CALLER(0), 2, 'block sub : caller 0';
+  is CALLER(1), 0, 'block 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';
+   is SCOPE,    3, 'block sub for : scope';
+   is SCOPE(0), 3, 'block sub for : scope 0';
+   is SCOPE(1), 2, 'block sub for : scope 1';
+   is CALLER,    2, 'block sub for : caller';
+   is CALLER(0), 2, 'block sub for : caller 0';
+   is CALLER(1), 0, 'block 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';
+    is SCOPE,    4, 'block sub for eval : scope';
+    is SCOPE(0), 4, 'block sub for eval : scope 0';
+    is SCOPE(1), 3, 'block sub for eval : scope 1';
+    is SCOPE(2), 2, 'block sub for eval : scope 2';
+    is CALLER,    4, 'block sub for eval : caller';
+    is CALLER(0), 4, 'block sub for eval : caller 0';
+    is CALLER(1), 2, 'block sub for eval : caller 1';
+    is CALLER(2), 0, 'block sub for eval : caller 2';
    }
   }
  }->();