rubyx/test/risc/test_method_compiler.rb
Torsten Rüger dcbc3e17be refactor risc_collection
move code that operates on compiler to the compiler class
this leaves the collection thin, very thin indeed
2019-09-28 15:37:02 +03:00

33 lines
1.1 KiB
Ruby

require_relative "helper"
module Risc
class TestMethodCompiler < MiniTest::Test
include ScopeHelper
def setup
code = in_Test("def meth; @ivar = 5;return ;end")
rubyx = RubyX::RubyXCompiler.new(RubyX.default_test_options)
@compiler = rubyx.ruby_to_mom(code).compilers.to_risc
end
def test_compiles_risc
assert_equal Risc::MethodCompiler , @compiler.class
assert_equal Risc::Label , @compiler.risc_instructions.class
end
def test_compiles_all_risc
assert_equal Risc::LoadConstant , @compiler.risc_instructions.next.class
assert_equal 16 , @compiler.risc_instructions.length
end
def test_translate_cpu
cpu = @compiler.translate_cpu(Platform.for(:arm).translator)
assert_equal Assembler , cpu.class
assert_equal :meth , cpu.callable.name
end
def test_translate_method
ass = @compiler.translate_method(Platform.for(:arm).translator , [])
assert_equal Array , ass.class
assert_equal Assembler , ass.first.class
assert_equal :meth , ass.first.callable.name
end
end
end