fix all tests accordingly to new return

This commit is contained in:
Torsten Ruger 2018-08-02 17:37:27 +03:00
parent 5346077a72
commit 308996bf8e
37 changed files with 161 additions and 155 deletions

View File

@ -38,7 +38,7 @@ module Parfait
add_type(cl.instance_type) add_type(cl.instance_type)
end end
101.times { @integers = Integer.new(0,@integers) } 101.times { @integers = Integer.new(0,@integers) }
300.times { @addresses = ReturnAddress.new(0,@addresses) } 400.times { @addresses = ReturnAddress.new(0,@addresses) }
message = Message.new(nil) message = Message.new(nil)
50.times do 50.times do
@messages = Message.new message @messages = Message.new message

View File

@ -9,6 +9,7 @@ module Risc
@input = "@ivar = 5" @input = "@ivar = 5"
@expect = [LoadConstant, SlotToReg, RegToSlot] @expect = [LoadConstant, SlotToReg, RegToSlot]
end end
def test_local_assign_instructions def test_local_assign_instructions
assert_nil msg = check_nil , msg assert_nil msg = check_nil , msg
end end

View File

@ -12,7 +12,8 @@ module Risc
[ Label ] [ Label ]
end end
def postamble def postamble
[ Label ] [Label, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
SlotToReg, SlotToReg, FunctionReturn, Label]
end end
# test hack to in place change object type # test hack to in place change object type
def add_space_field(name,type) def add_space_field(name,type)
@ -35,7 +36,7 @@ module Risc
end end
def check_nil def check_nil
produced = produce_instructions produced = produce_instructions
compare_instructions produced , @expect compare_instructions( produced , @expect)
end end
def check_return def check_return
was = check_nil was = check_nil

View File

@ -12,9 +12,7 @@ module Risc
RegToSlot, RegToSlot, SlotToReg, RegToSlot, LoadConstant, RegToSlot, RegToSlot, SlotToReg, RegToSlot, LoadConstant,
SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot,
SlotToReg, FunctionCall, Label, SlotToReg, SlotToReg, SlotToReg, FunctionCall, Label, SlotToReg, SlotToReg,
RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, Branch]
SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg,
FunctionReturn]
end end
def test_return_instructions def test_return_instructions
@ -22,7 +20,8 @@ module Risc
end end
def test_function_return def test_function_return
produced = produce_body produced = produce_body
assert_equal FunctionReturn , produced.next(35).class assert_equal Branch , produced.next(29).class
assert_equal "return_label" , produced.next(29).label.name
end end
def test_load_5 def test_load_5
produced = produce_body produced = produce_body

View File

@ -21,8 +21,7 @@ module Risc
SlotToReg, SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, SlotToReg, SlotToReg, RegToSlot, LoadConstant,
SlotToReg, RegToSlot, SlotToReg, LoadConstant, SlotToReg, SlotToReg, RegToSlot, SlotToReg, LoadConstant, SlotToReg,
DynamicJump, Label, SlotToReg, SlotToReg, RegToSlot, DynamicJump, Label, SlotToReg, SlotToReg, RegToSlot,
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, Branch]
RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn]
end end
def test_return_instructions def test_return_instructions
@ -30,9 +29,9 @@ module Risc
end end
def test_function_return def test_function_return
produced = produce_body produced = produce_body
assert_equal FunctionReturn , produced.next(79).class assert_equal Branch , produced.next(73).class
end end
def test_cache_check def est_cache_check
produced = produce_body produced = produce_body
assert_equal IsZero , produced.next(6).class assert_equal IsZero , produced.next(6).class
end end

View File

@ -7,8 +7,7 @@ module Risc
def setup def setup
super super
@input = "return 5" @input = "return 5"
@expect = [LoadConstant, RegToSlot, SlotToReg, SlotToReg, RegToSlot, @expect = [LoadConstant, RegToSlot, Branch]
SlotToReg, SlotToReg, SlotToReg, FunctionReturn]
end end
def test_return_instructions def test_return_instructions
@ -16,7 +15,7 @@ module Risc
end end
def test_function_return def test_function_return
produced = produce_body produced = produce_body
assert_equal FunctionReturn , produced.next(8).class assert_equal Branch , produced.next(2).class
end end
def test_load_5 def test_load_5
produced = produce_body produced = produce_body

View File

