Start on parsing parfait tests
Hanging on .new currently, but there is surely more
This commit is contained in:
parent
0ae7c5d8aa
commit
104f4c5109
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
class ParfaitTest
|
class ParfaitTest
|
||||||
def setup
|
def setup
|
||||||
@space = Parfait.object_space
|
@space = Object.object_space # this mapping wil have to be added to compiler
|
||||||
end
|
end
|
||||||
def assert(arg)
|
def assert(arg)
|
||||||
return unless(arg)
|
return unless(arg)
|
||||||
|
@ -4,7 +4,42 @@ module RubyX
|
|||||||
class ObjectTest < MiniTest::Test
|
class ObjectTest < MiniTest::Test
|
||||||
include ParfaitHelper
|
include ParfaitHelper
|
||||||
def setup
|
def setup
|
||||||
@input = load_parfait(:object) #+ load_parfait_test(:object)
|
@input = load_parfait(:object) + load_parfait_test(:object)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_load
|
||||||
|
assert @input.include? "ParfaitTest"
|
||||||
|
assert @input.include? "class Object"
|
||||||
|
end
|
||||||
|
def test_compile
|
||||||
|
compiled = Ruby::RubyCompiler.compile(@input)
|
||||||
|
assert_equal Ruby::ScopeStatement , compiled.class
|
||||||
|
assert_equal Ruby::ClassStatement , compiled.first.class
|
||||||
|
end
|
||||||
|
def test_require
|
||||||
|
compiled = Ruby::RubyCompiler.compile(@input)
|
||||||
|
assert_equal Ruby::SendStatement , compiled[1].class
|
||||||
|
assert_equal :require_relative , compiled[1].name
|
||||||
|
end
|
||||||
|
def test_test_class
|
||||||
|
compiled = Ruby::RubyCompiler.compile(@input)
|
||||||
|
assert_equal Ruby::ClassStatement , compiled[2].class
|
||||||
|
assert_equal :TestObject , compiled[2].name
|
||||||
|
end
|
||||||
|
def test_vool_object
|
||||||
|
vool = Ruby::RubyCompiler.compile(@input).to_vool
|
||||||
|
assert_equal Vool::ScopeStatement , vool.class
|
||||||
|
assert_equal Vool::ClassExpression , vool.first.class
|
||||||
|
end
|
||||||
|
def test_vool_helper
|
||||||
|
vool = Ruby::RubyCompiler.compile(@input).to_vool
|
||||||
|
assert_equal Vool::ClassExpression , vool[1].class
|
||||||
|
assert_equal :ParfaitTest , vool[1].name
|
||||||
|
end
|
||||||
|
def test_vool_test
|
||||||
|
vool = Ruby::RubyCompiler.compile(@input).to_vool
|
||||||
|
assert_equal Vool::ClassExpression , vool[2].class
|
||||||
|
assert_equal :TestObject , vool[2].name
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_basics
|
def test_basics
|
||||||
@ -13,8 +48,9 @@ module RubyX
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_run_all
|
def test_run_all
|
||||||
@input += "class Space;def main(arg);::Parfait::Object.new;end;end"
|
@input += "class Space;def main(arg);'Object'.putstring;end;end"
|
||||||
run_input
|
run_input
|
||||||
|
assert_equal "Object" , @interpreter.stdout
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user