1 require File.dirname(__FILE__) + '/../spec_helper'
2 require File.dirname(__FILE__) + '/subtend_helper'
4 compile_extension('subtend_cv_get_set')
5 require File.dirname(__FILE__) + '/ext/subtend_cv_get_set'
7 describe "SubtendCVGetSet" do
9 @s = SubtendCVGetSet.new
15 # Actually, this causes a segfault on MRI
16 # it "rb_cv_get should return nil when there's no class variable" do
17 # @s.rb_cv_get(CVTest, "@@no_variable").should == nil
18 # @s.rb_cvar_get(CVTest, "@@no_variable").should == nil
21 it "rb_cv_set should set a class variable" do
22 @s.rb_cv_set(CVTest, "@@class_variable_1", 1).should == 1
23 @s.rb_cvar_set(CVTest, "@@class_variable_2", 2).should == 2
26 it "rb_cv_get should get a class variable" do
27 @s.rb_cv_set(CVTest, "@@class_variable_3", 3).should == 3
28 @s.rb_cv_get(CVTest, "@@class_variable_3").should == 3
29 @s.rb_cvar_get(CVTest, "@@class_variable_3").should == 3
32 it "rb_cv_set should allow changing class variable" do
33 @s.rb_cv_set(CVTest, "@@class_variable_4", 4).should == 4
34 @s.rb_cv_get(CVTest, "@@class_variable_4").should == 4
35 @s.rb_cv_set(CVTest, "@@class_variable_4", 5).should == 5
36 @s.rb_cv_get(CVTest, "@@class_variable_4").should == 5
37 @s.rb_cvar_set(CVTest, "@@class_variable_4", 6).should == 6
38 @s.rb_cv_get(CVTest, "@@class_variable_4").should == 6