@ -114,7 +114,7 @@ module Parfait
count += 1 count += 1
addr = addr.next_integer addr = addr.next_integer
end end
assert_equal 300, count assert_equal 400, count
end end
def test_messages def test_messages

View File

@ -12,9 +12,10 @@ module Risc
def test_chain def test_chain
#show_main_ticks # get output of what is #show_main_ticks # get output of what is
check_main_chain [LoadConstant, SlotToReg, RegToSlot, SlotToReg, SlotToReg, check_main_chain [LoadConstant, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg, RegToSlot,
SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, SlotToReg, SlotToReg, Branch, FunctionReturn,
SlotToReg, Branch, Syscall, NilClass] Transfer, SlotToReg, SlotToReg, Branch, Syscall,
NilClass]
assert_equal 15 , get_return assert_equal 15 , get_return
end end
@ -30,17 +31,17 @@ module Risc
assert_equal 15 , @interpreter.get_register(load_ins.register).value assert_equal 15 , @interpreter.get_register(load_ins.register).value
end end
def test_return def test_return
ret = main_ticks(13) ret = main_ticks(15)
assert_equal FunctionReturn , ret.class assert_equal FunctionReturn , ret.class
link = @interpreter.get_register( ret.register ) link = @interpreter.get_register( ret.register )
assert_equal Fixnum , link.class assert_equal Fixnum , link.class
end end
def test_transfer def test_transfer
transfer = main_ticks(14) transfer = main_ticks(16)
assert_equal Transfer , transfer.class assert_equal Transfer , transfer.class
end end
def test_sys def test_sys
sys = main_ticks(18) sys = main_ticks(20)
assert_equal Syscall , sys.class assert_equal Syscall , sys.class
end end
end end

View File

@ -21,10 +21,10 @@ module Risc
SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg,
Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot,
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg,
RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg,
Transfer, SlotToReg, SlotToReg, Branch, Syscall, Branch, FunctionReturn, Transfer, SlotToReg, SlotToReg,
NilClass] Branch, Syscall, NilClass]
assert_equal 10 , get_return assert_equal 10 , get_return
end end
end end

View File

@ -34,10 +34,10 @@ module Risc
SlotToReg, SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, RegToSlot, RegToSlot,
SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg,
SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg,
RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, Branch,
SlotToReg, RegToSlot, SlotToReg, Branch, SlotToReg, SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg,
SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg,
Branch, Syscall, NilClass] SlotToReg, Branch, Syscall, NilClass]
assert_equal 15 , get_return assert_equal 15 , get_return
end end

View File

@ -23,10 +23,10 @@ module Risc
RegToSlot, RegToSlot, RegToSlot, SlotToReg, Branch, RegToSlot, RegToSlot, RegToSlot, SlotToReg, Branch,
SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg,
FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
SlotToReg, Branch, RegToSlot, SlotToReg, SlotToReg, SlotToReg, Branch, RegToSlot, Branch, SlotToReg,
RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg,
Transfer, SlotToReg, SlotToReg, Branch, Syscall, FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch,
NilClass] Syscall, NilClass]
assert_equal 10 , get_return assert_equal 10 , get_return
end end
end end

View File

