mirror of
https://github.com/neovim/neovim.git
synced 2024-12-23 20:55:18 -07:00
fix: adjust error message for error in UI event callback (#28200)
Also close Nvim instance before removing log file, otherwise the Nvim instance will still write to the log file. Also adjust log level in libuv_process_spawn(). Ref #27660
This commit is contained in:
parent
ddbd2b4e40
commit
ae28ef327e
@ -90,7 +90,7 @@ int libuv_process_spawn(LibuvProcess *uvproc)
|
|||||||
|
|
||||||
int status;
|
int status;
|
||||||
if ((status = uv_spawn(&proc->loop->uv, &uvproc->uv, &uvproc->uvopts))) {
|
if ((status = uv_spawn(&proc->loop->uv, &uvproc->uv, &uvproc->uvopts))) {
|
||||||
DLOG("uv_spawn(%s) failed: %s", uvproc->uvopts.file, uv_strerror(status));
|
ILOG("uv_spawn(%s) failed: %s", uvproc->uvopts.file, uv_strerror(status));
|
||||||
if (uvproc->uvopts.env) {
|
if (uvproc->uvopts.env) {
|
||||||
os_free_fullenv(uvproc->uvopts.env);
|
os_free_fullenv(uvproc->uvopts.env);
|
||||||
}
|
}
|
||||||
|
@ -723,7 +723,7 @@ void ui_call_event(char *name, Array args)
|
|||||||
handled = true;
|
handled = true;
|
||||||
}
|
}
|
||||||
if (ERROR_SET(&err)) {
|
if (ERROR_SET(&err)) {
|
||||||
ELOG("Error while executing ui_comp_event callback: %s", err.msg);
|
ELOG("Error executing UI event callback: %s", err.msg);
|
||||||
}
|
}
|
||||||
api_clear_error(&err);
|
api_clear_error(&err);
|
||||||
})
|
})
|
||||||
|
@ -6,6 +6,7 @@ local api = helpers.api
|
|||||||
local exec_lua = helpers.exec_lua
|
local exec_lua = helpers.exec_lua
|
||||||
local retry = helpers.retry
|
local retry = helpers.retry
|
||||||
local assert_alive = helpers.assert_alive
|
local assert_alive = helpers.assert_alive
|
||||||
|
local check_close = helpers.check_close
|
||||||
|
|
||||||
local testlog = 'Xtest-server-notify-log'
|
local testlog = 'Xtest-server-notify-log'
|
||||||
|
|
||||||
@ -18,6 +19,7 @@ describe('notify', function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
after_each(function()
|
after_each(function()
|
||||||
|
check_close()
|
||||||
os.remove(testlog)
|
os.remove(testlog)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ local fn = helpers.fn
|
|||||||
local exec = helpers.exec
|
local exec = helpers.exec
|
||||||
local feed = helpers.feed
|
local feed = helpers.feed
|
||||||
local assert_log = helpers.assert_log
|
local assert_log = helpers.assert_log
|
||||||
|
local check_close = helpers.check_close
|
||||||
local is_os = helpers.is_os
|
local is_os = helpers.is_os
|
||||||
|
|
||||||
local testlog = 'Xtest_autocmd_oldtest_log'
|
local testlog = 'Xtest_autocmd_oldtest_log'
|
||||||
@ -16,6 +17,7 @@ describe('oldtests', function()
|
|||||||
before_each(clear)
|
before_each(clear)
|
||||||
|
|
||||||
after_each(function()
|
after_each(function()
|
||||||
|
check_close()
|
||||||
os.remove(testlog)
|
os.remove(testlog)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
@ -32,6 +32,7 @@ local dedent = helpers.dedent
|
|||||||
local tbl_map = vim.tbl_map
|
local tbl_map = vim.tbl_map
|
||||||
local tbl_filter = vim.tbl_filter
|
local tbl_filter = vim.tbl_filter
|
||||||
local endswith = vim.endswith
|
local endswith = vim.endswith
|
||||||
|
local check_close = helpers.check_close
|
||||||
|
|
||||||
local testlog = 'Xtest-startupspec-log'
|
local testlog = 'Xtest-startupspec-log'
|
||||||
|
|
||||||
@ -116,6 +117,7 @@ describe('startup', function()
|
|||||||
before_each(clear)
|
before_each(clear)
|
||||||
|
|
||||||
after_each(function()
|
after_each(function()
|
||||||
|
check_close()
|
||||||
os.remove(testlog)
|
os.remove(testlog)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
@ -5,6 +5,10 @@ local exec_lua = helpers.exec_lua
|
|||||||
local clear = helpers.clear
|
local clear = helpers.clear
|
||||||
local feed = helpers.feed
|
local feed = helpers.feed
|
||||||
local fn = helpers.fn
|
local fn = helpers.fn
|
||||||
|
local assert_log = helpers.assert_log
|
||||||
|
local check_close = helpers.check_close
|
||||||
|
|
||||||
|
local testlog = 'Xtest_lua_ui_event_log'
|
||||||
|
|
||||||
describe('vim.ui_attach', function()
|
describe('vim.ui_attach', function()
|
||||||
local screen
|
local screen
|
||||||
@ -150,3 +154,22 @@ describe('vim.ui_attach', function()
|
|||||||
}, actual, vim.inspect(actual))
|
}, actual, vim.inspect(actual))
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
describe('vim.ui_attach', function()
|
||||||
|
after_each(function()
|
||||||
|
check_close()
|
||||||
|
os.remove(testlog)
|
||||||
|
end)
|
||||||
|
|
||||||
|
it('error in callback is logged', function()
|
||||||
|
clear({ env = { NVIM_LOG_FILE = testlog } })
|
||||||
|
local screen = Screen.new()
|
||||||
|
screen:attach()
|
||||||
|
exec_lua([[
|
||||||
|
local ns = vim.api.nvim_create_namespace('testspace')
|
||||||
|
vim.ui_attach(ns, { ext_popupmenu = true }, function() error(42) end)
|
||||||
|
]])
|
||||||
|
feed('ifoo<CR>foobar<CR>fo<C-X><C-N>')
|
||||||
|
assert_log('Error executing UI event callback: Error executing lua: .*: 42', testlog, 100)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
@ -20,6 +20,7 @@ local rmdir = helpers.rmdir
|
|||||||
local alter_slashes = helpers.alter_slashes
|
local alter_slashes = helpers.alter_slashes
|
||||||
local tbl_contains = vim.tbl_contains
|
local tbl_contains = vim.tbl_contains
|
||||||
local expect_exit = helpers.expect_exit
|
local expect_exit = helpers.expect_exit
|
||||||
|
local check_close = helpers.check_close
|
||||||
local is_os = helpers.is_os
|
local is_os = helpers.is_os
|
||||||
|
|
||||||
local testlog = 'Xtest-defaults-log'
|
local testlog = 'Xtest-defaults-log'
|
||||||
@ -274,6 +275,7 @@ describe('XDG defaults', function()
|
|||||||
-- Do not put before_each() here for the same reasons.
|
-- Do not put before_each() here for the same reasons.
|
||||||
|
|
||||||
after_each(function()
|
after_each(function()
|
||||||
|
check_close()
|
||||||
os.remove(testlog)
|
os.remove(testlog)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@ -866,6 +868,7 @@ end)
|
|||||||
|
|
||||||
describe('stdpath()', function()
|
describe('stdpath()', function()
|
||||||
after_each(function()
|
after_each(function()
|
||||||
|
check_close()
|
||||||
os.remove(testlog)
|
os.remove(testlog)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@ -1227,6 +1230,8 @@ describe('stdpath()', function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
describe('errors', function()
|
describe('errors', function()
|
||||||
|
before_each(clear)
|
||||||
|
|
||||||
it('on unknown strings', function()
|
it('on unknown strings', function()
|
||||||
eq('Vim(call):E6100: "capybara" is not a valid stdpath', exc_exec('call stdpath("capybara")'))
|
eq('Vim(call):E6100: "capybara" is not a valid stdpath', exc_exec('call stdpath("capybara")'))
|
||||||
eq('Vim(call):E6100: "" is not a valid stdpath', exc_exec('call stdpath("")'))
|
eq('Vim(call):E6100: "" is not a valid stdpath', exc_exec('call stdpath("")'))
|
||||||
@ -1242,6 +1247,7 @@ end)
|
|||||||
|
|
||||||
describe('autocommands', function()
|
describe('autocommands', function()
|
||||||
it('closes terminal with default shell on success', function()
|
it('closes terminal with default shell on success', function()
|
||||||
|
clear()
|
||||||
api.nvim_set_option_value('shell', helpers.testprg('shell-test'), {})
|
api.nvim_set_option_value('shell', helpers.testprg('shell-test'), {})
|
||||||
command('set shellcmdflag=EXIT shellredir= shellpipe= shellquote= shellxquote=')
|
command('set shellcmdflag=EXIT shellredir= shellpipe= shellquote= shellxquote=')
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@ local nvim_prog = helpers.nvim_prog
|
|||||||
local retry = helpers.retry
|
local retry = helpers.retry
|
||||||
local write_file = helpers.write_file
|
local write_file = helpers.write_file
|
||||||
local assert_log = helpers.assert_log
|
local assert_log = helpers.assert_log
|
||||||
|
local check_close = helpers.check_close
|
||||||
local is_os = helpers.is_os
|
local is_os = helpers.is_os
|
||||||
|
|
||||||
local testlog = 'Xtest-embed-log'
|
local testlog = 'Xtest-embed-log'
|
||||||
@ -98,6 +99,7 @@ end)
|
|||||||
|
|
||||||
describe('--embed UI', function()
|
describe('--embed UI', function()
|
||||||
after_each(function()
|
after_each(function()
|
||||||
|
check_close()
|
||||||
os.remove(testlog)
|
os.remove(testlog)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ local clear, fn, api = helpers.clear, helpers.fn, helpers.api
|
|||||||
local ok = helpers.ok
|
local ok = helpers.ok
|
||||||
local matches = helpers.matches
|
local matches = helpers.matches
|
||||||
local pcall_err = helpers.pcall_err
|
local pcall_err = helpers.pcall_err
|
||||||
|
local check_close = helpers.check_close
|
||||||
local mkdir = helpers.mkdir
|
local mkdir = helpers.mkdir
|
||||||
local is_os = helpers.is_os
|
local is_os = helpers.is_os
|
||||||
|
|
||||||
@ -18,6 +19,7 @@ end
|
|||||||
|
|
||||||
describe('server', function()
|
describe('server', function()
|
||||||
after_each(function()
|
after_each(function()
|
||||||
|
check_close()
|
||||||
os.remove(testlog)
|
os.remove(testlog)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user