position tests working

This commit is contained in:
Torsten Ruger 2018-07-02 09:35:57 +03:00
parent 22408b86c6
commit f4b1290e58
2 changed files with 11 additions and 8 deletions

View File

@ -33,6 +33,7 @@ module Risc
def initialize(object) def initialize(object)
@at = INVALID @at = INVALID
@object = object @object = object
raise "Object may not be nil" if object.nil?
end end
# utility to register events of type :position_changed # utility to register events of type :position_changed

View File

@ -4,17 +4,17 @@ module Risc
class TestMachinePositions < MiniTest::Test class TestMachinePositions < MiniTest::Test
def setup_for(platform) def setup_for(platform)
Parfait.boot! Parfait.boot!
@machine = Risc.machine.boot Risc.boot!
@machine.translate(platform) @linker = Mom::MomCompiler.new.translate(platform)
@machine.position_all @linker.position_all
end end
def test_cpu_init def test_cpu_init
setup_for(:interpreter) setup_for(:interpreter)
assert Position.get @machine.cpu_init #TODO assert Position.get @linker.cpu_init
end end
def test_cpu_label def test_cpu_label
setup_for(:interpreter) setup_for(:interpreter)
assert Position.get( @machine.cpu_init.label ) #TODO assert Position.get( @linker.cpu_init.label )
end end
def test_label_positions_match def test_label_positions_match
setup_for(:interpreter) setup_for(:interpreter)
@ -25,7 +25,7 @@ module Risc
end end
def test_cpu_first_arm def test_cpu_first_arm
setup_for(:arm) setup_for(:arm)
assert Position.get( @machine.cpu_init.first ) #TODO assert Position.get( @linker.cpu_init.first )
end end
def test_has_arm_pos def test_has_arm_pos
has_positions(:arm) has_positions(:arm)
@ -35,7 +35,7 @@ module Risc
end end
def has_positions(platform) def has_positions(platform)
setup_for(platform) setup_for(platform)
@machine.object_positions.each do |obj , pos| @linker.object_positions.each do |obj , pos|
assert Position.get(obj) assert Position.get(obj)
end end
end end
@ -50,9 +50,11 @@ module Risc
Parfait.object_space.each_type do |type| Parfait.object_space.each_type do |type|
type.each_method do |method| type.each_method do |method|
assert Position.get(method.binary) assert Position.get(method.binary)
assert Position.get(method.cpu_instructions)
end end
end end
@linker.assemblers.each do |asm|
assert Position.get(asm.instructions)
end
end end
end end
end end