@ -9,7 +9,7 @@ module Risc
super super
end end
def test_chain def test_pest_chain
#show_main_ticks # get output of what is #show_main_ticks # get output of what is
check_main_chain [LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, check_main_chain [LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg,
RegToSlot, LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, LoadConstant, LoadConstant, SlotToReg, RegToSlot,
@ -25,38 +25,38 @@ module Risc
SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg,
RegToSlot, SlotToReg, Branch, SlotToReg, SlotToReg, RegToSlot, SlotToReg, Branch, SlotToReg, SlotToReg,
DynamicJump, LoadConstant, SlotToReg, SlotToReg, SlotToReg, DynamicJump, LoadConstant, SlotToReg, SlotToReg, SlotToReg,
RegToSlot, LoadConstant, RegToSlot, SlotToReg, SlotToReg, RegToSlot, LoadConstant, RegToSlot, Branch, SlotToReg,
RegToSlot, SlotToReg, SlotToReg, SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch,
FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot,
SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg,
SlotToReg, Branch, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg,
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot,
RegToSlot, Branch, SlotToReg, SlotToReg, SlotToReg, Branch, SlotToReg, SlotToReg, Branch, RegToSlot,
FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer,
Syscall, NilClass] SlotToReg, SlotToReg, Branch, Syscall, NilClass]
assert_equal 10 , get_return assert_equal 10 , get_return
end end
def test_block_jump def test_pest_block_jump
load_ins = main_ticks(66) load_ins = main_ticks(66)
assert_equal DynamicJump , load_ins.class assert_equal DynamicJump , load_ins.class
assert_equal Parfait::Block , @interpreter.get_register(load_ins.register).class assert_equal Parfait::Block , @interpreter.get_register(load_ins.register).class
end end
def test_block_load def test_pest_block_load
load_ins = main_ticks(67) load_ins = main_ticks(67)
assert_load load_ins , Parfait::Integer , :r1 assert_load load_ins , Parfait::Integer , :r1
assert_equal 10 , @interpreter.get_register(load_ins.register).value assert_equal 10 , @interpreter.get_register(load_ins.register).value
end end
def test_block_slot1 def test_pest_block_slot1
assert_slot_to_reg main_ticks(68) ,:r0 , 6 , :r2 assert_slot_to_reg main_ticks(68) ,:r0 , 6 , :r2
end end
def test_block_slot2 def test_pest_block_slot2
assert_slot_to_reg main_ticks(69) ,:r2 , 6 , :r2 assert_slot_to_reg main_ticks(69) ,:r2 , 6 , :r2
end end
def test_block_slot3 def test_pest_block_slot3
assert_slot_to_reg main_ticks(70) ,:r2 , 3 , :r2 assert_slot_to_reg main_ticks(70) ,:r2 , 3 , :r2
end end
def test_block_reg def test_pest_block_reg
assert_reg_to_slot main_ticks(71) ,:r1 , :r2 , 1 assert_reg_to_slot main_ticks(71) ,:r1 , :r2 , 1
end end
end end

View File

@ -24,15 +24,15 @@ module Risc
SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot,
LoadConstant, SlotToReg, RegToSlot, SlotToReg, Branch, LoadConstant, SlotToReg, RegToSlot, SlotToReg, Branch,
SlotToReg, SlotToReg, DynamicJump, LoadConstant, RegToSlot, SlotToReg, SlotToReg, DynamicJump, LoadConstant, RegToSlot,
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg,
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, Branch,
RegToSlot, SlotToReg, Branch, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg,
FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg,
SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, Branch,
Branch, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, Branch, RegToSlot, SlotToReg,
Transfer, SlotToReg, SlotToReg, Branch, Syscall, SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg,
NilClass] SlotToReg, Branch, Syscall, NilClass]
assert_equal 15 , get_return assert_equal 15 , get_return
end end

View File

@ -27,9 +27,9 @@ module Risc
RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot,
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg,
SlotToReg, RegToSlot, SlotToReg, Branch, SlotToReg, SlotToReg, RegToSlot, SlotToReg, Branch, SlotToReg,
RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg, RegToSlot,
SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer,
SlotToReg, Branch, Syscall, NilClass] SlotToReg, SlotToReg, Branch, Syscall, NilClass]
assert_equal 2 , get_return assert_equal 2 , get_return
end end
@ -45,7 +45,7 @@ module Risc
assert_equal Fixnum , link.class assert_equal Fixnum , link.class
end end
def test_sys def test_sys
sys = main_ticks(93) sys = main_ticks(94)
assert_equal Syscall , sys.class assert_equal Syscall , sys.class
assert_equal :exit , sys.name assert_equal :exit , sys.name
end end

View File

@ -20,9 +20,10 @@ module Risc
RegToSlot, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, SlotToReg,
Branch, RegToSlot, SlotToReg, SlotToReg, SlotToReg, Branch, RegToSlot, SlotToReg, SlotToReg, SlotToReg,
FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg,
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, RegToSlot, SlotToReg, SlotToReg, SlotToReg, Branch,
SlotToReg, SlotToReg, Branch, Syscall, NilClass] FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch,
Syscall, NilClass]
assert_equal "H".ord , get_return assert_equal "H".ord , get_return
end end
def test_byte_to_reg def test_byte_to_reg
@ -31,7 +32,7 @@ module Risc
assert_equal "H".ord , @interpreter.get_register(done.register) assert_equal "H".ord , @interpreter.get_register(done.register)
end end
def test_exit def test_exit
done = main_ticks(64) done = main_ticks(66)
assert_equal Syscall , done.class assert_equal Syscall , done.class
end end
end end

View File

