123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- -- 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()
|