summaryrefslogtreecommitdiff
path: root/spec/ruby/optional/capi/language_spec.rb
blob: f59b87f2a1750b6c2550bc77f9b82b100c684247 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
require_relative 'spec_helper'

load_extension("language")

describe "C language construct" do
  before :each do
    @s = CApiLanguageSpecs.new
  end

  describe "switch (VALUE)" do
    it "works for Qtrue" do
      @s.switch(true).should == :true
    end

    it "works for Qfalse" do
      @s.switch(false).should == :false
    end

    it "works for Qnil" do
      @s.switch(nil).should == :nil
    end

    it "works for Qundef" do
      @s.switch(:undef).should == :undef
    end

    it "works for the default case" do
      @s.switch(Object.new).should == :default
    end
  end

  describe "local variable assignment with the same name as a global" do
    it "works for rb_mProcess" do
      @s.global_local_var.should.equal?(Process)
    end
  end
end