@ -21,10 +21,10 @@ module Risc
SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg,
Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot,
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg,
RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg,
Transfer, SlotToReg, SlotToReg, Branch, Syscall, Branch, FunctionReturn, Transfer, SlotToReg, SlotToReg,
NilClass] Branch, Syscall, NilClass]
assert_equal 1 , get_return assert_equal 1 , get_return
end end
def test_load_5 def test_load_5
@ -38,17 +38,17 @@ module Risc
assert_equal OperatorInstruction , op.class assert_equal OperatorInstruction , op.class
assert_equal :r1 , op.left.symbol assert_equal :r1 , op.left.symbol
assert_equal :r2 , op.right.symbol assert_equal :r2 , op.right.symbol
assert_equal 5 , @interpreter.get_register(:r2)
assert_equal 1 , @interpreter.get_register(:r1) assert_equal 1 , @interpreter.get_register(:r1)
assert_equal 5 , @interpreter.get_register(:r2)
end end
def test_return def test_return
ret = main_ticks(60) ret = main_ticks(62)
assert_equal FunctionReturn , ret.class assert_equal FunctionReturn , ret.class
assert_equal :r1 , ret.register.symbol assert_equal :r1 , ret.register.symbol
assert_equal 24160 , @interpreter.get_register(ret.register) assert_equal 25824 , @interpreter.get_register(ret.register)
end end
def test_sys def test_sys
sys = main_ticks(65) sys = main_ticks(67)
assert_equal Syscall , sys.class assert_equal Syscall , sys.class
assert_equal :exit , sys.name assert_equal :exit , sys.name
end end

View File

@ -20,10 +20,10 @@ module Risc
RegToSlot, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, SlotToReg,
RegToSlot, Branch, SlotToReg, SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg, SlotToReg,
FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch, SlotToReg, RegToSlot, Branch, SlotToReg,
RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg,
Transfer, SlotToReg, SlotToReg, Branch, Syscall, FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch,
NilClass] Syscall, NilClass]
assert_equal 2 , get_return assert_equal 2 , get_return
end end
@ -42,7 +42,7 @@ module Risc
end end
def test_sys def test_sys
sys = main_ticks(60) sys = main_ticks(61)
assert_equal Syscall , sys.class assert_equal Syscall , sys.class
assert_equal :exit , sys.name assert_equal :exit , sys.name
end end

View File

@ -21,10 +21,10 @@ module Risc
SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg,
Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot,
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg,
RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg,
Transfer, SlotToReg, SlotToReg, Branch, Syscall, Branch, FunctionReturn, Transfer, SlotToReg, SlotToReg,
NilClass] Branch, Syscall, NilClass]
assert_equal 0 , get_return assert_equal 0 , get_return
end end
def test_zero def test_zero
@ -36,8 +36,8 @@ module Risc
assert_equal OperatorInstruction , op.class assert_equal OperatorInstruction , op.class
assert_equal :r1 , op.left.symbol assert_equal :r1 , op.left.symbol
assert_equal :r2 , op.right.symbol assert_equal :r2 , op.right.symbol
assert_equal 2**31 , @interpreter.get_register(:r2)
assert_equal 0 , @interpreter.get_register(:r1) assert_equal 0 , @interpreter.get_register(:r1)
assert_equal 2**31 , @interpreter.get_register(:r2)
end end
def test_overflow def test_overflow
main_ticks( 34 ) main_ticks( 34 )

View File

@ -21,10 +21,10 @@ module Risc
SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg,
Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot,
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg,
RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg,
Transfer, SlotToReg, SlotToReg, Branch, Syscall, Branch, FunctionReturn, Transfer, SlotToReg, SlotToReg,
NilClass] Branch, Syscall, NilClass]
assert_equal 10 , get_return assert_equal 10 , get_return
end end
def test_load_5 def test_load_5
@ -69,8 +69,8 @@ module Risc
assert_equal OperatorInstruction , op.class assert_equal OperatorInstruction , op.class
assert_equal :r1 , op.left.symbol assert_equal :r1 , op.left.symbol
assert_equal :r2 , op.right.symbol assert_equal :r2 , op.right.symbol
assert_equal 5 , @interpreter.get_register(:r2)
assert_equal 10 , @interpreter.get_register(:r1) assert_equal 10 , @interpreter.get_register(:r1)
assert_equal 5 , @interpreter.get_register(:r2)
end end
def test_load_int_space def test_load_int_space
cons = main_ticks(base + 6) cons = main_ticks(base + 6)
@ -102,7 +102,7 @@ module Risc
assert_equal :r4 , sl.register.symbol assert_equal :r4 , sl.register.symbol
end end
def test_sys def test_sys
sys = main_ticks(65) sys = main_ticks(67)
assert_equal Syscall , sys.class assert_equal Syscall , sys.class
assert_equal :exit , sys.name assert_equal :exit , sys.name
end end

