Lots of preloading for tests

so many relied (implicitly( on some builtin function
after all can't do much in ruby without calling
Now all those dependencies are explicit
Small risc changes come because the macro version has a return label and unreachable label
This commit is contained in:
2019-09-13 14:07:12 +03:00
parent c9d7539479
commit 12b29285d7
52 changed files with 201 additions and 164 deletions

View File

@ -5,6 +5,7 @@ module Risc
include Ticker
def setup
@preload = "Integer.plus"
@string_input = as_main("a = 5 + 5 ; return a")
super
end

View File

@ -5,6 +5,7 @@ module Risc
include Ticker
def setup
@preload = "Integer.plus"
@string_input = as_main("a = 5 ;a = 5 + a ;a = 5 + a ; return a")
super
end

View File

@ -5,6 +5,7 @@ module Risc
include Ticker
def setup
@preload = "Integer.plus"
@string_input = as_main("a = 5 ;a = 5 + a ; return a")
super
end

View File

@ -4,6 +4,7 @@ module Risc
class BlockCallSimple < MiniTest::Test
include Ticker
def setup
@preload = "Integer.div4"
@string_input = block_main("a = yielder {return 16.div4} ; return a")
super
end

View File

@ -1,7 +1,7 @@
require_relative "../helper"
module Risc
class BlockCallSimpleWithArg# < MiniTest::Test
class BlockCallSimpleWithArg < MiniTest::Test
include Ticker
def setup
@string_input = block_main("a = tenner {|b| return b} ; return a" , tenner)
@ -15,6 +15,7 @@ module Risc
class BlockCallArgOp < MiniTest::Test
include Ticker
def setup
@preload = "Integer.mul"
@string_input = block_main("a = tenner {|b| return 2 * b} ; return a" , tenner)
super
end

View File

@ -4,6 +4,7 @@ module Risc
class BlockCallDyn < MiniTest::Test
include Ticker
def setup
@preload = "Integer.div4"
@string_input = block_main("a = tenner {|b| return b.div4} ; return a" , tenner)
super
end
@ -16,6 +17,7 @@ module Risc
class BlockCallArgOpDyn < MiniTest::Test
include Ticker
def setup
@preload = "Integer.mul"
@string_input = block_main("a = tenner {|b| return b*b} ; return a" , tenner)
super
end

View File

@ -4,6 +4,7 @@ module Risc
module BlockIfOp
include Ticker
def setup
@preload = "Integer.gt;Integer.lt"
@string_input = block_main("a = tenner {|b| if( b #{op} 5 ); return 1;else;return 2;end } ; return a" , tenner)
super
end

View File

@ -4,6 +4,7 @@ module Risc
class BlockWhile < MiniTest::Test
include Ticker
def setup
@preload = "Integer.gt;Integer.minus"
@string_input = block_main("a = tenner {|b| #{while_str} } ; return a" , tenner)
super
end

View File

@ -6,6 +6,7 @@ module Risc
class IntCmp < Minitest::Test
include Ticker
def setup
@preload = [:le,:ge,:gt,:lt].collect{|op| "Integer.#{op}"}.join(";")
end
def test_smaller_true

View File

@ -5,6 +5,7 @@ module Risc
class IntMath < Minitest::Test
include Ticker
def setup
@preload = "all"
end
def test_add

View File

@ -6,23 +6,24 @@ module Risc
include Ticker
def setup
@preload = "Integer.plus"
@string_input = as_main("return 5 + 5")
super
end
def test_chain
# show_main_ticks # get output of what is
#show_main_ticks # get output of what is
check_main_chain [LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, #5
RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, #10
SlotToReg, RegToSlot, SlotToReg, FunctionCall, LoadConstant, #15
SlotToReg, LoadConstant, OperatorInstruction, IsNotZero, SlotToReg, #20
RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, #25
OperatorInstruction, RegToSlot, RegToSlot, SlotToReg, SlotToReg, #30
Branch, RegToSlot, SlotToReg, SlotToReg, SlotToReg, #35
FunctionReturn, SlotToReg, RegToSlot, Branch, SlotToReg, #40
SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, #45
FunctionReturn, Transfer, SlotToReg, SlotToReg, Syscall, #50
NilClass,] #55
OperatorInstruction, RegToSlot, RegToSlot, SlotToReg, RegToSlot, #30
Branch, Branch, SlotToReg, SlotToReg, RegToSlot, #35
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, #40
RegToSlot, Branch, SlotToReg, SlotToReg, RegToSlot, #45
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, #50
SlotToReg, SlotToReg, Syscall, NilClass,] #55
assert_equal 10 , get_return
end
def base_ticks(num)

View File

@ -5,12 +5,13 @@ module Risc
include Ticker
def setup
@preload = "Integer.div10"
@string_input = as_main("return 25.div10")
super
end
def test_chain
# show_main_ticks # get output of what is
#show_main_ticks # get output of what is
check_main_chain [LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, #5
RegToSlot, LoadConstant, SlotToReg, RegToSlot, SlotToReg, #10
FunctionCall, LoadConstant, SlotToReg, LoadConstant, OperatorInstruction, #15
@ -22,11 +23,11 @@ module Risc
LoadData, OperatorInstruction, LoadData, Transfer, OperatorInstruction, #45
OperatorInstruction, Transfer, LoadData, OperatorInstruction, LoadData, #50
OperatorInstruction, OperatorInstruction, RegToSlot, RegToSlot, SlotToReg, #55
SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg, #60
SlotToReg, FunctionReturn, SlotToReg, RegToSlot, Branch, #65
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, #70
SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, #75
Syscall, NilClass,] #80
RegToSlot, Branch, SlotToReg, SlotToReg, RegToSlot, #60
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, #65
RegToSlot, Branch, SlotToReg, SlotToReg, RegToSlot, #70
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, #75
SlotToReg, SlotToReg, Syscall, NilClass,] #80
assert_equal 2 , get_return
end
@ -36,7 +37,7 @@ module Risc
assert_equal 25 , @interpreter.get_register(load_ins.register).value
end
def test_return_class
ret = main_ticks(72)
ret = main_ticks(74)
assert_equal FunctionReturn , ret.class
link = @interpreter.get_register( ret.register )
assert_equal ::Integer , link.class

