mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
fix(tests): indicate in test logs when nvim exit times out
When it happens it wastes 2 seconds which is NOT included in the normal busted timing info. It is hard to correct this, but we can at least print a warning when this happens.
This commit is contained in:
parent
93b30582db
commit
02f8ca59a8
@ -21,13 +21,15 @@ local function man_system(cmd, silent)
|
||||
local done = false
|
||||
local exit_code
|
||||
|
||||
local handle = vim.loop.spawn(cmd[1], {
|
||||
local handle
|
||||
handle = vim.loop.spawn(cmd[1], {
|
||||
args = vim.list_slice(cmd, 2),
|
||||
stdio = { nil, stdout, stderr },
|
||||
}, function(code)
|
||||
exit_code = code
|
||||
stdout:close()
|
||||
stderr:close()
|
||||
handle:close()
|
||||
done = true
|
||||
end)
|
||||
|
||||
@ -52,7 +54,7 @@ local function man_system(cmd, silent)
|
||||
|
||||
if not done then
|
||||
if handle then
|
||||
vim.loop.shutdown(handle)
|
||||
handle:close()
|
||||
stdout:close()
|
||||
stderr:close()
|
||||
end
|
||||
|
@ -1,3 +1,5 @@
|
||||
return function (val, res)
|
||||
vim.loop.new_async(function() _G[res] = require'leftpad'(val) end):send()
|
||||
local handle
|
||||
handle = vim.loop.new_async(function() _G[res] = require'leftpad'(val) handle:close() end)
|
||||
handle:send()
|
||||
end
|
||||
|
@ -380,10 +380,23 @@ local function remove_args(args, args_rm)
|
||||
return new_args
|
||||
end
|
||||
|
||||
function module.check_close(old_session)
|
||||
local start_time = luv.now()
|
||||
old_session:close()
|
||||
luv.update_time() -- Update cached value of luv.now() (libuv: uv_now()).
|
||||
local end_time = luv.now()
|
||||
local delta = end_time - start_time
|
||||
if delta > 500 then
|
||||
print("nvim took " .. delta .. " milliseconds to exit after last test\n"..
|
||||
"This indicates a likely problem with the test even if it passed!\n")
|
||||
io.stdout:flush()
|
||||
end
|
||||
end
|
||||
|
||||
--- @param io_extra used for stdin_fd, see :help ui-option
|
||||
function module.spawn(argv, merge, env, keep, io_extra)
|
||||
if session and not keep then
|
||||
session:close()
|
||||
module.check_close(session)
|
||||
end
|
||||
|
||||
local child_stream = ChildProcessStream.spawn(
|
||||
|
Loading…
Reference in New Issue
Block a user