# HG changeset patch # User Matthew Wild # Date 1451568322 0 # Node ID 52a24deb0cc34fb439ebe7c2f5162523fd04705f # Parent 21871fb2db99ddf9c70382c3d0d0d1c22a9379b9 main: Support for --server-log/-s option, which reads the server's log file during a test and includes it in the JSON log diff -r 21871fb2db99 -r 52a24deb0cc3 main.lua --- a/main.lua Thu Dec 31 13:24:41 2015 +0000 +++ b/main.lua Thu Dec 31 13:25:22 2015 +0000 @@ -4,6 +4,7 @@ local time = require "socket".gettime; local result_log_filename = nil; +local server_log_reader = nil; local property_rules = {}; local function apply_object_properties(class, name, object) @@ -36,6 +37,15 @@ table.insert(property_rules, { class = "client", properties = { connect_host = host } }); elseif opt == "--out" or opt == "-o" then result_log_filename = get_value(); + elseif opt == "--server-log" or opt == "-s" then + local server_log = assert(io.open(get_value(), "r")); + function server_log_reader() + local new_lines = {}; + for line in server_log:lines() do + table.insert(new_lines, line); + end + return new_lines; + end else error("Unhandled command-line option: "..opt); end @@ -90,6 +100,10 @@ local script = initialize_script(parse_script(read_script())); + if server_log_reader then + log_data("server", { lines = server_log_reader() }); + end + local verse = initialize_verse(function (_err) ok, err = false, _err end); local async = require "scansion.async"; @@ -109,6 +123,9 @@ if action.annotation then print(action.annotation); end + if server_log_reader then + log_data("server", { lines = server_log_reader() }); + end print(object.name, action.action.."..."); local ok, err = pcall(handler[action.action], object, action.extra); if not ok then