From 3f8bb69237c150cef66e4cc64fbba33d5116a9e1 Mon Sep 17 00:00:00 2001 From: Laurent Sansonetti Date: Thu, 12 Dec 2013 19:05:04 +0100 Subject: [PATCH] add tests for Proc#weak! --- test/test/spec/weakref_spec.rb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/test/test/spec/weakref_spec.rb b/test/test/spec/weakref_spec.rb index 49f41c65..9a0a8e1a 100644 --- a/test/test/spec/weakref_spec.rb +++ b/test/test/spec/weakref_spec.rb @@ -75,3 +75,25 @@ describe "WeakRef" do rect.should == ref end end + +describe "Proc#weak!" do + it "sets ->self to a weak-reference" do + rc = retainCount + b1 = Proc.new {}.weak! + retainCount.should == rc + b2 = Proc.new {} + retainCount.should == rc + 1 + end + + it "returns a reference to the Proc object" do + b = Proc.new {} + b.weak!.should == b + end + + it "can safely be called multiple times" do + b = Proc.new {}.weak! + rc = retainCount + i = 0; while i < 100; b.weak!; i += 1; end + rc.should == retainCount + end +end