View File

@ -5,7 +5,8 @@ module Risc
include Ticker
def setup
@string_input = as_main("return 'Hello'.get_internal_byte(0)")
@preload = "Word.get"
@string_input = as_main("return 'Hello'.get_internal_byte(0)")
super
end
def test_chain
@ -15,11 +16,12 @@ module Risc
SlotToReg, RegToSlot, SlotToReg, FunctionCall, LoadConstant, #15
SlotToReg, LoadConstant, OperatorInstruction, IsNotZero, SlotToReg, #20
RegToSlot, SlotToReg, SlotToReg, SlotToReg, ByteToReg, #25
RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, #30
Branch, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, #35
SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg, #40
RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, #45
Transfer, SlotToReg, SlotToReg, Syscall, NilClass,] #50
RegToSlot, RegToSlot, SlotToReg, RegToSlot, Branch, #30
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, #35
SlotToReg, FunctionReturn, SlotToReg, RegToSlot, Branch, #40
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, #45
SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, #50
Syscall, NilClass,] #55
assert_equal "H".ord , get_return
end
def test_byte_to_reg

View File

@ -5,23 +5,24 @@ module Risc
include Ticker
def setup
@preload = "Integer.minus"
@string_input = as_main("return 6 - 5")
super
end
def test_minus
#show_main_ticks # get output of what is
check_main_chain [LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, #5
check_main_chain [LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, #5
RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, #10
SlotToReg, RegToSlot, SlotToReg, FunctionCall, LoadConstant, #15
SlotToReg, LoadConstant, OperatorInstruction, IsNotZero, SlotToReg, #20
RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, #25
OperatorInstruction, RegToSlot, RegToSlot, SlotToReg, SlotToReg, #30
Branch, RegToSlot, SlotToReg, SlotToReg, SlotToReg, #35
FunctionReturn, SlotToReg, RegToSlot, Branch, SlotToReg, #40
SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, #45
FunctionReturn, Transfer, SlotToReg, SlotToReg, Syscall, #50
NilClass,] #55
OperatorInstruction, RegToSlot, RegToSlot, SlotToReg, RegToSlot, #30
Branch, Branch, SlotToReg, SlotToReg, RegToSlot, #35
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, #40
RegToSlot, Branch, SlotToReg, SlotToReg, RegToSlot, #45
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, #50
SlotToReg, SlotToReg, Syscall, NilClass,] #55
assert_equal 1 , get_return
end
def test_op
@ -34,10 +35,10 @@ module Risc
assert_equal 5 , @interpreter.get_register(:r3)
end
def test_return
ret = main_ticks(46)
ret = main_ticks(49)
assert_equal FunctionReturn , ret.class
assert_equal :r3 , ret.register.symbol
assert_equal 40220 , @interpreter.get_register(ret.register)
assert_equal 38140 , @interpreter.get_register(ret.register)
end
end
end

