This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
svleak.t: Add a test; make another more robust
authorKarl Williamson <public@khwilliamson.com>
Sat, 22 Dec 2012 19:45:00 +0000 (12:45 -0700)
committerKarl Williamson <public@khwilliamson.com>
Sun, 23 Dec 2012 18:23:37 +0000 (11:23 -0700)
The code that these tests are for has recently changed to perhaps
allocate a scalar which is not freed until global destruction.
Therefore, run the loop more times and allow a tolerance of one scalar.

t/op/svleak.t

index 6baf0e1..642b81d 100644 (file)
@@ -15,7 +15,7 @@ BEGIN {
 
 use Config;
 
-plan tests => 112;
+plan tests => 114;
 
 # run some code N times. If the number of SVs at the end of loop N is
 # greater than (N-1)*delta at the end of loop 1, we've got a leak
@@ -240,8 +240,13 @@ eleak(2,0,'/[pp]/');
 eleak(2,0,'/[[:ascii:]]/');
 eleak(2,0,'/[[.zog.]]/');
 eleak(2,0,'/[.zog.]/');
-eleak(2,0,'chr(0x100) =~ /[[:punct:]]/');
-eleak(2,0,'chr(0x100) =~ /[[:^punct:]]/');
+
+# These can generate one ref count, but just  once.
+eleak(4,1,'chr(0x100) =~ /[[:punct:]]/');
+eleak(4,1,'chr(0x100) =~ /[[:^punct:]]/');
+eleak(4,1,'chr(0x100) =~ /[[:word:]]/');
+eleak(4,1,'chr(0x100) =~ /[[:^word:]]/');
+
 eleak(2,0,'chr(0x100) =~ /\P{Assigned}/');
 leak(2,0,sub { /(??{})/ }, '/(??{})/');