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
7 changed files with 30 additions and 19 deletions

View File

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

View File

@@ -356,7 +356,7 @@ argument.
See also |silent-mode|, which does start a (limited) UI. See also |silent-mode|, which does start a (limited) UI.
--listen {addr} *--listen* --listen {addr} *--listen*
Start |RPC| server on socket or TCP address {addr}. Sets the Start |RPC| server on pipe or TCP address {addr}. Sets the
primary listen address |v:servername| to {addr}. |serverstart()| primary listen address |v:servername| to {addr}. |serverstart()|
============================================================================== ==============================================================================
@@ -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 Usually the file is ~/.local/share/nvim/log unless that path is inaccessible
or if $NVIM_LOG_FILE was set before |startup|. 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; 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 #undef UI_EXT_OPTION
} }

View File

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

View File

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

View File

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

View File

@@ -22,6 +22,13 @@ local function matches(pat, actual)
end end
error(string.format('Pattern does not match.\nPattern:\n%s\nActual:\n%s', pat, actual)) error(string.format('Pattern does not match.\nPattern:\n%s\nActual:\n%s', pat, actual))
end 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 -- initial_path: directory to recurse into
-- re: include pattern (string) -- re: include pattern (string)
@@ -569,6 +576,7 @@ return {
deepcopy = deepcopy, deepcopy = deepcopy,
dictdiff = dictdiff, dictdiff = dictdiff,
eq = eq, eq = eq,
expect_err = expect_err,
filter = filter, filter = filter,
fixtbl = fixtbl, fixtbl = fixtbl,
fixtbl_rec = fixtbl_rec, fixtbl_rec = fixtbl_rec,