View File

@ -21,9 +21,9 @@ module Risc
SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg,
SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg,
RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot,
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg,
Branch, Syscall, NilClass] SlotToReg, Branch, Syscall, NilClass]
assert_equal "Hello again" , @interpreter.stdout assert_equal "Hello again" , @interpreter.stdout
assert_equal 11 , get_return #bytes written assert_equal 11 , get_return #bytes written
end end

View File

@ -22,10 +22,10 @@ module Risc
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
Branch, RegToSlot, SlotToReg, SlotToReg, SlotToReg, Branch, RegToSlot, SlotToReg, SlotToReg, SlotToReg,
FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg,
Branch, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Branch, RegToSlot, SlotToReg, SlotToReg, SlotToReg,
Transfer, SlotToReg, SlotToReg, Branch, Syscall, FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch,
NilClass] Syscall, NilClass]
assert_equal "K".ord , get_return assert_equal "K".ord , get_return
end end
def test_reg_to_byte def test_reg_to_byte
@ -34,7 +34,7 @@ module Risc
assert_equal "K".ord , @interpreter.get_register(done.register) assert_equal "K".ord , @interpreter.get_register(done.register)
end end
def test_exit def test_exit
done = main_ticks(70) done = main_ticks(71)
assert_equal Syscall , done.class assert_equal Syscall , done.class
end end

View File

@ -12,8 +12,8 @@ module Risc
def test_if def test_if
#show_main_ticks # get output of what is in main #show_main_ticks # get output of what is in main
check_main_chain [LoadConstant, LoadConstant, OperatorInstruction, IsZero, LoadConstant, check_main_chain [LoadConstant, LoadConstant, OperatorInstruction, IsZero, LoadConstant,
OperatorInstruction, IsZero, LoadConstant, RegToSlot, SlotToReg, OperatorInstruction, IsZero, LoadConstant, RegToSlot, Branch,
SlotToReg, RegToSlot, SlotToReg, Branch, SlotToReg, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg,
Branch, Syscall, NilClass] Branch, Syscall, NilClass]
assert_equal 1 , get_return assert_equal 1 , get_return

View File

@ -22,7 +22,7 @@ module Risc
RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn,
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
LoadConstant, OperatorInstruction, IsZero, LoadConstant, RegToSlot, LoadConstant, OperatorInstruction, IsZero, LoadConstant, RegToSlot,
SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, Branch, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg,
SlotToReg, Branch, Syscall, NilClass] SlotToReg, Branch, Syscall, NilClass]
assert_equal 2 , get_return assert_equal 2 , get_return

View File

@ -22,14 +22,14 @@ module Risc
RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn,
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
LoadConstant, OperatorInstruction, IsZero, LoadConstant, OperatorInstruction, LoadConstant, OperatorInstruction, IsZero, LoadConstant, OperatorInstruction,
IsZero, LoadConstant, RegToSlot, Branch, SlotToReg, IsZero, LoadConstant, RegToSlot, Branch, Branch,
SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch, SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg,
Syscall, NilClass] Branch, Syscall, NilClass]
assert_equal 1 , get_return assert_equal 1 , get_return
end end
def test_exit def test_exit
done = main_ticks(71) done = main_ticks(72)
assert_equal Syscall , done.class assert_equal Syscall , done.class
end end
end end

View File

@ -11,7 +11,7 @@ module Risc
def test_if def test_if
#show_main_ticks # get output of what is in main #show_main_ticks # get output of what is in main
check_main_chain [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, check_main_chain [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot,
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
RegToSlot, RegToSlot, SlotToReg, Branch, RegToSlot, RegToSlot, RegToSlot, SlotToReg, Branch, RegToSlot,
LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg,
@ -22,7 +22,7 @@ module Risc
RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn,
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
LoadConstant, OperatorInstruction, IsZero, LoadConstant, RegToSlot, LoadConstant, OperatorInstruction, IsZero, LoadConstant, RegToSlot,
SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, Branch, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg,
SlotToReg, Branch, Syscall, NilClass] SlotToReg, Branch, Syscall, NilClass]
assert_equal 2 , get_return assert_equal 2 , get_return

