]> git.vpit.fr Git - perl/modules/Scope-Upper.git/blobdiff - t/05-words.t
Switch to qw<>
[perl/modules/Scope-Upper.git] / t / 05-words.t
index b1d1467161c5db82c906353a8a45bd11e01c69da..bcb3ac9bcc806e5b986df0706cef95818c3e5f27 100644 (file)
@@ -3,9 +3,20 @@
 use strict;
 use warnings;
 
-use Test::More tests => 42;
+use Test::More;
 
-use Scope::Upper qw/:words/;
+BEGIN {
+ if ($^P) {
+  plan skip_all => 'hardcoded values are wrong under the debugger';
+ } else {
+  plan 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.
 
 is HERE, 0, 'main : here';
 is TOP,  0, 'main : top';
@@ -72,22 +83,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';
    }
   }
  }->();