# # # add_dir "tests/verbosity" # # add_file "tests/verbosity/__driver__.lua" # content [d3888a0f7de6aa282f9046c6977964cd1d8c182c] # # patch "tests/common/automate_stdio.lua" # from [6538ffa9c811bb51f5f794aa6adfddbba67ac3fa] # to [000de01f4115075e8c2bfe6492fbc376b55aa42c] # ============================================================ --- tests/verbosity/__driver__.lua d3888a0f7de6aa282f9046c6977964cd1d8c182c +++ tests/verbosity/__driver__.lua d3888a0f7de6aa282f9046c6977964cd1d8c182c @@ -0,0 +1,37 @@ +include("common/automate_stdio.lua") + +mtn_setup() + + +function dotest(main_options, subcmd_options, have_p, have_w, have_debug) + local thecmd = mtn("automate", "stdio") + for _, opt in ipairs(main_options) do + table.insert(thecmd, opt) + end + check(thecmd, 0, true, true, + make_stdio_cmd({"bandtest", "info"}, subcmd_options) .. + make_stdio_cmd({"bandtest", "warning"}, subcmd_options) .. + make_stdio_cmd({"bandtest", "error"}, subcmd_options)) + data = readfile("stdout") + check((parse_stdio(data, 0, 0, "p")[1] ~= nil) == have_p) + check((parse_stdio(data, 0, 1, "w")[1] ~= nil) == have_w) + check(parse_stdio(data, 2, 2, "e")[1] ~= nil) + local err = readfile("stderr") + if have_debug then + check(err:find("running bandtest info") ~= nil) + check(err:find("running bandtest warning") ~= nil) + check(err:find("running bandtest error") ~= nil) + else + check(err == "") + end +end + +dotest({}, {}, true, true, false) +dotest({"--quiet"}, {{"verbosity", "0"}}, true, true, false) +dotest({"--quiet"}, {}, false, true, false) +dotest({"--verbosity=-2"}, {}, false, false, false) + +dotest({"--debug"}, {}, true, true, true) +dotest({"--debug"}, {{"verbosity", "0"}}, true, true, true) +dotest({"--debug"}, {{"verbosity", "-1"}}, false, true, true) +dotest({"--debug"}, {{"verbosity", "-2"}}, false, false, true) \ No newline at end of file ============================================================ --- tests/common/automate_stdio.lua 6538ffa9c811bb51f5f794aa6adfddbba67ac3fa +++ tests/common/automate_stdio.lua 000de01f4115075e8c2bfe6492fbc376b55aa42c @@ -57,6 +57,27 @@ end return bands[which][band] end +-- make_stdio_cmd({"cmd", "arg", "arg"}, {{"opt", "val"}, {"opt", "val"}}) +function make_stdio_cmd(cmd, args) + local function lenstr(str) + return str:len() .. ":" .. str + end + local ret = "" + if args then + ret = ret .. "o" + for _, c in ipairs(args) do + ret = ret .. lenstr(c[1]) .. lenstr(c[2]) + end + ret = ret .. "e" + end + ret = ret .. "l" + for _, c in ipairs(cmd) do + ret = ret .. lenstr(c) + end + ret = ret .. "e" + return ret +end + function run_stdio(cmd, err, which, band) check(mtn("automate", "stdio"), 0, true, false, cmd) return parse_stdio(readfile("stdout"), err, which, band)