rubyx/test/test_runner.rb
2014-05-03 15:13:44 +03:00

38 lines
978 B
Ruby

require_relative 'helper'
require "yaml"
class TestRunner < MiniTest::Test
# this creates test methods dynamically , one for each file in runners directory
def self.runnable_methods
methods = []
Dir[File.join(File.dirname(__FILE__) , "runners" , "*.rb")].each do |file|
meth = File.basename(file).split(".").first
name = "test_#{meth}"
methods << name
self.send(:define_method, name ) {
execute file
}
end
methods
end
def execute file
string = File.read(file)
syntax = Parser::Composed.new.parse(string)
tree = Parser::Transform.new.apply(syntax)
#transform
# write
#link
# execute
# check result ?
program = Vm::Program.new
expression = tree.to_value
compiled = expression.compile( program.context )
# do some stuff with mains and what not ??
program.wrap_as_main compiled
puts program.to_yaml
program.verify
puts program.to_yaml
end
end