reading tied scalar shrinks it
Zefram [Tue, 27 Aug 2013 15:19:34 +0000 (16:19 +0100)]
One of Devel-Size's tests, for a tied scalar visibly growing when the
underlying tie object grows, is failing on Perl 5.19.3 because an earlier
read of the scalar clears its PV buffer, causing the scalar to shrink.
Attached patch makes the test allow for such shrinkage.

t/magic.t

index 97770ab..3fa7d05 100644 (file)
--- a/t/magic.t
+++ b/t/magic.t
@@ -46,13 +46,14 @@ SKIP: {
     my $after_size = total_size($string);
     cmp_ok($after_size, '>', $before_size, 'size increases due to magic');
     is($string, undef, 'No value yet');
+    my $small_size = total_size($string);
     # This is defineately cheating, in that we're poking inside the
     # implementation of Tie::StdScalar, but if we just write to $string, the way
     # magic works, the (nice long) value is first written to the regular scalar,
     # then picked up by the magic. So it grows, which defeats the purpose of the
     # test.
     ${tied $string} = 'X' x 1024;
-    cmp_ok(total_size($string), '>', $after_size + 1024,
+    cmp_ok(total_size($string), '>', $small_size + 1024,
           'the magic object is counted');
 }