tests for all macros

generated on master (know to work)
but with rXX registers, needs fixing
This commit is contained in:
2020-03-06 18:09:56 +02:00
parent 9c5d17a3bb
commit 3575aada17
14 changed files with 313 additions and 3 deletions

View File

@ -19,14 +19,23 @@ module Minitest
def assert_slot_to_reg( slot , array = nil, index = nil , register = nil)
assert_equal Risc::SlotToReg , slot.class
assert_register( :source , array , slot.array)
assert_equal( index , slot.index, "wrong source index") if index
assert_register( :destination , register , slot.register )
assert_index( :source , slot , index)
end
def assert_reg_to_slot( slot , register = nil, array = nil, index = nil )
assert_equal Risc::RegToSlot , slot.class
assert_register( :source , register , slot.register )
assert_register( :destination , array , slot.array)
assert_equal( index , slot.index, "wrong destination index") if index
assert_index( :destination , slot , index)
end
def assert_index(kind , slot , index)
return unless index
if(slot.index.is_a?(Risc::RegisterValue))
assert_equal( Symbol , index.class, "wrong #{kind} index class")
assert_equal( index , slot.index.symbol, "wrong #{kind} index")
else
assert_equal( index , slot.index, "wrong #{kind} index")
end
end
def assert_load(load , clazz = nil , register = nil)
assert_equal Risc::LoadConstant , load.class
@ -61,6 +70,10 @@ module Minitest
assert_register :right , right , ins.right
end
def assert_zero ins , label
assert_equal Risc::IsNotZero , ins.class
assert_label ins.label , label
end
def assert_not_zero ins , label
assert_equal Risc::IsZero , ins.class
assert_label ins.label , label
end
@ -68,6 +81,13 @@ module Minitest
assert_equal Risc::Syscall , ins.class
assert_equal ins.name , name
end
def assert_minus ins , label
assert_equal Risc::IsMinus , ins.class
assert_label ins.label , label
end
def assert_data(ins , data)
assert_equal Risc::LoadData , ins.class
assert_equal data , ins.constant
end
end
end