|
|
|
@ -1,18 +1,21 @@
|
|
|
|
|
local script = require 'gui.script'
|
|
|
|
|
local utils = require 'utils'
|
|
|
|
|
|
|
|
|
|
local args = {...}
|
|
|
|
|
local done_command = args[1]
|
|
|
|
|
|
|
|
|
|
expect = {}
|
|
|
|
|
function expect.true_(value)
|
|
|
|
|
return not not value
|
|
|
|
|
function expect.true_(value, comment)
|
|
|
|
|
return not not value, comment, 'expected true'
|
|
|
|
|
end
|
|
|
|
|
function expect.false_(value)
|
|
|
|
|
return not value
|
|
|
|
|
function expect.false_(value, comment)
|
|
|
|
|
return not value, comment, 'expected false'
|
|
|
|
|
end
|
|
|
|
|
function expect.eq(a, b)
|
|
|
|
|
return a == b
|
|
|
|
|
function expect.eq(a, b, comment)
|
|
|
|
|
return a == b, comment, ('%s ~= %s'):format(a, b)
|
|
|
|
|
end
|
|
|
|
|
function expect.ne(a, b)
|
|
|
|
|
return a ~= b
|
|
|
|
|
function expect.ne(a, b, comment)
|
|
|
|
|
return a ~= b, comment, ('%s == %s'):format(a, b)
|
|
|
|
|
end
|
|
|
|
|
function expect.error(func, ...)
|
|
|
|
|
local ok, ret = pcall(func, ...)
|
|
|
|
@ -23,10 +26,16 @@ function expect.error(func, ...)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function delay(frames)
|
|
|
|
|
frames = frames or 1
|
|
|
|
|
script.sleep(frames, 'frames')
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function build_test_env()
|
|
|
|
|
local env = {
|
|
|
|
|
test = {},
|
|
|
|
|
test = utils.OrderedTable(),
|
|
|
|
|
expect = {},
|
|
|
|
|
delay = delay,
|
|
|
|
|
}
|
|
|
|
|
local private = {
|
|
|
|
|
checks = 0,
|
|
|
|
@ -35,7 +44,15 @@ function build_test_env()
|
|
|
|
|
for name, func in pairs(expect) do
|
|
|
|
|
env.expect[name] = function(...)
|
|
|
|
|
private.checks = private.checks + 1
|
|
|
|
|
local ok, msg = func(...)
|
|
|
|
|
local ret = {func(...)}
|
|
|
|
|
local ok = table.remove(ret, 1)
|
|
|
|
|
local msg = ''
|
|
|
|
|
for _, part in pairs(ret) do
|
|
|
|
|
if part then
|
|
|
|
|
msg = msg .. ': ' .. tostring(part)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
msg = msg:sub(3) -- strip leading ': '
|
|
|
|
|
if ok then
|
|
|
|
|
private.checks_ok = private.checks_ok + 1
|
|
|
|
|
else
|
|
|
|
@ -90,6 +107,21 @@ function main()
|
|
|
|
|
}
|
|
|
|
|
local passed = true
|
|
|
|
|
|
|
|
|
|
print('Looking for title screen...')
|
|
|
|
|
for i = 0, 100 do
|
|
|
|
|
local scr = dfhack.gui.getCurViewscreen()
|
|
|
|
|
if df.viewscreen_titlest:is_instance(scr) then
|
|
|
|
|
print('Found title screen')
|
|
|
|
|
break
|
|
|
|
|
else
|
|
|
|
|
scr:feed_key(df.interface_key.LEAVESCREEN)
|
|
|
|
|
delay(10)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
if not df.viewscreen_titlest:is_instance(dfhack.gui.getCurViewscreen()) then
|
|
|
|
|
qerror('Could not find title screen')
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
print('Running tests')
|
|
|
|
|
for _, file in ipairs(files) do
|
|
|
|
|
print('Running file: ' .. file:sub(file:find('test'), -1))
|
|
|
|
@ -137,21 +169,4 @@ function main()
|
|
|
|
|
finish_tests(passed)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local check_count = 0
|
|
|
|
|
function check_title()
|
|
|
|
|
local scr = dfhack.gui.getCurViewscreen()
|
|
|
|
|
if df.viewscreen_titlest:is_instance(scr) then
|
|
|
|
|
print('Found title screen')
|
|
|
|
|
main()
|
|
|
|
|
else
|
|
|
|
|
check_count = check_count + 1
|
|
|
|
|
if check_count > 100 then
|
|
|
|
|
qerror('Could not find title screen')
|
|
|
|
|
end
|
|
|
|
|
scr:feed_key(df.interface_key.LEAVESCREEN)
|
|
|
|
|
dfhack.timeout(10, 'frames', check_title)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
print('Looking for title screen...')
|
|
|
|
|
check_title()
|
|
|
|
|
script.start(main)
|
|
|
|
|