progress on the builder front

mainly tests for now
This commit is contained in:
Torsten Ruger
2018-04-06 14:54:24 +03:00
parent e396807ee5
commit 44d661fe56
4 changed files with 76 additions and 6 deletions

View File

@ -2,5 +2,23 @@ require_relative "../helper"
module Risc
class TestBuilder < MiniTest::Test
def setup
Risc.machine.boot
init = Parfait.object_space.get_init
compiler = Risc::MethodCompiler.new( init )
@builder = Builder.new(compiler)
end
def test_has_build
assert_nil @builder.build{ }
end
def test_has_build_and_returns_built
r1 = RiscValue.new(:r1 , :Space)
built = @builder.build{ space << r1 }
assert_equal Transfer , built.class
end
def test_has_attribute
assert_nil @builder.built
end
end
end

View File

@ -1,6 +1,37 @@
require_relative "../helper"
module Risc
class TestRegisterValue < MiniTest::Test
class FakeBuilder
attr_reader :built
def add_instruction(ins)
@built = ins
end
end
module Risc
class TestRegisterValue < MiniTest::Test
def setup
Risc.machine.boot
@r0 = RiscValue.new(:r0 , :Message)
@r1 = RiscValue.new(:r1 , :Space)
end
def test_r0
assert_equal :r0 , @r0.symbol
end
def test_load_space
move = @r0 << Parfait.object_space
assert_equal LoadConstant , move.class
end
def test_transfer
transfer = @r0 << @r1
assert_equal Transfer , transfer.class
end
def test_calls_builder
builder = FakeBuilder.new
@r0.builder = builder
@r0 << @r1
assert_equal Transfer , builder.built.class
end
end
end