From 130cb4815a5c6625a938b1e93a7d60d7a38ad8dd Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 1 Dec 2023 13:56:04 +0800 Subject: fix(api): use a conditional stack for nvim_cmd (#26341) --- test/functional/api/vim_spec.lua | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'test/functional/api/vim_spec.lua') diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua index 8bbadda9b0..7287666190 100644 --- a/test/functional/api/vim_spec.lua +++ b/test/functional/api/vim_spec.lua @@ -4547,5 +4547,24 @@ describe('API', function() ok(luv.now() - start <= 300) end) end) + it(':call with unknown function does not crash #26289', function() + eq('Vim:E117: Unknown function: UnknownFunc', + pcall_err(meths.cmd, {cmd = 'call', args = {'UnknownFunc()'}}, {})) + end) + it(':throw does not crash #24556', function() + eq('42', pcall_err(meths.cmd, {cmd = 'throw', args = {'42'}}, {})) + end) + it('can use :return #24556', function() + exec([[ + func Foo() + let g:pos = 'before' + call nvim_cmd({'cmd': 'return', 'args': ['[1, 2, 3]']}, {}) + let g:pos = 'after' + endfunc + let g:result = Foo() + ]]) + eq('before', meths.get_var('pos')) + eq({1, 2, 3}, meths.get_var('result')) + end) end) end) -- cgit