rubyx/test/risc/test_platform.rb
Torsten 0137056b89 change platform to return register names
not just the number of them
also adds protocol to map registers
(like message to r0 , or syscalls)
2020-03-22 14:31:43 +02:00

37 lines
1008 B
Ruby

require_relative "../helper"
module Risc
class TestPlaform < MiniTest::Test
def test_arm_factory_exists
assert Platform.for("Arm")
end
def test_inter_factory_exists
assert Platform.for("Interpreter")
end
def test_factory_raise
assert_raises{ Platform.for("NotArm")}
end
def test_allocate
allocator = Platform.for("Interpreter").allocator(FakeCompiler.new)
assert_equal FakeCompiler , allocator.compiler.class
end
def test_map_message
assert_equal :r0 , Platform.new.assign_reg?(:message)
end
def test_map_sys
assert_equal :r0 , Platform.new.assign_reg?(:syscall_1)
end
def test_map_id
assert_nil Platform.new.assign_reg?(:id_some_id)
end
def test_names_len
assert_equal 15 , Platform.new.register_names.length
end
def test_names_r
assert_equal "r" , Platform.new.register_names.first.to_s[0]
assert_equal "r" , Platform.new.register_names.last.to_s[0]
end
end
end