View File

@ -5,22 +5,23 @@ module Risc
include Ticker
def setup
@preload = "Integer.div4"
@string_input = as_main "return 9.div4"
super
end
def test_chain
#show_main_ticks # get output of what is
check_main_chain [LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, #5
check_main_chain [LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, #5
RegToSlot, LoadConstant, SlotToReg, RegToSlot, SlotToReg, #10
FunctionCall, LoadConstant, SlotToReg, LoadConstant, OperatorInstruction, #15
IsNotZero, SlotToReg, RegToSlot, SlotToReg, SlotToReg, #20
LoadData, OperatorInstruction, RegToSlot, RegToSlot, SlotToReg, #25
SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg, #30
SlotToReg, FunctionReturn, SlotToReg, RegToSlot, Branch, #35
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, #40
SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, #45
Syscall, NilClass,] #50
RegToSlot, Branch, SlotToReg, SlotToReg, RegToSlot, #30
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, #35
RegToSlot, Branch, SlotToReg, SlotToReg, RegToSlot, #40
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, #45
SlotToReg, SlotToReg, Syscall, NilClass,] #50
assert_equal 2 , get_return
end

View File

@ -5,6 +5,7 @@ module Risc
include Ticker
def setup
@preload = "Integer.mul"
@string_input = as_main "return #{2**31} * #{2**31}"
super
end
@ -16,12 +17,12 @@ module Risc
SlotToReg, RegToSlot, SlotToReg, FunctionCall, LoadConstant, #15
SlotToReg, LoadConstant, OperatorInstruction, IsNotZero, SlotToReg, #20
RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, #25
OperatorInstruction, RegToSlot, RegToSlot, SlotToReg, SlotToReg, #30
Branch, RegToSlot, SlotToReg, SlotToReg, SlotToReg, #35
FunctionReturn, SlotToReg, RegToSlot, Branch, SlotToReg, #40
SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, #45
FunctionReturn, Transfer, SlotToReg, SlotToReg, Syscall, #50
NilClass,] #55
OperatorInstruction, RegToSlot, RegToSlot, SlotToReg, RegToSlot, #30
Branch, Branch, SlotToReg, SlotToReg, RegToSlot, #35
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, #40
RegToSlot, Branch, SlotToReg, SlotToReg, RegToSlot, #45
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, #50
SlotToReg, SlotToReg, Syscall, NilClass,] #55
assert_equal 0 , get_return
end
def test_zero

View File

@ -5,23 +5,24 @@ module Risc
include Ticker
def setup
@preload = "Integer.plus"
@string_input = as_main("return 5 + 5")
super
end
def test_chain
#show_main_ticks # get output of what is
check_main_chain [LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, #5
check_main_chain [LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, #5
RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, #10
SlotToReg, RegToSlot, SlotToReg, FunctionCall, LoadConstant, #15
SlotToReg, LoadConstant, OperatorInstruction, IsNotZero, SlotToReg, #20
RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, #25
OperatorInstruction, RegToSlot, RegToSlot, SlotToReg, SlotToReg, #30
Branch, RegToSlot, SlotToReg, SlotToReg, SlotToReg, #35
FunctionReturn, SlotToReg, RegToSlot, Branch, SlotToReg, #40
SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, #45
FunctionReturn, Transfer, SlotToReg, SlotToReg, Syscall, #50
NilClass,] #55
OperatorInstruction, RegToSlot, RegToSlot, SlotToReg, RegToSlot, #30
Branch, Branch, SlotToReg, SlotToReg, RegToSlot, #35
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, #40
RegToSlot, Branch, SlotToReg, SlotToReg, RegToSlot, #45
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, #50
SlotToReg, SlotToReg, Syscall, NilClass,] #55
assert_equal 10 , get_return
end
def base_ticks(num)
@ -67,11 +68,11 @@ module Risc
end
def test_move_fix_to_result
sl = base_ticks( 15 )
assert_slot_to_reg( sl , :r0 , 5 , :r1)
assert_slot_to_reg( sl , :r0 , 5 , :r2)
end
def test_start_return_sequence
def test_move_fix_to_result
sl = base_ticks( 16 )
assert_slot_to_reg( sl , :r0 , 6 , :r2)
assert_reg_to_slot( sl , :r2 , :r0 , 5)
end
end
end

