add returns to tests so program ends in syscall exit
This commit is contained in:
parent
9efeb58061
commit
48e4e3de9a
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user