require_relative "helper" module Risc class TestMachinePositions < MiniTest::Test def setup @machine = Risc.machine.boot end def test_cpu_init @machine.translate(:interpreter) @machine.position_all assert Position.get @machine.cpu_init end def test_cpu_label @machine.translate(:interpreter) @machine.position_all assert Position.get( @machine.cpu_init.label ) end def test_cpu_first_arm @machine.translate(:arm) @machine.position_all assert Position.get( @machine.cpu_init.first ) end def test_has_arm_pos has_positions(:arm) end def test_has_int_pos has_positions(:interpreter) end def has_positions(platform) @machine.translate(:arm) @machine.position_all @machine.objects.each do |id,obj| assert Position.get(obj) end end def test_has_arm_meth meth_positions(:arm) end def test_has_int_meth meth_positions(:interpreter) end def meth_positions(platform) @machine.translate(:arm) @machine.position_all Parfait.object_space.each_type do |type| type.each_method do |method| assert Position.get(method.binary) assert Position.get(method.cpu_instructions) end end end end end