42 lines
871 B
Ruby
42 lines
871 B
Ruby
require_relative "compiler_helper"
|
|
|
|
class HelloTest < MiniTest::Test
|
|
|
|
def check
|
|
machine = Virtual.machine.boot
|
|
Parfait::Space.object_space.get_class_by_name(:Integer).remove_instance_method :plus
|
|
#TODO remove this hack: write proper aliases
|
|
expressions = machine.compile_main @string_input
|
|
output_at = "Register::CallImplementation"
|
|
#{}"Register::CallImplementation"
|
|
machine.run_before output_at
|
|
#puts Sof.write(machine.space)
|
|
machine.run_after output_at
|
|
writer = Elf::ObjectWriter.new(machine)
|
|
writer.save "hello.o"
|
|
end
|
|
|
|
def qtest_simplest_function
|
|
@string_input = <<HERE
|
|
def foo(x)
|
|
5
|
|
end
|
|
HERE
|
|
check
|
|
end
|
|
|
|
def ttest_puts_string
|
|
@string_input = <<HERE
|
|
putstring("Hello")
|
|
HERE
|
|
check
|
|
end
|
|
|
|
def test_string_put
|
|
@string_input = <<HERE
|
|
"Hello again\n".putstring()
|
|
HERE
|
|
check
|
|
end
|
|
end
|