add parfait block
This commit is contained in:
@ -7,5 +7,11 @@ module Parfait
|
||||
Parfait.boot!
|
||||
@space = Parfait.object_space
|
||||
end
|
||||
def make_method
|
||||
@obj = Parfait.object_space.get_class_by_name(:Object).instance_type
|
||||
@args = Parfait::Type.for_hash( @obj.object_class , { bar: :Integer , foo: :Type})
|
||||
@frame = Parfait::Type.for_hash( @obj.object_class , { local_bar: :Integer , local_foo: :Type})
|
||||
@method = Parfait::CallableMethod.new( @obj , :meth , @args , @frame)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
24
test/parfait/test_block.rb
Normal file
24
test/parfait/test_block.rb
Normal file
@ -0,0 +1,24 @@
|
||||
require_relative "helper"
|
||||
|
||||
module Parfait
|
||||
class TestBlock < ParfaitTest
|
||||
|
||||
def setup
|
||||
super
|
||||
make_method
|
||||
end
|
||||
|
||||
def test_make_block
|
||||
assert_equal Block , @method.create_block(@args , @frame ).class
|
||||
end
|
||||
|
||||
def test_block_type
|
||||
assert_equal @method.self_type , @method.create_block(@args , @frame ).self_type
|
||||
end
|
||||
|
||||
def test_block_in_method
|
||||
assert @method.has_block( @method.create_block(@args , @frame ))
|
||||
end
|
||||
|
||||
end
|
||||
end
|
@ -5,10 +5,7 @@ module Parfait
|
||||
|
||||
def setup
|
||||
super
|
||||
@obj = Parfait.object_space.get_class_by_name(:Object).instance_type
|
||||
@args = Parfait::Type.for_hash( @obj.object_class , { bar: :Integer , foo: :Type})
|
||||
@frame = Parfait::Type.for_hash( @obj.object_class , { local_bar: :Integer , local_foo: :Type})
|
||||
@method = Parfait::CallableMethod.new( @obj , :meth , @args , @frame)
|
||||
make_method
|
||||
end
|
||||
|
||||
def test_method_name
|
||||
|
@ -4,7 +4,7 @@ module Parfait
|
||||
class TestSpace < ParfaitTest
|
||||
|
||||
def classes
|
||||
[:BinaryCode,:CacheEntry,:Callable,:CallableMethod,:Class,
|
||||
[:BinaryCode,:Block,:CacheEntry,:Callable,:CallableMethod,:Class,
|
||||
:DataObject,:Data4,:Data8,:Data16,:Dictionary,:Integer,:FalseClass,
|
||||
:List,:Message,:NamedList,:NilClass,:Object,:ReturnAddress,
|
||||
:Space,:TrueClass,:Type,:VoolMethod,:Word]
|
||||
|
@ -45,7 +45,7 @@ module Risc
|
||||
ret = main_ticks(63)
|
||||
assert_equal FunctionReturn , ret.class
|
||||
assert_equal :r1 , ret.register.symbol
|
||||
assert_equal 21476 , @interpreter.get_register(ret.register)
|
||||
assert_equal 21732 , @interpreter.get_register(ret.register)
|
||||
end
|
||||
def test_sys
|
||||
sys = main_ticks(68)
|
||||
|
@ -54,7 +54,7 @@ module Risc
|
||||
end
|
||||
def test_pc1
|
||||
@interpreter.tick
|
||||
assert_equal 21048 , @interpreter.pc
|
||||
assert_equal 21304 , @interpreter.pc
|
||||
end
|
||||
def test_tick2
|
||||
@interpreter.tick
|
||||
@ -68,7 +68,7 @@ module Risc
|
||||
def test_pc2
|
||||
@interpreter.tick
|
||||
@interpreter.tick
|
||||
assert_equal 21052 , @interpreter.pc
|
||||
assert_equal 21308 , @interpreter.pc
|
||||
end
|
||||
def test_tick_14_jump
|
||||
14.times {@interpreter.tick}
|
||||
|
@ -25,7 +25,7 @@ module Risc
|
||||
assert_equal 0 , Position.get(@linker.cpu_init).at
|
||||
end
|
||||
def test_cpu_at
|
||||
assert_equal "0x60ec" , Position.get(@linker.cpu_init.first).to_s
|
||||
assert_equal "0x61ec" , Position.get(@linker.cpu_init.first).to_s
|
||||
end
|
||||
def test_cpu_label
|
||||
assert_equal Position , Position.get(@linker.cpu_init.first).class
|
||||
|
Reference in New Issue
Block a user