test helper cleanup

This commit is contained in:
Torsten Ruger 2018-03-16 20:25:01 +05:30
parent 0978533d36
commit 3eef27be76

View File

@ -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 )