rubyx/test/vool/to_mom/send/test_send_cached_simple.rb
Torsten Ruger 33ffcf1d88 move resolve_method code from word to mom
rather make resolve an instruction.
Since it was coded in risc anyway, we not only save the setup and call
But also makes the mom instruction flow clearer
The method really came from not wanting to code it in risc, but with
the Builder, that is now surprisingly painless
2018-04-08 18:55:17 +03:00

35 lines
935 B
Ruby

require_relative "../helper"
module Vool
class TestSendCachedSimpleMom < MiniTest::Test
include MomCompile
include Mom
def setup
Risc.machine.boot
@ins = compile_first_method( "a = 5; a.mod4")
end
def test_check_type
assert_equal NotSameCheck , @ins.next.class , @ins
end
def test_type_update
load = @ins.next(2)
assert_equal :message , load.right.known_object , load
assert_equal :receiver , load.right.slots[0] , load
assert_equal :type , load.right.slots[1] , load
end
def test_check_resolve_call
assert_equal ResolveMethod , @ins.next(3).class , @ins
end
def test_dynamic_call_last
assert_equal DynamicCall , @ins.last.class , @ins
end
def test_array
check_array [SlotLoad, NotSameCheck, SlotLoad, ResolveMethod, Label, MessageSetup ,
ArgumentTransfer, DynamicCall] , @ins
end
end
end