aboutsummaryrefslogtreecommitdiff
path: root/test/functional/lua/utility_functions_spec.lua
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2019-09-02 21:59:58 +0200
committerBjörn Linse <bjorn.linse@gmail.com>2019-09-02 23:01:16 +0200
commit7e07efaff429d8d8634fd059c6295c7ff0b56c6c (patch)
tree2501f2d659090d263701753d05c51b24f525dc94 /test/functional/lua/utility_functions_spec.lua
parent099445cc07b0154edc6ecd562a28e86c87c0096b (diff)
downloadrneovim-7e07efaff429d8d8634fd059c6295c7ff0b56c6c.tar.gz
rneovim-7e07efaff429d8d8634fd059c6295c7ff0b56c6c.tar.bz2
rneovim-7e07efaff429d8d8634fd059c6295c7ff0b56c6c.zip
api: make try_end clean-up after an exception properly. Fixes #10809
Otherwise `force_abort` will cause an emsg() higher on the stack to be converted to an exception, even though it is outside any try/catch.
Diffstat (limited to 'test/functional/lua/utility_functions_spec.lua')
-rw-r--r--test/functional/lua/utility_functions_spec.lua32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/functional/lua/utility_functions_spec.lua b/test/functional/lua/utility_functions_spec.lua
index 0d93914119..ff15ebf8b3 100644
--- a/test/functional/lua/utility_functions_spec.lua
+++ b/test/functional/lua/utility_functions_spec.lua
@@ -1,5 +1,6 @@
-- Test suite for testing interactions with API bindings
local helpers = require('test.functional.helpers')(after_each)
+local Screen = require('test.functional.ui.screen')
local funcs = helpers.funcs
local clear = helpers.clear
@@ -160,6 +161,37 @@ describe('lua function', function()
feed("<cr>")
eq('Error executing vim.schedule lua callback: [string "<nvim>"]:2: big failure\nvery async', eval("v:errmsg"))
+
+ local screen = Screen.new(60,5)
+ screen:set_default_attr_ids({
+ [1] = {bold = true, foreground = Screen.colors.Blue1},
+ [2] = {bold = true, reverse = true},
+ [3] = {foreground = Screen.colors.Grey100, background = Screen.colors.Red},
+ [4] = {bold = true, foreground = Screen.colors.SeaGreen4},
+ })
+ screen:attach()
+ screen:expect{grid=[[
+ ^ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ |
+ ]]}
+
+ -- nvim_command causes a vimL exception, check that it is properly caught
+ -- and propagated as an error message in async contexts.. #10809
+ exec_lua([[
+ vim.schedule(function()
+ vim.api.nvim_command(":echo 'err")
+ end)
+ ]])
+ screen:expect{grid=[[
+ |
+ {2: }|
+ {3:Error executing vim.schedule lua callback: [string "<nvim>"]}|
+ {3::2: Vim(echo):E115: Missing quote: 'err} |
+ {4:Press ENTER or type command to continue}^ |
+ ]]}
end)
it("vim.split", function()