280 end |
280 end |
281 end; |
281 end; |
282 |
282 |
283 local function run_test_script(script_name, script_text) |
283 local function run_test_script(script_name, script_text) |
284 local script = parse_script(script_text) |
284 local script = parse_script(script_text) |
285 log_data("script", { title = script.title, summary = script.summary, tags = script.tags, filename = script_name }); |
285 local script_data = { title = script.title, summary = script.summary, tags = script.tags, filename = script_name }; |
|
286 log_data("script", script_data); |
286 |
287 |
287 local ok, result, err = pcall(main, log_data, script); |
288 local ok, result, err = pcall(main, log_data, script); |
288 |
289 |
289 local status, reason = "ok"; |
290 local event, status, reason; |
290 if not ok then |
291 if not ok then |
291 status, reason = "error", result; |
292 event, status, reason = "test-error", "error", result; |
292 log_data("test-error", { error = result }); |
|
293 elseif not result then |
293 elseif not result then |
294 status, reason = "fail", err; |
294 event, status, reason = "test-failed", "fail", err; |
295 log_data("test-failed", { error = err }); |
|
296 else |
295 else |
297 log_data("test-passed"); |
296 event, status, reason = "test-passed", "ok", nil; |
298 end |
297 end |
299 return { name = script.title or script_name, status = status, reason = reason }; |
298 |
|
299 local result_data = { name = script.title or script_name, status = status, reason = reason }; |
|
300 |
|
301 log_data(event, result_data); |
|
302 |
|
303 return result_data; |
300 end |
304 end |
301 |
305 |
302 |
306 |
303 if serve_mode then |
307 if serve_mode then |
304 local have_serve, serve = pcall(require, "scansion.serve"); |
308 local have_serve, serve = pcall(require, "scansion.serve"); |