a little more minimal elf tests

This commit is contained in:
Torsten Ruger
2016-12-31 15:08:32 +02:00
parent fb414cecd6
commit a2ece04b6d
5 changed files with 31 additions and 17 deletions

View File

@@ -2,18 +2,32 @@ require_relative "../helper"
class TestZeroCode < MiniTest::Test
def test_string_put
machine = Register.machine.boot
space = Parfait.object_space
space.each_type do | type |
def setup
@machine = Register.machine.boot
@space = Parfait.object_space
@space.each_type do | type |
type.method_names.each do |method|
type.remove_method(method)
type.remove_method(method) unless keeper(method)
end
end
assert_equal 0 , space.collect_methods.length
machine.collect_space
machine.translate_arm
# writer = Elf::ObjectWriter.new
# writer.save "test/zero.o"
@machine.collect_space
end
def keeper name
name == :main or name == :__init__
end
def test_empty_translate
assert_equal 2 , @space.collect_methods.length
@machine.translate_arm
writer = Elf::ObjectWriter.new
writer.save "test/zero.o"
end
def test_methods_match_objects
assert_equal 2 , @space.collect_methods.length
@machine.objects.each do |id , objekt|
next unless objekt.is_a? Parfait::TypedMethod
assert keeper(objekt.name) , "CODE1 #{objekt.name}"
end
end
end