forked from github/server
74f6076022
add LUA_PATH to runtests.bat
145 lines
3.8 KiB
Lua
145 lines
3.8 KiB
Lua
|
|
--[[--------------------------------------------------------------------------
|
|
|
|
This file is part of lunitx.
|
|
|
|
For Details about lunit look at: http://www.mroth.net/lunit/
|
|
|
|
Author: Michael Roth <mroth@nessie.de>
|
|
|
|
Copyright (c) 2006-2008 Michael Roth <mroth@nessie.de>
|
|
|
|
Permission is hereby granted, free of charge, to any person
|
|
obtaining a copy of this software and associated documentation
|
|
files (the "Software"), to deal in the Software without restriction,
|
|
including without limitation the rights to use, copy, modify, merge,
|
|
publish, distribute, sublicense, and/or sell copies of the Software,
|
|
and to permit persons to whom the Software is furnished to do so,
|
|
subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be
|
|
included in all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
--]]--------------------------------------------------------------------------
|
|
|
|
|
|
|
|
--[[
|
|
|
|
begin()
|
|
run(testcasename, testname)
|
|
err(fullname, message, traceback)
|
|
fail(fullname, where, message, usermessage)
|
|
pass(testcasename, testname)
|
|
done()
|
|
|
|
Fullname:
|
|
testcase.testname
|
|
testcase.testname:setupname
|
|
testcase.testname:teardownname
|
|
|
|
--]]
|
|
|
|
|
|
local lunit = require "lunit"
|
|
local string = require "string"
|
|
local io = require "io"
|
|
local table = require "table"
|
|
|
|
local _M = {}
|
|
|
|
local function printformat(format, ...)
|
|
io.write( string.format(format, ...) )
|
|
end
|
|
|
|
local columns_printed = 0
|
|
|
|
local function writestatus(char)
|
|
if columns_printed == 0 then
|
|
io.write(" ")
|
|
end
|
|
if columns_printed == 60 then
|
|
io.write("\n ")
|
|
columns_printed = 0
|
|
end
|
|
io.write(char)
|
|
io.flush()
|
|
columns_printed = columns_printed + 1
|
|
end
|
|
|
|
local msgs = {}
|
|
|
|
function _M.begin()
|
|
local total_tc = 0
|
|
local total_tests = 0
|
|
|
|
msgs = {} -- e
|
|
|
|
for tcname in lunit.testcases() do
|
|
total_tc = total_tc + 1
|
|
for testname, test in lunit.tests(tcname) do
|
|
total_tests = total_tests + 1
|
|
end
|
|
end
|
|
|
|
printformat("Loaded testsuite with %d tests in %d testcases.\n\n", total_tests, total_tc)
|
|
end
|
|
|
|
function _M.run(testcasename, testname)
|
|
-- NOP
|
|
end
|
|
|
|
function _M.err(fullname, message, traceback)
|
|
writestatus("E")
|
|
msgs[#msgs+1] = "Error! ("..fullname.."):\n"..message.."\n\t"..table.concat(traceback, "\n\t") .. "\n"
|
|
end
|
|
|
|
function _M.fail(fullname, where, message, usermessage)
|
|
writestatus("F")
|
|
local text = "Failure ("..fullname.."):\n"..
|
|
where..": "..message.."\n"
|
|
|
|
if usermessage then
|
|
text = text .. where..": "..usermessage.."\n"
|
|
end
|
|
|
|
msgs[#msgs+1] = text
|
|
end
|
|
|
|
function _M.skip(fullname, where, message, usermessage)
|
|
writestatus("S")
|
|
local text = "Skip ("..fullname.."):\n"..
|
|
where..": "..message.."\n"
|
|
|
|
if usermessage then
|
|
text = text .. where..": "..usermessage.."\n"
|
|
end
|
|
|
|
msgs[#msgs+1] = text
|
|
end
|
|
|
|
function _M.pass(testcasename, testname)
|
|
writestatus(".")
|
|
end
|
|
|
|
function _M.done()
|
|
printformat("\n\n%d Assertions checked.\n", lunit.stats.assertions )
|
|
print()
|
|
|
|
for i, msg in ipairs(msgs) do
|
|
printformat( "%3d) %s\n", i, msg )
|
|
end
|
|
|
|
printformat("Testsuite finished (%d passed, %d failed, %d errors, %d skipped).\n",
|
|
lunit.stats.passed, lunit.stats.failed, lunit.stats.errors, lunit.stats.skipped )
|
|
end
|
|
|
|
return _M
|