test/util: expect_err() (#8257)

other cleanup, ref #8245
This commit is contained in:
Justin M. Keyes 2018-04-11 22:07:00 +02:00 committed by GitHub
parent f96d99ad11
commit 87f4d2592c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 30 additions and 19 deletions

View File

@ -329,7 +329,6 @@ Implies
.Fl -headless .
.It Fl -headless
Do not start a user interface.
.Fl -listen .
.It Fl -listen Ar address
Start RPC server on this pipe or TCP socket.
.It Fl h , -help

View File

@ -356,8 +356,8 @@ argument.
See also |silent-mode|, which does start a (limited) UI.
--listen {addr} *--listen*
Start |RPC| server on socket or TCP address {addr}. Sets the
primary listen address |v:servername| to {addr}. |serverstart()|
Start |RPC| server on pipe or TCP address {addr}. Sets the
primary listen address |v:servername| to {addr}. |serverstart()|
==============================================================================
2. Initialization *initialization* *startup*
@ -1395,4 +1395,4 @@ RPC clients for debugging. $NVIM_LOG_FILE contains the log file path: >
Usually the file is ~/.local/share/nvim/log unless that path is inaccessible
or if $NVIM_LOG_FILE was set before |startup|.
vim:tw=78:ts=8:ft=help:norl:
vim:noet:tw=78:ts=8:ft=help:norl:

View File

@ -213,7 +213,7 @@ static void ui_set_option(UI *ui, String name, Object value, Error *error)
return;
}
api_set_error(error, kErrorTypeValidation, "No such UI option");
api_set_error(error, kErrorTypeValidation, "No such UI option: %s", name);
#undef UI_EXT_OPTION
}

View File

@ -3,6 +3,8 @@ local Screen = require('test.functional.ui.screen')
local clear = helpers.clear
local eq = helpers.eq
local eval = helpers.eval
local expect_err = helpers.expect_err
local meths = helpers.meths
local request = helpers.request
describe('nvim_ui_attach()', function()
@ -16,24 +18,20 @@ describe('nvim_ui_attach()', function()
eq(999, eval('&columns'))
end)
it('invalid option returns error', function()
local screen = Screen.new()
local status, rv = pcall(function() screen:attach({foo={'foo'}}) end)
eq(false, status)
eq('No such UI option', rv:match("No such .*"))
expect_err('No such UI option: foo',
meths.ui_attach, 80, 24, { foo={'foo'} })
end)
it('validates channel arg', function()
assert.has_error(function() request('nvim_ui_try_resize', 40, 10) end,
'UI not attached to channel: 1')
assert.has_error(function() request('nvim_ui_set_option', 'rgb', true) end,
'UI not attached to channel: 1')
assert.has_error(function() request('nvim_ui_detach') end,
'UI not attached to channel: 1')
expect_err('UI not attached to channel: 1',
request, 'nvim_ui_try_resize', 40, 10)
expect_err('UI not attached to channel: 1',
request, 'nvim_ui_set_option', 'rgb', true)
expect_err('UI not attached to channel: 1',
request, 'nvim_ui_detach')
local screen = Screen.new()
screen:attach({rgb=false})
assert.has_error(function()
request('nvim_ui_attach', 40, 10, { rgb=false })
end,
'UI already attached to channel: 1')
expect_err('UI already attached to channel: 1',
request, 'nvim_ui_attach', 40, 10, { rgb=false })
end)
end)

View File

@ -14,6 +14,7 @@ local check_cores = global_helpers.check_cores
local check_logs = global_helpers.check_logs
local neq = global_helpers.neq
local eq = global_helpers.eq
local expect_err = global_helpers.expect_err
local ok = global_helpers.ok
local map = global_helpers.map
local matches = global_helpers.matches
@ -737,6 +738,7 @@ local module = {
exc_exec = exc_exec,
expect = expect,
expect_any = expect_any,
expect_err = expect_err,
expect_msg_seq = expect_msg_seq,
expect_twostreams = expect_twostreams,
feed = feed,

View File

@ -128,6 +128,10 @@ describe('input utf sequences that contain CSI/K_SPECIAL', function()
end)
describe('input non-printable chars', function()
after_each(function()
os.remove('Xtest-overwrite')
end)
it("doesn't crash when echoing them back", function()
write_file("Xtest-overwrite", [[foobar]])
clear()

View File

@ -22,6 +22,13 @@ local function matches(pat, actual)
end
error(string.format('Pattern does not match.\nPattern:\n%s\nActual:\n%s', pat, actual))
end
-- Expect an error matching pattern `pat`.
local function expect_err(pat, ...)
local fn = select(1, ...)
local fn_args = {...}
table.remove(fn_args, 1)
assert.error_matches(function() return fn(unpack(fn_args)) end, pat)
end
-- initial_path: directory to recurse into
-- re: include pattern (string)
@ -569,6 +576,7 @@ return {
deepcopy = deepcopy,
dictdiff = dictdiff,
eq = eq,
expect_err = expect_err,
filter = filter,
fixtbl = fixtbl,
fixtbl_rec = fixtbl_rec,