diff options
Diffstat (limited to 'test/lua/tests.lua')
-rw-r--r-- | test/lua/tests.lua | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/test/lua/tests.lua b/test/lua/tests.lua new file mode 100644 index 0000000..82c5469 --- /dev/null +++ b/test/lua/tests.lua @@ -0,0 +1,51 @@ +-- Run all unit tests in 'unit' directory + +local telescope = require "telescope" +require "rspamd_assertions" +local loaded, luacov = pcall(require, 'luacov.runner') +if not loaded then + luacov = { + init = function() end, + shutdown = function() end, + run_report = function() end + } +end +luacov.init() + +local contexts = {} + +for _,t in ipairs(tests_list) do + telescope.load_contexts(t, contexts) +end +local function test_filter(test) + return test.name:match(test_pattern) +end +if not test_pattern then + test_filter = function(_) return true end +end + +local buffer = {} +local results = telescope.run(contexts, callbacks, test_filter) +local summary, data = telescope.summary_report(contexts, results) + +table.insert(buffer, telescope.test_report(contexts, results)) +table.insert(buffer, summary) + +local report = telescope.error_report(contexts, results) + +if report then + table.insert(buffer, "") + table.insert(buffer, report) +end + +if #buffer > 0 then print(table.concat(buffer, "\n")) end + +for _, v in pairs(results) do + if v.status_code == telescope.status_codes.err or + v.status_code == telescope.status_codes.fail then + os.exit(1) + end +end + +luacov:shutdown() +luacov:run_report() |