Updated MSpec source to 46e80081.
[rbx.git] / spec / subtend / cv_get_set_spec.rb
blobd490f1d94874495952fe0fde02fa2f887f041f8d
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
8   before :each do
9     @s = SubtendCVGetSet.new
10   end
12   class CVTest
13   end
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
19 #  end
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
24   end
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
30   end
31   
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
39   end
40 end