a little more minimal elf tests
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user