diff options
Diffstat (limited to 'spec/ruby/optional/capi/gc_spec.rb')
-rw-r--r-- | spec/ruby/optional/capi/gc_spec.rb | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/spec/ruby/optional/capi/gc_spec.rb b/spec/ruby/optional/capi/gc_spec.rb new file mode 100644 index 0000000000..ee9e11d11c --- /dev/null +++ b/spec/ruby/optional/capi/gc_spec.rb @@ -0,0 +1,54 @@ +require File.expand_path('../spec_helper', __FILE__) + +load_extension("gc") + +describe "CApiGCSpecs" do + before :each do + @f = CApiGCSpecs.new + end + + it "correctly gets the value from a registered address" do + @f.registered_tagged_address.should == 10 + @f.registered_tagged_address.object_id.should == @f.registered_tagged_address.object_id + @f.registered_reference_address.should == "Globally registered data" + @f.registered_reference_address.object_id.should == @f.registered_reference_address.object_id + end + + describe "rb_gc_enable" do + + after do + GC.enable + end + + it "enables GC when disabled" do + GC.disable + @f.rb_gc_enable.should be_true + end + + it "GC stays enabled when enabled" do + GC.enable + @f.rb_gc_enable.should be_false + end + + it "disables GC when enabled" do + GC.enable + @f.rb_gc_disable.should be_false + end + + it "GC stays disabled when disabled" do + GC.disable + @f.rb_gc_disable.should be_true + end + end + + describe "rb_gc" do + + it "increases gc count" do + gc_count = GC.count + @f.rb_gc + GC.count.should > gc_count + end + + end + +end |