diff --git a/test/elf/helper.rb b/test/elf/helper.rb index 762fce13..f58628e7 100644 --- a/test/elf/helper.rb +++ b/test/elf/helper.rb @@ -19,7 +19,7 @@ module Elf in_space("def main(arg);#{input};end") end def check(input, file) - RubyX::RubyXCompiler.ruby_to_binary( input ) + RubyX::RubyXCompiler.new(input).ruby_to_binary( :arm ) writer = Elf::ObjectWriter.new(Risc.machine) writer.save "test/#{file}.o" end diff --git a/test/elf/test_zero.rb b/test/elf/test_zero.rb index 78a50cd4..7d2057d7 100644 --- a/test/elf/test_zero.rb +++ b/test/elf/test_zero.rb @@ -1,36 +1,20 @@ -require_relative "../helper" +require_relative "helper" -class TestZeroCode < MiniTest::Test +module Elf - def setup - Parfait.boot! - @machine = Risc.machine.boot - @space = Parfait.object_space - @space.each_type do | type | - type.method_names.each do |method| - type.remove_method(method) unless keeper(method) - end + class TestZeroCode < FullTest + + def setup + super + @linker = RubyX::RubyXCompiler.new(as_main("return 1")).ruby_to_risc(:arm) + @linker.position_all + @linker.create_binary end - @objects = Risc::Collector.collect_space - end - def keeper name - name == :main or name == :__init__ - end - def test_empty_translate - assert_equal 2 , @space.get_all_methods.length - @machine.translate(:arm) - @machine.position_all - @machine.create_binary - writer = Elf::ObjectWriter.new(@machine ) - writer.save "test/zero.o" - end - - def test_methods_match_objects - assert_equal 2 , @space.get_all_methods.length - @objects.each do |id , objekt| - next unless objekt.is_a? Parfait::TypedMethod - assert keeper(objekt.name) , "CODE1 #{objekt.name}" + def test_empty_translate + writer = Elf::ObjectWriter.new(@linker ) + writer.save "test/zero.o" end + end end diff --git a/test/mom/helper.rb b/test/mom/helper.rb index faa65a03..73b46bad 100644 --- a/test/mom/helper.rb +++ b/test/mom/helper.rb @@ -29,9 +29,9 @@ module Risc end def produce_instructions assert @expect , "No output given" - RubyX::RubyXCompiler.new(as_test_main).ruby_to_binary( :interpreter) - test = Parfait.object_space.get_class_by_name :Test - test.instance_type.get_method(:main).cpu_instructions + linker = RubyX::RubyXCompiler.new(as_test_main).ruby_to_risc(:interpreter) + compiler = linker.assemblers.find{|c| c.method.name == :main and c.method.for_type.object_class.name == :Test} + compiler.instructions end def check_nil produced = produce_instructions diff --git a/test/risc/position/test_code_position.rb b/test/risc/position/test_code_position.rb index 70dec0ca..6df0daf2 100644 --- a/test/risc/position/test_code_position.rb +++ b/test/risc/position/test_code_position.rb @@ -4,8 +4,6 @@ module Risc class TestPositionTranslated < MiniTest::Test def setup Parfait.boot! - machine = Risc.machine.boot - machine.translate(:interpreter) @binary = Parfait::BinaryCode.new(1) @method = Parfait.object_space.types.values.first.methods @label = Risc.label("hi","ho") @@ -13,11 +11,11 @@ module Risc def test_bin_propagates_existing @binary.extend_to(16) - CodeListener.init( @binary).set(0) + CodeListener.init( @binary , :interpreter).set(0) assert_equal @binary.padded_length , Position.get(@binary.next).at end def test_bin_propagates_after - CodeListener.init( @binary).set(0) + CodeListener.init( @binary , :interpreter).set(0) @binary.extend_to(16) assert_equal @binary.padded_length , Position.get(@binary.next).at end diff --git a/test/risc/test_builder.rb b/test/risc/test_builder.rb index 8f34fb3c..f4da8601 100644 --- a/test/risc/test_builder.rb +++ b/test/risc/test_builder.rb @@ -104,12 +104,13 @@ module Risc Parfait.boot! Risc.boot! @init = Parfait.object_space.get_init - @builder = Risc::MethodCompiler.new( @init ).compiler_builder(@init) + @compiler = Risc::MethodCompiler.new( @init ) + @builder = @compiler.compiler_builder(@init) end def test_inserts_built r1 = RegisterValue.new(:r1 , :Space) @builder.build{ space << r1 } - assert_equal Transfer , @init.risc_instructions.next.class , @init.risc_instructions.next + assert_equal Transfer , @compiler.risc_instructions.next.class end end diff --git a/test/risc/test_parfait_adapter.rb b/test/risc/test_parfait_adapter.rb index c03329c6..01b23296 100644 --- a/test/risc/test_parfait_adapter.rb +++ b/test/risc/test_parfait_adapter.rb @@ -4,7 +4,7 @@ module Parfait class TestAdapter < MiniTest::Test def setup - Risc.machine.boot + Parfait.boot! end def test_list_create_from_array diff --git a/test/risc/test_text_writer.rb b/test/risc/test_text_writer.rb index 8795a0e2..920e028f 100644 --- a/test/risc/test_text_writer.rb +++ b/test/risc/test_text_writer.rb @@ -1,16 +1,18 @@ require_relative "../helper" module Risc - class TestTextWriter #< MiniTest::Test + class TestTextWriter < MiniTest::Test def setup - @machine = Risc.machine.boot + Parfait.boot! + Risc.boot! + @linker = Mom::MomCompiler.new.translate(:arm) end def test_init - @text_writer = TextWriter.new(@machine) + @text_writer = TextWriter.new(@linker) end def test_write_fails - @text_writer = TextWriter.new(@machine) + @text_writer = TextWriter.new(@linker) assert_raises{ @text_writer.write_as_string} #must translate first end end @@ -18,11 +20,11 @@ module Risc def setup Parfait.boot! - @machine = Risc.machine.boot - @machine.translate(:arm) - @machine.position_all - @machine.create_binary - @text_writer = TextWriter.new(@machine) + Risc.boot! + @linker = Mom::MomCompiler.new.translate(:arm) + @linker.position_all + @linker.create_binary + @text_writer = TextWriter.new(@linker) end def test_write_all assert @text_writer.write_as_string