some slot load tests
This commit is contained in:
parent
473866e76b
commit
36e59ebdea
@ -4,6 +4,9 @@ module Mom
|
|||||||
class CompilerMock
|
class CompilerMock
|
||||||
def use_reg( type )
|
def use_reg( type )
|
||||||
Risc.tmp_reg(type , nil)
|
Risc.tmp_reg(type , nil)
|
||||||
|
end
|
||||||
|
def reset_regs
|
||||||
|
|
||||||
end
|
end
|
||||||
def add_constant(c)
|
def add_constant(c)
|
||||||
end
|
end
|
||||||
|
@ -1,13 +1,55 @@
|
|||||||
require_relative "helper"
|
require_relative "helper"
|
||||||
|
|
||||||
module Mom
|
module Mom
|
||||||
class TestSlotLoad < MiniTest::Test
|
class TestSlotLoadBasics < MiniTest::Test
|
||||||
|
|
||||||
|
def test_ins_ok
|
||||||
|
assert SlotLoad.new( [:message, :caller] , [:receiver,:type] )
|
||||||
|
end
|
||||||
|
def test_ins_fail1
|
||||||
|
assert_raises {SlotLoad.new( [:message, :caller] , nil )}
|
||||||
|
end
|
||||||
|
def test_fail_on_right
|
||||||
|
@load = SlotLoad.new( [:message, :caller] , [:receiver,:type] )
|
||||||
|
assert_raises {@load.to_risc(CompilerMock.new)}
|
||||||
|
end
|
||||||
|
def test_fail_on_left_long
|
||||||
|
@load = SlotLoad.new( [:message, :caller , :type] , [:receiver,:type] )
|
||||||
|
assert_raises {@load.to_risc(CompilerMock.new)}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
class TestSlotLoadFunction < MiniTest::Test
|
||||||
|
|
||||||
def setup
|
def setup
|
||||||
|
Risc.machine.boot
|
||||||
|
@load = SlotLoad.new( [:message, :caller] , [:message,:type] )
|
||||||
|
@compiler = CompilerMock.new
|
||||||
|
@instruction = @load.to_risc(@compiler)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_while_instructions
|
def test_ins_class
|
||||||
assert_nil nil
|
assert_equal Risc::SlotToReg , @instruction.class
|
||||||
|
end
|
||||||
|
def test_ins_next_class
|
||||||
|
assert_equal Risc::RegToSlot , @instruction.next.class
|
||||||
|
end
|
||||||
|
def test_ins_arr
|
||||||
|
assert_equal :r0 , @instruction.array.symbol
|
||||||
|
end
|
||||||
|
def test_ins_reg
|
||||||
|
assert_equal :r1 , @instruction.register.symbol
|
||||||
|
end
|
||||||
|
def test_ins_index
|
||||||
|
assert_equal 0 , @instruction.index
|
||||||
|
end
|
||||||
|
def test_ins_next_reg
|
||||||
|
assert_equal :r1 , @instruction.next.register.symbol
|
||||||
|
end
|
||||||
|
def test_ins_next_arr
|
||||||
|
assert_equal :r0 , @instruction.next.array.symbol
|
||||||
|
end
|
||||||
|
def test_ins_next_index
|
||||||
|
assert_equal 6 , @instruction.next.index
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user