]> git.vpit.fr Git - perl/modules/Variable-Magic.git/blobdiff - t/18-opinfo.t
Avoid global lookups in the magic callbacks in t/18-opinfo.t
[perl/modules/Variable-Magic.git] / t / 18-opinfo.t
index 4da06b9c40ff93fc78d8ebd2d609ad27b100b58b..aed437a41e5b6b00e372835e217cc1c3fb7722ac 100644 (file)
@@ -13,13 +13,14 @@ sub Variable::Magic::TestPkg::foo { }
 
 my $is_5130_release = ("$]" == 5.013 && !$Config{git_describe}) ? 1 : 0;
 
-my $aelem     = "$]" <= 5.008003 ? 'aelem'
-                                 : ("$]" < 5.013 or $is_5130_release)
+my $aelem     = "$]" <= 5.008_003 ? 'aelem'
+                                  : ("$]" < 5.013 or $is_5130_release)
                                                    ? 'aelemfast'
                                                    : 'sassign';
 my $aelemf    = ("$]" < 5.013 or $is_5130_release) ? 'aelemfast' : 'sassign';
 my $aelemf_op = $aelemf eq 'sassign'
                    ? 'B::BINOP' : $Config{useithreads} ? 'B::PADOP' : 'B::SVOP';
+my $meth_op   = ("$]" < 5.021_005) ? 'B::SVOP' : 'B::METHOP';
 
 our @o;
 
@@ -39,7 +40,7 @@ my @tests = (
                                                    [ 'bless',   'B::LISTOP' ] ],
  [ 'get', '$c',    'my $c = ""','$c =~ /x/',       [ 'match',   'B::PMOP'   ] ],
  [ 'get', '$c',    'my $c = "Variable::Magic::TestPkg"',
-                                '$c->foo()',  [ 'method_named', 'B::SVOP'   ] ],
+                                '$c->foo()',  [ 'method_named', $meth_op    ] ],
  [ 'get', '$c',    'my $c = ""','$c =~ y/x/y/',    [ 'trans',   'B::PVOP'   ] ],
  [ 'get', '$c',    'my $c = 1', '1 for 1 .. $c',
                                                  [ 'enteriter', 'B::LOOP'   ] ],
@@ -49,10 +50,13 @@ my @tests = (
 
 our $done;
 
+my $OP_INFO_NAME   = VMG_OP_INFO_NAME;
+my $OP_INFO_OBJECT = VMG_OP_INFO_OBJECT;
+
 for (@tests) {
  my ($key, $var, $init, $test, $exp) = @$_;
 
- for my $op_info (VMG_OP_INFO_NAME, VMG_OP_INFO_OBJECT) {
+ for my $op_info ($OP_INFO_NAME, $OP_INFO_OBJECT) {
   my $wiz;
 
   # We must test for the $op correctness inside the callback because, if we
@@ -63,9 +67,9 @@ for (@tests) {
     return if $done;
     my $op = $_[-1];
     my $desc = "$key magic with op_info == $op_info";
-    if ($op_info == VMG_OP_INFO_NAME) {
+    if ($op_info == $OP_INFO_NAME) {
      is $op, $exp->[0], "$desc gets the right op info";
-    } elsif ($op_info == VMG_OP_INFO_OBJECT) {
+    } elsif ($op_info == $OP_INFO_OBJECT) {
      isa_ok $op, $exp->[1], $desc;
      is $op->name, $exp->[0], "$desc gets the right op info";
     } else {