X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;ds=sidebyside;f=tests%2Ftest.lua;h=1192b7b83a659f4a2987dd50e7a194d19f6abbd7;hb=260141cd70f380adba1104651b13cc1ea4b3c385;hp=f7475a805d1395e9c379aa7534f9ecff15a41b89;hpb=d1895b8557764bbbec945dc2e7dd1dff6764f85b;p=prosody.git diff --git a/tests/test.lua b/tests/test.lua index f7475a80..1192b7b8 100644 --- a/tests/test.lua +++ b/tests/test.lua @@ -6,7 +6,7 @@ -- COPYING file in the source package for more information. -- - +local tests_passed = true; function run_all_tests() package.loaded["net.connlisteners"] = { get = function () return {} end }; @@ -20,8 +20,11 @@ function run_all_tests() dotest "util.ip" dotest "util.stanza" dotest "util.sasl.scram" + dotest "util.cache" + dotest "util.throttle" dosingletest("test_sasl.lua", "latin1toutf8"); + dosingletest("test_utf8.lua", "valid"); end local verbosity = tonumber(arg[1]) or 2; @@ -98,6 +101,7 @@ function dosingletest(testname, fname) local success, ret = pcall(tests[fname]); debug.sethook(); if not success then + tests_passed = false; print("TEST FAILED! Unit: ["..testname.."] Function: ["..fname.."]"); print(" Location: "..ret:gsub(":%s*\n", "\n")); line_info(fname, false, report_file); @@ -136,9 +140,12 @@ function dotest(unitname) end local oldmodule, old_M = _fakeG.module, _fakeG._M; - _fakeG.module = function () _M = unit end + _fakeG.module = function () + setmetatable(unit, nil); + unit._M = unit; + end setfenv(chunk, unit); - local success, ret = pcall(chunk); + local success, err = pcall(chunk); _fakeG.module, _fakeG._M = oldmodule, old_M; if not success then print("WARNING: ", "Failed to initialise module: "..unitname, err); @@ -170,6 +177,7 @@ function dotest(unitname) local success, ret = pcall(test, f, unit); debug.sethook(); if not success then + tests_passed = false; print("TEST FAILED! Unit: ["..unitname.."] Function: ["..name.."]"); print(" Location: "..ret:gsub(":%s*\n", "\n")); line_info(name, false, report_file); @@ -189,6 +197,7 @@ function runtest(f, msg) if success and verbosity >= 2 then print("SUBTEST PASSED: "..(msg or "(no description)")); elseif (not success) and verbosity >= 0 then + tests_passed = false; print("SUBTEST FAILED: "..(msg or "(no description)")); error(ret, 0); end @@ -236,3 +245,5 @@ function new_line_coverage_monitor(file) end run_all_tests() + +os.exit(tests_passed and 0 or 1);