32 lines
1.0 KiB
Lua
32 lines
1.0 KiB
Lua
-- Permet de lancer les tests avec LÖVE : love . --tests
|
|
-- Ce fichier est chargé par main.lua quand l'argument --tests est présent.
|
|
-- Il exécute tests/run_tests.lua dans l'environnement courant puis quitte.
|
|
|
|
local oldPrint = print
|
|
local lines = {}
|
|
print = function(...)
|
|
local parts = {}
|
|
for i = 1, select("#", ...) do parts[#parts + 1] = tostring(select(i, ...)) end
|
|
lines[#lines + 1] = table.concat(parts, "\t")
|
|
oldPrint(...)
|
|
end
|
|
|
|
-- os.exit ne fonctionne pas sous love : on intercepte
|
|
local exitCode = 0
|
|
os.exit = function(code) exitCode = code or 0; error({ __testDone = true }) end
|
|
|
|
local chunk, err = loadfile("tests/run_tests.lua")
|
|
if not chunk then
|
|
oldPrint("Impossible de charger les tests : " .. tostring(err))
|
|
love.event.quit(1)
|
|
return
|
|
end
|
|
local ok, e = pcall(chunk)
|
|
if not ok and not (type(e) == "table" and e.__testDone) then
|
|
oldPrint("Erreur pendant les tests : " .. tostring(e))
|
|
love.event.quit(1)
|
|
return
|
|
end
|
|
oldPrint(table.concat(lines, "\n"))
|
|
love.event.quit(exitCode)
|