View File

@ -22,14 +22,14 @@ module Risc
RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn,
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
LoadConstant, OperatorInstruction, IsZero, LoadConstant, OperatorInstruction, LoadConstant, OperatorInstruction, IsZero, LoadConstant, OperatorInstruction,
IsZero, LoadConstant, RegToSlot, Branch, SlotToReg, IsZero, LoadConstant, RegToSlot, Branch, Branch,
SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch, SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg,
Syscall, NilClass] Branch, Syscall, NilClass]
assert_equal 1 , get_return assert_equal 1 , get_return
end end
def test_exit def test_exit
done = main_ticks(71) done = main_ticks(72)
assert_equal Syscall , done.class assert_equal Syscall , done.class
end end
end end

View File

@ -37,9 +37,9 @@ module Risc
RegToSlot, SlotToReg, SlotToReg, RegToSlot, Branch, RegToSlot, SlotToReg, SlotToReg, RegToSlot, Branch,
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg,
SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot,
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, SlotToReg, SlotToReg, Branch, FunctionReturn, Transfer,
Branch, Syscall, NilClass] SlotToReg, SlotToReg, Branch, Syscall, NilClass]
assert_equal Fixnum , get_return.class assert_equal Fixnum , get_return.class
assert_equal 1 , get_return assert_equal 1 , get_return
end end
@ -60,13 +60,13 @@ module Risc
assert_equal DynamicJump , cal.class assert_equal DynamicJump , cal.class
end end
def test_return def test_return
ret = main_ticks(137) ret = main_ticks(139)
assert_equal FunctionReturn , ret.class assert_equal FunctionReturn , ret.class
link = @interpreter.get_register( ret.register ) link = @interpreter.get_register( ret.register )
assert_equal Fixnum , link.class assert_equal Fixnum , link.class
end end
def test_sys def test_sys
sys = main_ticks(142) sys = main_ticks(144)
assert_equal Syscall , sys.class assert_equal Syscall , sys.class
end end
end end

View File

@ -19,7 +19,7 @@ module Risc
@instruction_events << was @instruction_events << was
end end
def length def length
39 40
end end
def test_state_change def test_state_change
@interpreter.register_event :state_changed , self @interpreter.register_event :state_changed , self
@ -44,9 +44,10 @@ module Risc
SlotToReg, SlotToReg, RegToSlot, SlotToReg, Branch, SlotToReg, SlotToReg, RegToSlot, SlotToReg, Branch,
SlotToReg, RegToSlot, RegToSlot, SlotToReg, RegToSlot, SlotToReg, RegToSlot, RegToSlot, SlotToReg, RegToSlot,
SlotToReg, RegToSlot, LoadConstant, RegToSlot, FunctionCall, SlotToReg, RegToSlot, LoadConstant, RegToSlot, FunctionCall,
LoadConstant, RegToSlot, SlotToReg, SlotToReg, RegToSlot, LoadConstant, RegToSlot, Branch, SlotToReg, SlotToReg,
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn,
SlotToReg, SlotToReg, Branch, Syscall, NilClass] Transfer, SlotToReg, SlotToReg, Branch, Syscall,
NilClass]
assert_equal Fixnum , get_return.class assert_equal Fixnum , get_return.class
assert_equal 5 , get_return assert_equal 5 , get_return
end end

View File

