rubyx/test/risc/test_builder2.rb
Torsten Rüger aaf169ad8d Fixed almost all but Interpreter
150 only failing, seems only 1 bug though
and one in linker
2019-08-13 00:13:29 +03:00

64 lines
1.9 KiB
Ruby

require_relative "../helper"
module Risc
class TestBuilderInfer < MiniTest::Test
def setup
Parfait.boot!(Parfait.default_test_options)
Mom.boot!
Risc.boot!
@init = Parfait.object_space.get_init
@compiler = Risc::MethodCompiler.new( @init, Mom::Label.new( "source_name", "return_label") )
@builder = @compiler.builder(@init)
end
def test_list
assert_equal :List , @builder.infer_type(:list).class_name
end
def test_name
assert_equal :Word , @builder.infer_type(:name).class_name
end
def test_word
assert_equal :Word , @builder.infer_type(:word).class_name
end
def test_caller
assert_equal :Message , @builder.infer_type(:caller).class_name
end
def test_caller_reg
assert_equal :Message , @builder.infer_type(:caller_reg).class_name
end
def test_define_twice
@builder.caller_reg!
assert_raises{ @builder.caller_reg! }
end
def test_define_conditionally_first
assert_equal :r1 , @builder.caller_reg?.symbol
end
def test_define_conditionally_again
first = @builder.caller_reg!
assert_equal first , @builder.caller_reg?
end
def test_caller_tmp
assert_equal :Message , @builder.infer_type(:caller_tmp).class_name
end
def test_caller_obj
assert_equal :Message , @builder.infer_type(:caller_obj).class_name
end
def test_caller_const
assert_equal :Message , @builder.infer_type(:caller_const).class_name
end
def test_caller_self
assert_equal :Message , @builder.infer_type(:caller_self).class_name
end
def test_caller_1
assert_equal :Message , @builder.infer_type(:caller_1).class_name
end
def test_message
assert_equal :Message , @builder.infer_type(:message).class_name
end
def test_next_message
assert_equal :Message , @builder.infer_type(:next_message).class_name
end
end
end