found the culprit

This commit is contained in:
Torsten Ruger 2018-03-28 11:37:17 +03:00
parent 500851d246
commit fcb7f652eb
3 changed files with 36 additions and 9 deletions

View File

@ -97,7 +97,7 @@ module Risc
def create_binary
objects.each do |id , method|
next unless method.is_a? Parfait::TypedMethod
puts "CODE1 #{method.name}:#{}"
puts "Binary for #{method.name}:#{}"
writer = BinaryWriter.new(method.binary)
writer.assemble(method.cpu_instructions)
end

View File

@ -1,7 +1,7 @@
require_relative "../helper"
module Risc
class TestMachine < MiniTest::Test
class TestMachineObjects < MiniTest::Test
def setup
@machine = Risc.machine.boot
@ -11,20 +11,18 @@ module Risc
assert_equal Hash , objects.class
assert 350 < objects.length
end
def test_position_length
end
class TestMachinePositions < MiniTest::Test
def setup
@machine = Risc.machine.boot
@machine.position_all
objects = @machine.objects
assert_equal Hash , objects.class
assert 350 < objects.length
end
def test_has_positions
@machine.position_all
@machine.objects.each do |id,obj|
assert Positioned.position(obj)
end
end
def test_binary
@machine.position_all
@machine.create_binary
end
end

View File

@ -1,5 +1,8 @@
require_relative "../helper"
class DevNull
def write_unsigned_int_32( _ );end
end
module Risc
class TestTranslator < MiniTest::Test
@ -14,8 +17,34 @@ module Risc
end
def test_translate_space
@assembler = Assembler.new(@machine , Collector.collect_space)
assert @machine.translate_arm
end
def test_no_loops_in_chain
@machine.position_all
init = Parfait.object_space.get_init
all = []
init.cpu_instructions.each do |ins|
assert !all.include?(ins)
all << ins
end
end
def test_no_risc
@machine.translate_arm
@machine.position_all
@machine.objects.each do |id , method|
next unless method.is_a? Parfait::TypedMethod
next unless method.name == :__init__
method.cpu_instructions.each do |ins|
puts "INS #{ins}:#{}"
begin
ins.assemble(DevNull.new)
rescue LinkException
ins.assemble(DevNull.new)
end
end
end
end
end
end