simple send test works again

This commit is contained in:
Torsten Ruger
2018-03-15 21:54:03 +05:30
parent 9b4fcf0e0f
commit 1def69c783
6 changed files with 33 additions and 27 deletions

View File

@ -1,31 +1,31 @@
module Vool
# relies on @stats and receiver_type method
# relies on @ins and receiver_type method
module SimpleSendHarness
def test_compiles_not_array
assert Array != @stats.class , @stats
assert Array != @ins.class , @ins
end
def test_class_compiles
assert_equal Mom::MessageSetup , @stats.class , @stats
assert_equal Mom::MessageSetup , @ins.class , @ins
end
def test_two_instructions_are_returned
assert_equal 3 , @stats.length , @stats.to_rxf
assert_equal 4 , @ins.length , @ins
end
def test_receiver_move_class
assert_equal Mom::ArgumentTransfer, @stats[1].class
assert_equal Mom::ArgumentTransfer, @ins.next(2).class
end
def test_receiver_move
assert_equal :receiver, @stats[1].receiver.left.slots[1]
assert_equal :receiver, @ins.next(1).left.slots[1]
end
def test_receiver
type , value = receiver
assert_equal type, @stats[1].receiver.right.class
assert_equal value, @stats[1].receiver.right.value
assert_equal type, @ins.next.right.class
assert_equal value, @ins.next.right.value
end
def test_call_is
assert_equal Mom::SimpleCall, @stats[2].class
assert_equal Mom::SimpleCall, @ins.next(3).class
end
def test_call_has_method
assert_equal Parfait::TypedMethod, @stats[2].method.class
assert_equal Parfait::TypedMethod, @ins.next(3).method.class
end
end
end

View File

@ -8,22 +8,22 @@ module Vool
def setup
Risc.machine.boot
@stats = compile_first_method( "5.mod4(1,2)").first
@ins = compile_first_method( "5.mod4(1,2)")
end
def receiver
[Mom::IntegerConstant , 5]
end
def test_args_two_move
assert_equal :next_message, @stats[1].arguments[1].left.slots[0]
assert_equal :arguments, @stats[1].arguments[1].left.slots[1]
assert_equal :next_message, @ins.next(2).arguments[1].left.slots[0]
assert_equal :arguments, @ins.next(2).arguments[1].left.slots[1]
end
def test_args_two_str
assert_equal Mom::IntegerConstant, @stats[1].arguments[1].right.class
assert_equal 2, @stats[1].arguments[1].right.value
assert_equal Mom::IntegerConstant, @ins.next(2).arguments[1].right.class
assert_equal 2, @ins.next(2).arguments[1].right.value
end
def test_array
check_array [MessageSetup,ArgumentTransfer,SimpleCall] , @stats
check_array [Mom::MessageSetup,Mom::SlotLoad,Mom::ArgumentTransfer,Mom::SimpleCall] , @ins
end
end
end