]> git.vpit.fr Git - perl/modules/Variable-Magic.git/commitdiff
Make sure t/40-threads.t does not use the CLONE method
authorVincent Pit <vince@profvince.com>
Tue, 14 Apr 2015 17:01:55 +0000 (14:01 -0300)
committerVincent Pit <vince@profvince.com>
Tue, 14 Apr 2015 17:01:55 +0000 (14:01 -0300)
This is t/41-clone.t's job.

t/40-threads.t

index 6e77c2fd24b27d5285c59265ec1b0f1b4daaa20d..9b2d2fa2c95fd59bfbf691ab9413cea011703006 100644 (file)
@@ -3,11 +3,6 @@
 use strict;
 use warnings;
 
-use Variable::Magic qw<
- wizard cast dispell getdata
- VMG_OP_INFO_NAME VMG_OP_INFO_OBJECT
->;
-
 use lib 't/lib';
 use VPIT::TestHelpers (
  threads => [ 'Variable::Magic' => 'Variable::Magic::VMG_THREADSAFE()' ],
@@ -24,16 +19,21 @@ sub try {
  my $c = 0;
  my $wiz;
 
+ {
+  local $@;
+  eval { require Variable::Magic; 1 } or return;
+ }
+
  {
   local $@;
   $wiz = eval {
-   wizard(
+   Variable::Magic::wizard(
     data    => sub { $_[1] + $tid },
     get     => sub { ++$c; 0 },
     set     => sub {
      my $op = $_[-1];
 
-     if ($op_info == VMG_OP_INFO_OBJECT) {
+     if ($op_info eq 'object') {
       is_deeply { class => ref($op),   name => $op->name },
                 { class => 'B::BINOP', name => 'sassign' },
                 "op object in thread $tid is correct";
@@ -44,7 +44,8 @@ sub try {
      return 0;
     },
     free    => sub { lock $destroyed; ++$destroyed; 0 },
-    op_info => $op_info,
+    op_info => $op_info eq 'object' ? Variable::Magic::VMG_OP_INFO_OBJECT()
+                                    : Variable::Magic::VMG_OP_INFO_NAME()
    );
   };
   is $@,     '',    "wizard in thread $tid doesn't croak";
@@ -56,7 +57,7 @@ sub try {
 
  {
   local $@;
-  my $res = eval { cast $a, $wiz, sub { 5 }->() };
+  my $res = eval { &Variable::Magic::cast(\$a, $wiz, sub { 5 }->()) };
   is $@, '', "cast in thread $tid doesn't croak";
   is $c, 0,  "cast in thread $tid doesn't trigger magic";
  }
@@ -72,7 +73,7 @@ sub try {
 
  {
   local $@;
-  my $d = eval { getdata $a, $wiz };
+  my $d = eval { &Variable::Magic::getdata(\$a, $wiz) };
   is $@, '',       "getdata in thread $tid doesn't croak";
   is $d, 5 + $tid, "getdata in thread $tid returns the right thing";
   is $c, 1,        "getdata in thread $tid doesn't trigger magic";
@@ -87,7 +88,7 @@ sub try {
  if ($dispell) {
   {
    local $@;
-   my $res = eval { dispell $a, $wiz };
+   my $res = eval { &Variable::Magic::dispell(\$a, $wiz) };
    is $@, '', "dispell in thread $tid doesn't croak";
    is $c, 1,  "dispell in thread $tid doesn't trigger magic";
   }
@@ -110,8 +111,7 @@ for my $dispell (1, 0) {
   $destroyed = 0;
  }
 
- my @threads = map spawn(\&try, $dispell, $_),
-                              (VMG_OP_INFO_NAME) x 2, (VMG_OP_INFO_OBJECT) x 2;
+ my @threads = map spawn(\&try, $dispell, $_), ('name') x 2, ('object') x 2;
  $_->join for @threads;
 
  {