View File

@ -5,6 +5,7 @@ module Risc
include Ticker
def setup
@preload = "Word.put"
@string_input = as_main(" return 'Hello again'.putstring ")
super
end
@ -16,11 +17,12 @@ module Risc
FunctionCall, LoadConstant, SlotToReg, LoadConstant, OperatorInstruction, #15
IsNotZero, SlotToReg, RegToSlot, RegToSlot, SlotToReg, #20
SlotToReg, Transfer, Syscall, Transfer, Transfer, #25
SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg, #30
RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, #35
SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg, #40
RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, #45
Transfer, SlotToReg, SlotToReg, Syscall, NilClass,] #50
SlotToReg, RegToSlot, Branch, SlotToReg, RegToSlot, #30
Branch, SlotToReg, SlotToReg, RegToSlot, SlotToReg, #35
SlotToReg, SlotToReg, FunctionReturn, SlotToReg, RegToSlot, #40
Branch, SlotToReg, SlotToReg, RegToSlot, SlotToReg, #45
SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, #50
SlotToReg, Syscall, NilClass,] #55
assert_equal "Hello again" , @interpreter.stdout
assert_equal 11 , get_return #bytes written
end
@ -49,11 +51,11 @@ module Risc
assert_equal Parfait::Message , @interpreter.get_register(:r0).class
end
def test_move_sys_return
sl = main_ticks(31)
sl = main_ticks(34)
assert_reg_to_slot( sl , :r1 ,:r2 , 5)
end
def test_return
done = main_ticks(45)
done = main_ticks(48)
assert_equal FunctionReturn , done.class
end

View File

@ -5,22 +5,23 @@ module Risc
include Ticker
def setup
@preload = "Word.set"
@string_input = as_main("return 'Hello'.set_internal_byte(0,75)")
super
end
def test_chain
#show_main_ticks # get output of what is
check_main_chain [LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, #5
check_main_chain [LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, #5
RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, #10
SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, #15
SlotToReg, FunctionCall, SlotToReg, SlotToReg, RegToSlot, #20
SlotToReg, SlotToReg, SlotToReg, RegToByte, SlotToReg, #25
SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, #30
FunctionReturn, SlotToReg, RegToSlot, Branch, SlotToReg, #35
SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, #40
FunctionReturn, Transfer, SlotToReg, SlotToReg, Syscall, #45
NilClass,] #50
RegToSlot, Branch, SlotToReg, SlotToReg, RegToSlot, #30
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, #35
RegToSlot, Branch, SlotToReg, SlotToReg, RegToSlot, #40
SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, #45
SlotToReg, SlotToReg, Syscall, NilClass,] #50
assert_equal "K".ord , get_return
end
def test_reg_to_byte

View File

@ -5,6 +5,7 @@ module Risc
include Ticker
def setup
@preload = "Integer.gt"
@string_input = as_main 'if( 5 > 5 ); return 1;else;return 2;end'
super
end

View File

@ -5,6 +5,7 @@ module Risc
include Ticker
def setup
@preload = "Integer.ge"
@string_input = as_main 'if( 5 >= 5 ); return 1;else;return 2;end'
super
end

View File

@ -5,6 +5,7 @@ module Risc
include Ticker
def setup
@preload = "Integer.lt"
@string_input = as_main 'if( 5 < 5 ); return 1;else;return 2;end'
super
end

View File

