detect the failure introduced in 304474c3 and fixed in cefd5c7c
authorTony Cook <tony@develop-help.com>
Tue, 26 Oct 2010 12:09:45 +0000 (23:09 +1100)
committerTony Cook <tony@develop-help.com>
Tue, 26 Oct 2010 12:09:45 +0000 (23:09 +1100)
t/op/svleak.t

index 542bcdc..717d5a1 100644 (file)
@@ -13,7 +13,7 @@ BEGIN {
        or skip_all("XS::APItest not available");
 }
 
-plan tests => 17;
+plan tests => 18;
 
 # 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
@@ -113,3 +113,18 @@ leak_expr(5, 0, q{"YYYYYa" =~ /.+?(a(.+?)|b)/ }, "trie leak");
     is(@count[3] - @count[0], 3, "list   map block: one new tmp per iter");
 
 }
+
+SKIP:
+{ # broken by 304474c3, fixed by cefd5c7c, but didn't seem to cause
+  # any other test failures
+  # base test case from ribasushi (Peter Rabbitson)
+  eval { require Scalar::Util; Scalar::Util->import("weaken"); 1; }
+    or skip "no weaken", 1;
+  my $weak;
+  {
+    $weak = my $in = {};
+    weaken($weak);
+    my $out = { in => $in, in => undef }
+  }
+  ok(!$weak, "hash referenced weakened SV released");
+}