rubyx/test/mom/test_method_compiler.rb

37 lines
1.1 KiB
Ruby
Raw Normal View History

require_relative "helper"
module Mom
class TestMethodCompiler < MiniTest::Test
include ScopeHelper
def setup
end
def in_test_vool(body = "@ivar = 5;return")
2019-08-10 11:42:47 +02:00
code = in_Test("def meth; #{body};end")
RubyX::RubyXCompiler.new(RubyX.default_test_options).ruby_to_mom(code)
end
2019-08-10 11:42:47 +02:00
def test_method
in_test_vool()
method = Parfait.object_space.get_class_by_name(:Test).get_method(:meth)
assert_equal Parfait::VoolMethod , method.class
end
def test_method_mom_col
mom = in_test_vool()
assert_equal Mom::MomCollection , mom.class
assert_equal Mom::MethodCompiler , mom.compilers.first.class
end
def test_compiles_risc
compiler = in_test_vool().compilers.first.to_risc
assert_equal Risc::MethodCompiler , compiler.class
assert_equal Risc::Label , compiler.risc_instructions.class
end
def test_compiles_all_risc
compiler = in_test_vool().compilers.first.to_risc
assert_equal Risc::LoadConstant , compiler.risc_instructions.next.class
2019-08-23 14:31:04 +02:00
assert_equal 16 , compiler.risc_instructions.length
end
end
end