@ -11,9 +11,10 @@ module Risc
def test_chain def test_chain
#show_main_ticks # get output of what is #show_main_ticks # get output of what is
check_main_chain [LoadConstant, RegToSlot, SlotToReg, SlotToReg, RegToSlot, check_main_chain [LoadConstant, RegToSlot, Branch, SlotToReg, SlotToReg,
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn,
SlotToReg, SlotToReg, Branch, Syscall, NilClass] Transfer, SlotToReg, SlotToReg, Branch, Syscall,
NilClass]
assert_equal 5 , get_return assert_equal 5 , get_return
end end
@ -28,29 +29,29 @@ module Risc
assert_equal 5 , @interpreter.get_register(load_ins.register).value assert_equal 5 , @interpreter.get_register(load_ins.register).value
end end
def test_return def test_return
ret = main_ticks(9) ret = main_ticks(10)
assert_equal FunctionReturn , ret.class assert_equal FunctionReturn , ret.class
link = @interpreter.get_register( ret.register ) link = @interpreter.get_register( ret.register )
assert_equal Fixnum , link.class assert_equal Fixnum , link.class
end end
def test_transfer def test_transfer
transfer = main_ticks(10) transfer = main_ticks(11)
assert_equal Transfer , transfer.class assert_equal Transfer , transfer.class
end end
def test_return_save def test_return_save
save = main_ticks(11) save = main_ticks(12)
assert_equal SlotToReg , save.class assert_equal SlotToReg , save.class
assert_equal :r0 , save.register.symbol assert_equal :r0 , save.register.symbol
assert_equal 5 , save.index assert_equal 5 , save.index
end end
def test_return_reduce def test_return_reduce
save = main_ticks(12) save = main_ticks(13)
assert_equal SlotToReg , save.class assert_equal SlotToReg , save.class
assert_equal :r0 , save.register.symbol assert_equal :r0 , save.register.symbol
assert_equal 2 , save.index assert_equal 2 , save.index
end end
def test_sys def test_sys
sys = main_ticks(14) sys = main_ticks(15)
assert_equal Syscall , sys.class assert_equal Syscall , sys.class
end end
end end

View File

@ -11,7 +11,7 @@ module Risc
def test_if def test_if
#show_main_ticks # get output of what is in main #show_main_ticks # get output of what is in main
check_main_chain [LoadConstant, SlotToReg, RegToSlot, SlotToReg, SlotToReg, check_main_chain [LoadConstant, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
SlotToReg, RegToSlot, LoadConstant, LoadConstant, SlotToReg, SlotToReg, RegToSlot, LoadConstant, LoadConstant, SlotToReg,
RegToSlot, RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, RegToSlot, SlotToReg, Branch, SlotToReg,
RegToSlot, SlotToReg, SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, RegToSlot,
@ -48,13 +48,13 @@ module Risc
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg,
SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch,
LoadConstant, OperatorInstruction, IsZero, SlotToReg, SlotToReg, LoadConstant, OperatorInstruction, IsZero, SlotToReg, SlotToReg,
RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg, RegToSlot,
SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer,
SlotToReg, Branch, Syscall, NilClass] SlotToReg, SlotToReg, Branch, Syscall, NilClass]
assert_equal 1 , get_return assert_equal 1 , get_return
end end
def test_exit def test_exit
done = main_ticks(198) done = main_ticks(199)
assert_equal Syscall , done.class assert_equal Syscall , done.class
end end
end end

View File

@ -48,14 +48,14 @@ module Risc
SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg,
FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
SlotToReg, Branch, LoadConstant, OperatorInstruction, IsZero, SlotToReg, Branch, LoadConstant, OperatorInstruction, IsZero,
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg,
RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg,
Transfer, SlotToReg, SlotToReg, Branch, Syscall, FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch,
NilClass] Syscall, NilClass]
assert_equal 0 , get_return assert_equal 0 , get_return
end end
def test_exit def test_exit
done = main_ticks(200) done = main_ticks(201)
assert_equal Syscall , done.class assert_equal Syscall , done.class
end end
end end

View File

@ -15,10 +15,10 @@ module Risc
LoadConstant, OperatorInstruction, IsZero, LoadConstant, OperatorInstruction, LoadConstant, OperatorInstruction, IsZero, LoadConstant, OperatorInstruction,
IsZero, LoadConstant, SlotToReg, Branch, RegToSlot, IsZero, LoadConstant, SlotToReg, Branch, RegToSlot,
Branch, SlotToReg, SlotToReg, LoadConstant, OperatorInstruction, Branch, SlotToReg, SlotToReg, LoadConstant, OperatorInstruction,
IsZero, SlotToReg, SlotToReg, RegToSlot, SlotToReg, IsZero, SlotToReg, SlotToReg, RegToSlot, Branch,
SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch, SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg,
Syscall, NilClass] Branch, Syscall, NilClass]
assert_kind_of Parfait::NilClass , get_return assert_kind_of Parfait::NilClass , get_return
end end
def test_load_false_const def test_load_false_const
@ -55,7 +55,7 @@ module Risc
assert check.label.name.start_with?("merge_label") , check.label.name assert check.label.name.start_with?("merge_label") , check.label.name
end end
def test_exit def test_exit
done = main_ticks(36) done = main_ticks(37)
assert_equal Syscall , done.class assert_equal Syscall , done.class
end end
end end

