mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 11:28:22 +00: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:
@@ -21,13 +21,15 @@ local function man_system(cmd, silent)
|
|||||||
local done = false
|
local done = false
|
||||||
local exit_code
|
local exit_code
|
||||||
|
|
||||||
local handle = vim.loop.spawn(cmd[1], {
|
local handle
|
||||||
|
handle = vim.loop.spawn(cmd[1], {
|
||||||
args = vim.list_slice(cmd, 2),
|
args = vim.list_slice(cmd, 2),
|
||||||
stdio = { nil, stdout, stderr },
|
stdio = { nil, stdout, stderr },
|
||||||
}, function(code)
|
}, function(code)
|
||||||
exit_code = code
|
exit_code = code
|
||||||
stdout:close()
|
stdout:close()
|
||||||
stderr:close()
|
stderr:close()
|
||||||
|
handle:close()
|
||||||
done = true
|
done = true
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -52,7 +54,7 @@ local function man_system(cmd, silent)
|
|||||||
|
|
||||||
if not done then
|
if not done then
|
||||||
if handle then
|
if handle then
|
||||||
vim.loop.shutdown(handle)
|
handle:close()
|
||||||
stdout:close()
|
stdout:close()
|
||||||
stderr:close()
|
stderr:close()
|
||||||
end
|
end
|
||||||
|
@@ -1,3 +1,5 @@
|
|||||||
return function (val, res)
|
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
|
end
|
||||||
|
@@ -380,10 +380,23 @@ local function remove_args(args, args_rm)
|
|||||||
return new_args
|
return new_args
|
||||||
end
|
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
|
--- @param io_extra used for stdin_fd, see :help ui-option
|
||||||
function module.spawn(argv, merge, env, keep, io_extra)
|
function module.spawn(argv, merge, env, keep, io_extra)
|
||||||
if session and not keep then
|
if session and not keep then
|
||||||
session:close()
|
module.check_close(session)
|
||||||
end
|
end
|
||||||
|
|
||||||
local child_stream = ChildProcessStream.spawn(
|
local child_stream = ChildProcessStream.spawn(
|
||||||
|
Reference in New Issue
Block a user