test multiple assigns
This commit is contained in:
parent
98f3898acd
commit
6a8bb90704
30
test/risc/interpreter/test_assign_return.rb
Normal file
30
test/risc/interpreter/test_assign_return.rb
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
require_relative "helper"
|
||||||
|
|
||||||
|
module Risc
|
||||||
|
class InterpreterAssignReturn < MiniTest::Test
|
||||||
|
include Ticker
|
||||||
|
|
||||||
|
def setup
|
||||||
|
@string_input = as_main("a = 5 + 5 ; return a")
|
||||||
|
super
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_chain
|
||||||
|
#show_main_ticks # get output of what is
|
||||||
|
check_main_chain [Label, LoadConstant, LoadConstant, SlotToReg, RegToSlot,
|
||||||
|
RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
|
||||||
|
SlotToReg, RegToSlot, SlotToReg, RegToSlot, SlotToReg,
|
||||||
|
RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant,
|
||||||
|
SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg,
|
||||||
|
RegToSlot, SlotToReg, LoadConstant, FunctionCall, Label,
|
||||||
|
SlotToReg, SlotToReg, SlotToReg, SlotToReg, SlotToReg,
|
||||||
|
OperatorInstruction, LoadConstant, SlotToReg, SlotToReg, RegToSlot,
|
||||||
|
RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot,
|
||||||
|
SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg,
|
||||||
|
RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
|
||||||
|
SlotToReg, RegToSlot, SlotToReg, SlotToReg, FunctionReturn,
|
||||||
|
Transfer, Syscall, NilClass]
|
||||||
|
assert_equal 10 , get_return.value
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
42
test/risc/interpreter/test_assign_thrice.rb
Normal file
42
test/risc/interpreter/test_assign_thrice.rb
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
require_relative "helper"
|
||||||
|
|
||||||
|
module Risc
|
||||||
|
class InterpreterAssignThrice < MiniTest::Test
|
||||||
|
include Ticker
|
||||||
|
|
||||||
|
def setup
|
||||||
|
@string_input = as_main("a = 5 ;a = 5 + a ;a = 5 + a ; return a")
|
||||||
|
super
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_chain
|
||||||
|
#show_main_ticks # get output of what is
|
||||||
|
check_main_chain [Label, LoadConstant, SlotToReg, RegToSlot, LoadConstant,
|
||||||
|
LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg,
|
||||||
|
SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot,
|
||||||
|
SlotToReg, RegToSlot, SlotToReg, RegToSlot, LoadConstant,
|
||||||
|
SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg,
|
||||||
|
SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot,
|
||||||
|
SlotToReg, LoadConstant, FunctionCall, Label, SlotToReg,
|
||||||
|
SlotToReg, SlotToReg, SlotToReg, SlotToReg, OperatorInstruction,
|
||||||
|
LoadConstant, SlotToReg, SlotToReg, RegToSlot, RegToSlot,
|
||||||
|
RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
|
||||||
|
SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot,
|
||||||
|
LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot,
|
||||||
|
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
|
||||||
|
RegToSlot, SlotToReg, RegToSlot, SlotToReg, RegToSlot,
|
||||||
|
LoadConstant, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
|
||||||
|
SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg,
|
||||||
|
RegToSlot, SlotToReg, LoadConstant, FunctionCall, Label,
|
||||||
|
SlotToReg, SlotToReg, SlotToReg, SlotToReg, SlotToReg,
|
||||||
|
OperatorInstruction, LoadConstant, SlotToReg, SlotToReg, RegToSlot,
|
||||||
|
RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot,
|
||||||
|
SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg,
|
||||||
|
RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
|
||||||
|
SlotToReg, RegToSlot, SlotToReg, SlotToReg, FunctionReturn,
|
||||||
|
Transfer, Syscall, NilClass]
|
||||||
|
assert_equal 15 , get_return.value
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
31
test/risc/interpreter/test_assign_twice.rb
Normal file
31
test/risc/interpreter/test_assign_twice.rb
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
require_relative "helper"
|
||||||
|
|
||||||
|
module Risc
|
||||||
|
class InterpreterAssignTwice < MiniTest::Test
|
||||||
|
include Ticker
|
||||||
|
|
||||||
|
def setup
|
||||||
|
@string_input = as_main("a = 5 ;a = 5 + a ; return a")
|
||||||
|
super
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_chain
|
||||||
|
#show_main_ticks # get output of what is
|
||||||
|
check_main_chain [Label, LoadConstant, SlotToReg, RegToSlot, LoadConstant,
|
||||||
|
LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg,
|
||||||
|
SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot,
|
||||||
|
SlotToReg, RegToSlot, SlotToReg, RegToSlot, LoadConstant,
|
||||||
|
SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg,
|
||||||
|
SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot,
|
||||||
|
SlotToReg, LoadConstant, FunctionCall, Label, SlotToReg,
|
||||||
|
SlotToReg, SlotToReg, SlotToReg, SlotToReg, OperatorInstruction,
|
||||||
|
LoadConstant, SlotToReg, SlotToReg, RegToSlot, RegToSlot,
|
||||||
|
RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
|
||||||
|
SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot,
|
||||||
|
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
|
||||||
|
RegToSlot, SlotToReg, SlotToReg, FunctionReturn, Transfer,
|
||||||
|
Syscall, NilClass]
|
||||||
|
assert_equal 10 , get_return.value
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user