View File

@ -54,7 +54,7 @@ module Risc
end end
def test_pc1 def test_pc1
@interpreter.tick @interpreter.tick
assert_equal 23736 , @interpreter.pc assert_equal 25400 , @interpreter.pc
end end
def test_tick2 def test_tick2
@interpreter.tick @interpreter.tick
@ -68,7 +68,7 @@ module Risc
def test_pc2 def test_pc2
@interpreter.tick @interpreter.tick
@interpreter.tick @interpreter.tick
assert_equal 23740 , @interpreter.pc assert_equal 25404 , @interpreter.pc
end end
def test_tick_14_jump def test_tick_14_jump
14.times {@interpreter.tick} 14.times {@interpreter.tick}

View File

@ -25,7 +25,7 @@ module Risc
assert_equal 0 , Position.get(@linker.cpu_init).at assert_equal 0 , Position.get(@linker.cpu_init).at
end end
def test_cpu_at def test_cpu_at
assert_equal "0x6b6c" , Position.get(@linker.cpu_init.first).to_s assert_equal "0x722c" , Position.get(@linker.cpu_init.first).to_s
end end
def test_cpu_label def test_cpu_label
assert_equal Position , Position.get(@linker.cpu_init.first).class assert_equal Position , Position.get(@linker.cpu_init.first).class

View File

@ -79,6 +79,9 @@ module Risc
compiler = constant_setup("def meth; meth{return 'Ho'};return 'Hi';end") compiler = constant_setup("def meth; meth{return 'Ho'};return 'Hi';end")
assert compiler.constants.include?("Ho") assert compiler.constants.include?("Ho")
end end
def test_return_label
compiler = constant_setup("def meth; return 'Hi';end")
assert_equal "return_label", compiler.return_label.name
end
end end
end end

View File

@ -20,7 +20,7 @@ module Vool
assert_equal 2 , @inst.length assert_equal 2 , @inst.length
end end
def test_second_is_return def test_second_is_return
assert_equal ReturnSequence, @inst.last.class assert_equal ReturnJump, @inst.last.class
end end
def test_slot_starts_at_message def test_slot_starts_at_message
assert_equal :message , @inst.left.known_object assert_equal :message , @inst.left.known_object
@ -49,10 +49,10 @@ module Vool
end end
def test_return_is_last def test_return_is_last
assert_equal ReturnSequence , @ins.last.class assert_equal ReturnJump , @ins.last.class
end end
def test_array def test_array
check_array [MessageSetup,ArgumentTransfer,SimpleCall,SlotLoad,SlotLoad,ReturnSequence] , @ins check_array [MessageSetup,ArgumentTransfer,SimpleCall,SlotLoad,SlotLoad,ReturnJump] , @ins
end end
end end
end end

View File

@ -51,7 +51,7 @@ module Vool
assert @ins.next(6).right.slots.last.to_s.start_with?("tmp_") assert @ins.next(6).right.slots.last.to_s.start_with?("tmp_")
end end
def test_return def test_return
assert_equal ReturnSequence, @ins.next(7).class assert_equal ReturnJump, @ins.next(7).class
end end
end end
class TestYieldArgsSendMom < MiniTest::Test class TestYieldArgsSendMom < MiniTest::Test
@ -65,7 +65,7 @@ module Vool
def test_array def test_array
check_array [NotSameCheck, Label, MessageSetup, ArgumentTransfer, BlockYield , check_array [NotSameCheck, Label, MessageSetup, ArgumentTransfer, BlockYield ,
SlotLoad, SlotLoad, ReturnSequence] , @ins SlotLoad, SlotLoad, ReturnJump] , @ins
end end
def test_transfer def test_transfer
assert_equal ArgumentTransfer, @ins.next(3).class assert_equal ArgumentTransfer, @ins.next(3).class
@ -88,7 +88,7 @@ module Vool
end end
def test_array def test_array
check_array [NotSameCheck, Label, MessageSetup, ArgumentTransfer, BlockYield , check_array [NotSameCheck, Label, MessageSetup, ArgumentTransfer, BlockYield ,
SlotLoad, SlotLoad, ReturnSequence] , @ins SlotLoad, SlotLoad, ReturnJump] , @ins
end end
def test_transfer def test_transfer
assert_equal ArgumentTransfer, @ins.next(3).class assert_equal ArgumentTransfer, @ins.next(3).class