]> git.vpit.fr Git - perl/modules/Variable-Magic.git/commitdiff
Fix the testsuite for 5.8.3 and lower
authorVincent Pit <vince@profvince.com>
Thu, 12 Feb 2009 00:17:54 +0000 (01:17 +0100)
committerVincent Pit <vince@profvince.com>
Thu, 12 Feb 2009 00:17:54 +0000 (01:17 +0100)
c78c1790ebe43372ca405385d4cc053121b53ba0 caused testsuite breakage for those old perls. It looks like this is due to a problem with the WEAKOUTSIDE status of the check blocks, and not from the magical callbacks themselves. Thus it's safe to work around the issue by moving some assignations inside the block.

t/20-get.t
t/30-scalar.t
t/31-array.t

index a308df598ddbadafc4bcfea44add9d89a51f5a88..02ef39bc62d2902e94bf0b2d67d9715eec5b448f 100644 (file)
@@ -17,7 +17,9 @@ my $a = $n;
 
 check { cast $a, $wiz } { }, 'cast';
 
-my $b = check { $a } { get => 1 }, 'assign to';
+my $b;
+# $b has to be set inside the block for the test to pass on 5.8.3 and lower
+check { $b = $a } { get => 1 }, 'assign to';
 is $b, $n, 'get: assign to correctly';
 
 $b = check { "X${a}Y" } { get => 1 }, 'interpolate';
index c9844802e38e321282dd098cc3a0f8ac138a860c..d6895d214a3378e635c5a60911c56b614b672fc1 100644 (file)
@@ -19,7 +19,9 @@ my $a = $n;
 
 check { cast $a, $wiz } { }, 'cast';
 
-my $b = check { $a } { get => 1 }, 'assign to';
+my $b;
+# $b has to be set inside the block for the test to pass on 5.8.3 and lower
+check { $b = $a } { get => 1 }, 'assign to';
 is $b, $n, 'scalar: assign to correctly';
 
 $b = check { "X${a}Y" } { get => 1 }, 'interpolate';
@@ -65,7 +67,8 @@ is $b, 9, 'scalar: array element: get other correctly';
 $b = check { exists $a[1] } { }, 'array element: exists';
 is $b, 1, 'scalar: array element: exists correctly';
 
-$b = check { delete $a[1] } { get => 1, free => ($] > 5.008005 ? 1 : 0) }, 'array element: delete';
+# $b has to be set inside the block for the test to pass on 5.8.3 and lower
+check { $b = delete $a[1] } { get => 1, free => ($] > 5.008005 ? 1 : 0) }, 'array element: delete';
 is $b, 6, 'scalar: array element: delete correctly';
 
 check { $a[1] = 4 } { }, 'array element: set after delete';
index b98deccb83ebf7d36c0f1d23ec92fc632f7a7492..432fc5d887ad161c01373e1f117854b4027038fc 100644 (file)
@@ -48,7 +48,8 @@ is $b, 'd', 'array: delete correctly';
 $b = check { @a } { len => 1 }, 'length @';
 is $b, 3, 'array: length @ correctly';
 
-$b = check { $#a } { len => 1 }, 'length $#';
+# $b has to be set inside the block for the test to pass on 5.8.3 and lower
+check { $b = $#a } { len => 1 }, 'length $#';
 is $b, 2, 'array: length $# correctly';
 
 check { push @a, 'x'; () }