]> git.vpit.fr Git - perl/modules/Variable-Magic.git/commitdiff
Test that recasting happens only once
authorVincent Pit <perl@profvince.com>
Tue, 6 Dec 2016 23:38:07 +0000 (21:38 -0200)
committerVincent Pit <perl@profvince.com>
Wed, 7 Dec 2016 01:03:56 +0000 (23:03 -0200)
This fails starting from perl 5.24.

t/15-self.t

index adc4ec7a59e9d056eb4da86b116ff9fc11892540..a9560ab52230a53a9140e336bfddb571612838d7 100644 (file)
@@ -6,7 +6,7 @@ use warnings;
 use Test::More;
 
 my $tests;
-BEGIN { $tests = 17 }
+BEGIN { $tests = 18 }
 
 plan tests => $tests;
 
@@ -183,6 +183,23 @@ my $c = 0;
  }
 }
 
+SKIP: {
+ skip "Called twice starting from perl 5.24" => 1 if "$]" >= 5.024;
+
+ my $recasted = 0;
+
+ my $wiz2 = wizard;
+ my $wiz1 = wizard free => sub { ++$recasted; &cast($_[0], $wiz2); die 'xxx' };
+
+ local $@;
+ my $res = eval {
+  my $v = do { my $val = 123; \$val };
+  &cast($v, $wiz1);
+ };
+
+ is $recasted, 1, 'recasting free callback called only once';
+}
+
 eval q[
  use lib 't/lib';
  BEGIN { require Variable::Magic::TestDestroyRequired; }