test helper cleanup
This commit is contained in:
parent
0978533d36
commit
3eef27be76
@ -1,33 +1,10 @@
|
|||||||
require_relative '../helper'
|
require_relative '../helper'
|
||||||
|
|
||||||
module Risc
|
module Risc
|
||||||
module SpaceHack
|
|
||||||
# test hack to in place change object type
|
|
||||||
def add_space_field(name,type)
|
|
||||||
class_type = Parfait.object_space.get_class_by_name(:Space).instance_type
|
|
||||||
class_type.send(:private_add_instance_variable, name , type)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
module ExpressionHelper
|
|
||||||
include SpaceHack
|
|
||||||
|
|
||||||
def check
|
|
||||||
Risc.machine.boot unless Risc.machine.booted
|
|
||||||
compiler = Vm::MethodCompiler.new Parfait.object_space.get_main
|
|
||||||
code = Vm.ast_to_code @input
|
|
||||||
assert code.to_s , @input
|
|
||||||
produced = compiler.process( code )
|
|
||||||
assert @output , "No output given"
|
|
||||||
assert_equal produced.class , @output , "Wrong class"
|
|
||||||
produced
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
module Statements
|
module Statements
|
||||||
include AST::Sexp
|
include AST::Sexp
|
||||||
include CleanCompile
|
include CleanCompile
|
||||||
include SpaceHack
|
|
||||||
|
|
||||||
def setup
|
def setup
|
||||||
Risc.machine.boot # force boot to reset main
|
Risc.machine.boot # force boot to reset main
|
||||||
@ -39,6 +16,12 @@ module Risc
|
|||||||
def postamble
|
def postamble
|
||||||
[ Label, FunctionReturn]
|
[ Label, FunctionReturn]
|
||||||
end
|
end
|
||||||
|
# test hack to in place change object type
|
||||||
|
def add_space_field(name,type)
|
||||||
|
class_type = Parfait.object_space.get_class_by_name(:Space).instance_type
|
||||||
|
class_type.send(:private_add_instance_variable, name , type)
|
||||||
|
end
|
||||||
|
|
||||||
def check_nil
|
def check_nil
|
||||||
assert @expect , "No output given"
|
assert @expect , "No output given"
|
||||||
Vool::VoolCompiler.ruby_to_vool "class Space; def main(arg);#{@input};end;end"
|
Vool::VoolCompiler.ruby_to_vool "class Space; def main(arg);#{@input};end;end"
|
||||||
@ -60,7 +43,7 @@ module Risc
|
|||||||
should = full_expect[index]
|
should = full_expect[index]
|
||||||
return "No instruction at #{index}\n#{should(all)}" unless should
|
return "No instruction at #{index}\n#{should(all)}" unless should
|
||||||
return "Expected at #{index+1}\n#{should(all)}" unless instruction.class == should
|
return "Expected at #{index+1}\n#{should(all)}" unless instruction.class == should
|
||||||
puts instruction.to_s
|
#puts instruction.to_s
|
||||||
index += 1
|
index += 1
|
||||||
instruction = instruction.next
|
instruction = instruction.next
|
||||||
end while( instruction )
|
end while( instruction )
|
||||||
|
Loading…
x
Reference in New Issue
Block a user