add returns to tests so program ends in syscall exit

This commit is contained in:
Torsten Ruger 2018-04-01 22:19:21 +03:00
parent 9efeb58061
commit 48e4e3de9a
2 changed files with 14 additions and 10 deletions

View File

@ -3,12 +3,11 @@ require_relative "helper"
module Risc module Risc
class InterpretGetByte < MiniTest::Test class InterpretGetByte < MiniTest::Test
include Ticker include Ticker
def setup def setup
@string_input = as_main("'Hello'.get_internal_byte(1)") @string_input = as_main("return 'Hello'.get_internal_byte(1)")
super super
end end
def test_chain def test_chain
#show_ticks # get output of what is #show_ticks # get output of what is
check_chain [Branch, Label, LoadConstant, SlotToReg, LoadConstant, check_chain [Branch, Label, LoadConstant, SlotToReg, LoadConstant,
@ -25,13 +24,16 @@ module Risc
Label, SlotToReg, SlotToReg, SlotToReg, SlotToReg, Label, SlotToReg, SlotToReg, SlotToReg, SlotToReg,
ByteToReg, LoadConstant, SlotToReg, SlotToReg, RegToSlot, ByteToReg, LoadConstant, SlotToReg, SlotToReg, RegToSlot,
RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot,
SlotToReg, SlotToReg, FunctionReturn, Label, NilClass] SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg,
RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
SlotToReg, RegToSlot, SlotToReg, SlotToReg, FunctionReturn,
Transfer, Syscall, NilClass]
assert_equal Parfait::Integer , get_return.class assert_equal Parfait::Integer , get_return.class
assert_equal "H".ord , get_return.value assert_equal "H".ord , get_return.value
end end
def test_exit def test_exit
done = ticks(75) done = ticks(87)
assert_equal NilClass , done.class assert_equal Syscall , done.class
end end
def test_byte_to_reg def test_byte_to_reg

View File

@ -5,7 +5,7 @@ module Risc
include Ticker include Ticker
def setup def setup
@string_input = as_main("'Hello'.set_internal_byte(1,75)") @string_input = as_main("return 'Hello'.set_internal_byte(1,75)")
super super
end end
@ -26,7 +26,9 @@ module Risc
SlotToReg, SlotToReg, SlotToReg, SlotToReg, SlotToReg, SlotToReg, SlotToReg, SlotToReg, SlotToReg, SlotToReg,
SlotToReg, SlotToReg, RegToByte, RegToSlot, SlotToReg, SlotToReg, SlotToReg, RegToByte, RegToSlot, SlotToReg,
SlotToReg, RegToSlot, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, RegToSlot, SlotToReg, SlotToReg, FunctionReturn,
Label, NilClass] SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
SlotToReg, FunctionReturn, Transfer, Syscall, NilClass]
assert_equal Parfait::Word , get_return.class assert_equal Parfait::Word , get_return.class
assert_equal "Kello" , get_return.to_string assert_equal "Kello" , get_return.to_string
end end
@ -36,8 +38,8 @@ 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 = ticks(77) done = ticks(89)
assert_equal NilClass , done.class assert_equal Syscall , done.class
end end
end end