2015-11-07 11:18:08 +01:00
|
|
|
require_relative "helper"
|
2015-10-14 12:48:21 +02:00
|
|
|
|
2015-10-22 17:16:29 +02:00
|
|
|
module Register
|
2015-10-14 14:17:33 +02:00
|
|
|
class TestCall < MiniTest::Test
|
2015-11-07 11:18:08 +01:00
|
|
|
include ExpressionHelper
|
2016-12-10 14:26:25 +01:00
|
|
|
include AST::Sexp
|
2015-10-14 12:48:21 +02:00
|
|
|
|
|
|
|
def setup
|
2015-10-22 17:16:29 +02:00
|
|
|
Register.machine.boot
|
2015-10-14 20:57:37 +02:00
|
|
|
@output = Register::RegisterValue
|
2015-10-14 12:48:21 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
def test_call_main_plain
|
2016-12-10 22:07:04 +01:00
|
|
|
@input = s(:call,s(:name, :main),s(:arguments))
|
2015-10-14 12:48:21 +02:00
|
|
|
check
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_call_main_int
|
2016-12-30 13:10:49 +01:00
|
|
|
Parfait.object_space.get_main.add_argument(:blar , :Integer)
|
2016-12-10 22:07:04 +01:00
|
|
|
@input =s(:call,s(:name, :main),s(:arguments , s(:int, 1)))
|
2015-10-14 15:16:03 +02:00
|
|
|
check
|
|
|
|
end
|
|
|
|
|
2015-10-14 12:48:21 +02:00
|
|
|
def test_call_main_string
|
2016-12-30 13:10:49 +01:00
|
|
|
Parfait.object_space.get_main.add_argument(:blar , :Word)
|
2016-12-10 22:07:04 +01:00
|
|
|
@input =s(:call,s(:name, :main),s(:arguments , s(:string, "1") ))
|
2015-10-14 12:48:21 +02:00
|
|
|
check
|
|
|
|
end
|
|
|
|
|
2015-10-14 20:34:18 +02:00
|
|
|
def test_call_main_op
|
2016-12-30 13:10:49 +01:00
|
|
|
Parfait.object_space.get_main.add_local(:bar , :Integer)
|
|
|
|
Parfait.object_space.get_main.add_argument(:blar , :Integer)
|
2016-12-10 22:07:04 +01:00
|
|
|
@input =s(:call,s(:name, :main),s(:arguments , s(:name, :bar) ))
|
2015-10-14 12:48:21 +02:00
|
|
|
check
|
|
|
|
end
|
2015-10-14 15:16:03 +02:00
|
|
|
|
|
|
|
def test_call_string_put
|
2016-12-10 22:07:04 +01:00
|
|
|
@input = s(:call,s(:name, :putstring),s(:arguments),s(:receiver,s(:string, "Hello Raisa, I am salama")))
|
2015-10-14 15:16:03 +02:00
|
|
|
check
|
|
|
|
end
|
|
|
|
|
2015-10-14 12:48:21 +02:00
|
|
|
end
|
|
|
|
end
|