formatted interpreter tests

little helper to output the classes
This commit is contained in:
Torsten Ruger 2015-10-16 19:04:17 +03:00
parent dc3920580b
commit 5131e5d050
4 changed files with 49 additions and 31 deletions

View File

@ -10,4 +10,26 @@ module Ticker
end
return last
end
def show_ticks
classes = []
error = nil
tick = 1
begin
while true and (classes.length < 100)
cl = ticks(1).class
tick += 1
classes << cl
break if cl == NilClass
end
rescue => e
puts "Error at tick #{tick}"
puts e
end
classes = classes.collect {|c| '"' + c.name.sub("Register::","") + '",' }
classes.each_slice(5).each do |line|
puts " " + line.join
end
exit(1)
end
end

View File

@ -66,13 +66,9 @@ class AddTest < MiniTest::Test
def test_chain
["Branch","LoadConstant","GetSlot","SetSlot","RegisterTransfer",
# "GetSlot" , "FunctionCall" , "SaveReturn" , "LoadConstant" , "LoadConstant" ,
# "OperatorInstruction" , "RegisterTransfer" , "GetSlot" , "LoadConstant" , "SetSlot" ,
# "LoadConstant" , "SetSlot" , "GetSlot" , "SetSlot", "RegisterTransfer" , "GetSlot" , "FunctionCall" ,
# "SaveReturn" , "GetSlot", "OperatorInstruction" , "RegisterTransfer" , "GetSlot" , "GetSlot" ,
"GetSlot" , "FunctionCall" ,"SaveReturn" , "LoadConstant", "LoadConstant"].each_with_index do |name , index|
"GetSlot","FunctionCall","SaveReturn","LoadConstant","LoadConstant",
"OperatorInstruction","RegisterTransfer","GetSlot"].each_with_index do |name , index|
got = ticks(1)
puts got
assert got.class.name.index(name) , "Wrong class for #{index+1}, expect #{name} , got #{got}"
end
end

View File

@ -59,7 +59,6 @@ HERE
Virtual.machine.run_before "Register::CallImplementation"
@interpreter = Interpreter::Interpreter.new
@interpreter.start Virtual.machine.init
# done = ticks(34)
["Branch","LoadConstant","GetSlot","SetSlot","RegisterTransfer",
"GetSlot","FunctionCall","SaveReturn","LoadConstant","GetSlot",
"SetSlot","LoadConstant","SetSlot","RegisterTransfer","GetSlot",
@ -68,15 +67,15 @@ HERE
"SetSlot","RegisterTransfer","GetSlot","FunctionCall","SaveReturn",
"GetSlot","LoadConstant","OperatorInstruction","SetSlot","GetSlot",
"OperatorInstruction","SetSlot","GetSlot","LoadConstant","OperatorInstruction",
"Branch", "GetSlot", "SetSlot", "LoadConstant", "SetSlot",
"IsZeroBranch","GetSlot","SetSlot","LoadConstant","SetSlot",
"GetSlot","SetSlot","RegisterTransfer","GetSlot","FunctionCall",
"SaveReturn", "GetSlot", "LoadConstant", "OperatorInstruction","Branch",
"LoadConstant", "GetSlot", "LoadConstant", "OperatorInstruction","Branch",
"LoadConstant", "GetSlot", "LoadConstant", "OperatorInstruction","Branch",
"LoadConstant", "GetSlot", "LoadConstant", "OperatorInstruction","Branch",
"LoadConstant"].each_with_index do |name , index|
"SaveReturn","GetSlot","LoadConstant","OperatorInstruction","IsZeroBranch",
"LoadConstant","GetSlot","LoadConstant","OperatorInstruction","IsZeroBranch",
"LoadConstant","GetSlot","LoadConstant","OperatorInstruction","IsZeroBranch",
"LoadConstant","GetSlot","LoadConstant","OperatorInstruction","IsZeroBranch",
"LoadConstant","GetSlot","LoadConstant","OperatorInstruction","IsZeroBranch",
"LoadConstant","NilClass"].each_with_index do |name , index|
got = ticks(1)
puts got
assert got.class.name.index(name) , "Wrong class for #{index+1}, expect #{name} , got #{got}"
end

View File

@ -55,6 +55,7 @@ class TestPuts < MiniTest::Test
end
def test_chain
show_ticks
["Branch","LoadConstant","GetSlot","SetSlot","RegisterTransfer",
"GetSlot","FunctionCall","SaveReturn","LoadConstant","GetSlot",
"SetSlot","LoadConstant","SetSlot","RegisterTransfer","GetSlot",