still fixing instruction tests

This commit is contained in:
Torsten 2020-03-08 17:31:39 +02:00
parent e6729b8b60
commit 28e9cd335a
6 changed files with 41 additions and 45 deletions

View File

@ -13,60 +13,60 @@ module SlotMachine
assert_equal 19 , all.length , all_str
end
def test_1_load_name
assert_load risc(1) , Symbol , :r1
assert_load 1, Symbol , :r1
assert_equal :name , risc(1).constant
end
def test_2_load_cache
assert_load risc(2) , Parfait::CacheEntry , :r2
assert_load 2, Parfait::CacheEntry , :r2
end
def test_3_get_cache_type
assert_slot_to_reg risc(3) ,:r2 , 1 , :r3
assert_slot_to_reg 3,:r2 , 1 , :r3
end
def test_4_get_type_methods
assert_slot_to_reg risc(4) ,:r3 , 4 , :r4
assert_slot_to_reg 4,:r3 , 4 , :r4
end
def test_5_start_label
assert_label risc(5) , "while_start_"
assert_label 5, "while_start_"
end
def test_6_load_nil
assert_load risc(6) , Parfait::NilClass , :r5
assert_load 6, Parfait::NilClass , :r5
end
def test_7_check_nil
assert_operator risc(7) , :- , :r5 , :r4
assert_operator 7, :- , :r5 , :r4
end
def test_8_nil_branch
assert_zero risc(8) , "exit_label_"
assert_zero 8, "exit_label_"
end
def test_9_get_method_name
assert_slot_to_reg risc(9) ,:r4 , 6 , :r6
assert_slot_to_reg 9,:r4 , 6 , :r6
end
# Syscall, Label, RegToSlot,] #20
def test_10_check_name
assert_operator risc(10) , :- , :r6 , :r1
assert_operator 10, :- , :r6 , :r1
end
def test_11_nil_branch
assert_zero risc(11) , "ok_label_"
assert_zero 11, "ok_label_"
end
def test_12_get_next_method
assert_slot_to_reg risc(12) ,:r4 , 2 , :r4
assert_slot_to_reg 12,:r4 , 2 , :r4
end
def test_13_continue_while
assert_branch risc(13) , "while_start_"
assert_branch 13, "while_start_"
end
def test_14_goto_exit
assert_label risc(14) , "exit_label_"
assert_label 14, "exit_label_"
end
def test_15_move_name
assert_transfer( risc(15) , :r1 , :r1)
assert_transfer( 15, :r1 , :r1)
end
def test_16_die
assert_syscall risc(16) , :died
assert_syscall 16, :died
end
def test_17_label
assert_label risc(17) , "ok_label_"
assert_label 17, "ok_label_"
end
def test_18_load_method
assert_reg_to_slot risc(18) , :r4 , :r2 , 2
assert_reg_to_slot 18, :r4 , :r2 , 2
end
end
end

View File

@ -9,7 +9,7 @@ module SlotMachine
assert_equal 2 , all.length , all_str
end
def test_2_branch
assert_branch risc(1) ,"return"
assert_branch 1,"return"
end
end
end

View File

@ -9,19 +9,19 @@ module SlotMachine
assert_equal 7 , all.length , all_str
end
def test_1_load_return_value
assert_slot_to_reg risc(1) ,:message , 6 , "message.caller"
assert_slot_to_reg 1,:message , 6 , "message.caller"
end
def test_2_load_caller
assert_slot_to_reg risc(2) ,"message.caller" , 5 , "message.caller.return_value"
assert_slot_to_reg 2,"message.caller" , 5 , "message.caller.return_value"
end
def test_3_store_return_in_caller
assert_reg_to_slot risc(3) , "message.caller.return_value" , "message.caller" , 5
assert_reg_to_slot 3, "message.caller.return_value" , "message.caller" , 5
end
def test_4_load_return_address
assert_slot_to_reg risc(4) ,:message , 4 , "message.return_address"
assert_slot_to_reg 4,:message , 4 , "message.return_address"
end
def test_5_swap_messages
assert_slot_to_reg risc(5) ,:message, 6 , :message
assert_slot_to_reg 5,:message, 6 , :message
end
def test_6_do_return
assert_equal Risc::FunctionReturn , risc(6).class

View File

@ -12,17 +12,16 @@ module SlotMachine
assert_equal Risc::Label , all.first.class
end
def test_1_slot
assert_slot_to_reg risc(1) ,:message , 6 , :"message.caller"
assert_slot_to_reg 1,:message , 6 , :"message.caller"
end
def test_2_slot
assert_slot_to_reg risc(2) ,:message , 1 , :"message.next_message"
assert_slot_to_reg 2,:message , 1 , :"message.next_message"
end
def test_3_op
assert_operator risc(3) , :- , "message.caller" , "message.next_message"
assert_operator 3, :- , "message.caller" , "message.next_message"
end
def test_4_zero
assert_equal Risc::IsNotZero , risc(4).class
assert_label risc(4).label , "target"
assert_zero 4 , "target"
end
end
end

View File

@ -11,25 +11,24 @@ module SlotMachine
assert_equal 7 , all.length , all_str
end
def test_1_load_return_label
assert_load risc(1) , Risc::Label , "id_"
assert_label risc(1).constant , "continue_"
assert_load 1 , Risc::Label , "id_"
assert_label risc(1).constant , "after_meth_" , 1
end
def test_2_load_next_message
assert_slot_to_reg risc(2) ,:message , 1 , :"message.next_message"
assert_slot_to_reg 2 ,:message , 1 , :"message.next_message"
end
def test_3_store_return_address
assert_reg_to_slot risc(3) , "id_" , :"message.next_message" , 4
assert_reg_to_slot 3 , "id_" , :"message.next_message" , 4
end
def test_4_swap_messages
assert_slot_to_reg risc(4) ,:message , 1 , :message
assert_slot_to_reg 4 ,:message , 1 , :message
end
def test_5_call
assert_equal Risc::FunctionCall , risc(5).class
assert_equal :meth , risc(5).method.name
end
def test_6_label
assert_equal Risc::Label , risc(6).class
assert_label risc(6) , "continue_"
assert_label 6 , "after_meth_"
end
end
end

View File

@ -11,27 +11,25 @@ module SlotMachine
assert_equal Risc::Label , all.first.class
end
def test_1_slot
assert_slot_to_reg risc(1) ,:message , 6 , :"message.caller"
assert_slot_to_reg 1,:message , 6 , :"message.caller"
end
def test_2_load
assert_load risc(2) , Parfait::FalseClass, "id_"
assert_load 2, Parfait::FalseClass, "id_"
end
def test_3_op
assert_operator risc(3) , :- , "id_" , "message.caller"
assert_operator 3, :- , "id_" , "message.caller"
end
def test_4_zero
assert_equal Risc::IsZero , risc(4).class
assert_label risc(4).label , "target"
assert_not_zero 4 , "target"
end
def test_5_load
assert_load risc(5) , Parfait::NilClass , "id_"
assert_load 5, Parfait::NilClass , "id_"
end
def test_6_op
assert_operator risc(6), :- , "id_", "message.caller"
assert_operator 6, :- , "id_", "message.caller"
end
def test_7_zero
assert_equal Risc::IsZero , risc(7).class
assert_label risc(7).label , "target"
assert_not_zero 7 , "target"
end
end
end