@ -5,6 +5,7 @@ module Risc
include Ticker
def setup
@preload = "Integer.le"
@string_input = as_main 'if( 5 <= 5 ); return 1;else;return 2;end'
super
end

View File

@ -5,35 +5,28 @@ module Risc
include Ticker
def setup
@preload = "Integer.div4"
@string_input = as_main("a = 5 ; return a.div4")
super
end
def test_chain
#show_main_ticks # get output of what is
check_main_chain [LoadConstant, RegToSlot, LoadConstant, SlotToReg, SlotToReg, #5
check_main_chain [LoadConstant, RegToSlot, LoadConstant, SlotToReg, SlotToReg, #5
SlotToReg, OperatorInstruction, IsZero, SlotToReg, SlotToReg, #10
LoadConstant, RegToSlot, LoadConstant, LoadConstant, SlotToReg, #15
SlotToReg, LoadConstant, OperatorInstruction, IsZero, SlotToReg, #20
OperatorInstruction, IsZero, SlotToReg, Branch, LoadConstant, #25
OperatorInstruction, IsZero, SlotToReg, OperatorInstruction, IsZero, #30
SlotToReg, Branch, LoadConstant, OperatorInstruction, IsZero, #35
SlotToReg, OperatorInstruction, IsZero, SlotToReg, Branch, #40
LoadConstant, OperatorInstruction, IsZero, SlotToReg, OperatorInstruction, #45
IsZero, SlotToReg, Branch, LoadConstant, OperatorInstruction, #50
IsZero, SlotToReg, OperatorInstruction, IsZero, SlotToReg, #55
Branch, LoadConstant, OperatorInstruction, IsZero, SlotToReg, #60
OperatorInstruction, IsZero, RegToSlot, LoadConstant, SlotToReg, #65
SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, #70
LoadConstant, SlotToReg, RegToSlot, SlotToReg, LoadConstant, #75
SlotToReg, DynamicJump, LoadConstant, SlotToReg, LoadConstant, #80
OperatorInstruction, IsNotZero, SlotToReg, RegToSlot, SlotToReg, #85
SlotToReg, LoadData, OperatorInstruction, RegToSlot, RegToSlot, #90
SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, #95
SlotToReg, SlotToReg, FunctionReturn, SlotToReg, RegToSlot, #100
Branch, SlotToReg, SlotToReg, RegToSlot, SlotToReg, #105
SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, #110
SlotToReg, Syscall, NilClass,] #115
OperatorInstruction, IsZero, RegToSlot, LoadConstant, SlotToReg, #25
SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, #30
LoadConstant, SlotToReg, RegToSlot, SlotToReg, LoadConstant, #35
SlotToReg, DynamicJump, LoadConstant, SlotToReg, LoadConstant, #40
OperatorInstruction, IsNotZero, SlotToReg, RegToSlot, SlotToReg, #45
SlotToReg, LoadData, OperatorInstruction, RegToSlot, RegToSlot, #50
SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg, #55
RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, #60
SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg, #65
RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, #70
Transfer, SlotToReg, SlotToReg, Syscall, NilClass,] #75
assert_equal ::Integer , get_return.class
assert_equal 1 , get_return
end
@ -50,16 +43,16 @@ module Risc
end
def test_dyn
cal = main_ticks(77)
cal = main_ticks(37)
assert_equal DynamicJump , cal.class
end
def test_return
ret = main_ticks(108)
ret = main_ticks(70)
assert_equal FunctionReturn , ret.class
link = @interpreter.get_register( ret.register )
assert_equal ::Integer , link.class
end
def test_sys
def ttest_sys
sys = main_ticks(112)
assert_equal Syscall , sys.class
end

View File

@ -5,6 +5,7 @@ module Risc
include Ticker
def setup
@preload = "Integer.ge;Integer.plus"
@string_input = as_main 'a = 0; while( 0 >= a); a = 1 + a;end;return a'
super
end

View File

@ -3,8 +3,10 @@ require_relative "../helper"
module Risc
class InterpreterWhileCount < MiniTest::Test
include Ticker
include Preloader
def setup
@preload = "Integer.gt;Integer.plus"
@string_input = as_main 'a = -1; while( 0 > a); a = 1 + a;end;return a'
super
end