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

@ -65,14 +65,10 @@ class AddTest < MiniTest::Test
end
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|
["Branch","LoadConstant","GetSlot","SetSlot","RegisterTransfer",
"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,24 +59,23 @@ 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" ,
"FunctionCall" ,"SaveReturn" , "GetSlot" , "LoadConstant" , "SetSlot" ,
"GetSlot", "SetSlot", "LoadConstant" ,"SetSlot" , "GetSlot" ,
"SetSlot", "RegisterTransfer", "GetSlot" , "FunctionCall" , "SaveReturn",
"GetSlot", "LoadConstant", "OperatorInstruction", "SetSlot", "GetSlot",
"OperatorInstruction","SetSlot", "GetSlot", "LoadConstant", "OperatorInstruction",
"Branch", "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|
["Branch","LoadConstant","GetSlot","SetSlot","RegisterTransfer",
"GetSlot","FunctionCall","SaveReturn","LoadConstant","GetSlot",
"SetSlot","LoadConstant","SetSlot","RegisterTransfer","GetSlot",
"FunctionCall","SaveReturn","GetSlot","LoadConstant","SetSlot",
"GetSlot","SetSlot","LoadConstant","SetSlot","GetSlot",
"SetSlot","RegisterTransfer","GetSlot","FunctionCall","SaveReturn",
"GetSlot","LoadConstant","OperatorInstruction","SetSlot","GetSlot",
"OperatorInstruction","SetSlot","GetSlot","LoadConstant","OperatorInstruction",
"IsZeroBranch","GetSlot","SetSlot","LoadConstant","SetSlot",
"GetSlot","SetSlot","RegisterTransfer","GetSlot","FunctionCall",
"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,13 +55,14 @@ class TestPuts < MiniTest::Test
end
def test_chain
["Branch" , "LoadConstant" , "GetSlot" , "SetSlot" , "RegisterTransfer" ,
"GetSlot" , "FunctionCall" , "SaveReturn" , "LoadConstant" , "GetSlot" ,
"SetSlot" , "LoadConstant" , "SetSlot" , "RegisterTransfer" , "GetSlot" ,
"FunctionCall" , "SaveReturn" , "RegisterTransfer" , "Syscall" , "RegisterTransfer" ,
"RegisterTransfer" , "SetSlot" , "GetSlot" , "GetSlot" , "RegisterTransfer" ,
"GetSlot" , "GetSlot" ,"GetSlot" , "FunctionReturn","RegisterTransfer",
"Syscall" , "NilClass"].each_with_index do |name , index|
show_ticks
["Branch","LoadConstant","GetSlot","SetSlot","RegisterTransfer",
"GetSlot","FunctionCall","SaveReturn","LoadConstant","GetSlot",
"SetSlot","LoadConstant","SetSlot","RegisterTransfer","GetSlot",
"FunctionCall","SaveReturn","RegisterTransfer","Syscall","RegisterTransfer",
"RegisterTransfer","SetSlot","GetSlot","GetSlot","RegisterTransfer",
"GetSlot","GetSlot","GetSlot","FunctionReturn","RegisterTransfer",
"Syscall","NilClass"].each_with_index do |name , index|
got = ticks(1)
#puts "TICK #{index}"
assert got.class.name.index(name) , "Wrong class for #{index+1}, expect #{name} , got #{got}"