formatted interpreter tests
little helper to output the classes
This commit is contained in:
parent
dc3920580b
commit
5131e5d050
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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}"
|
||||
|
Loading…
Reference in New Issue
Block a user