mirror of
https://github.com/neovim/neovim.git
synced 2025-09-28 14:08:32 +00:00
fix(eval): checking for a non-empty string is too strict (#15987)
Cherry-pick check_for_nonempty_string() from patch vim-8.2.2133 and
apply it on the bases of https://github.com/neovim/neovim/pull/13489
2a9d5d386b
This commit is contained in:
@@ -18,7 +18,7 @@ describe('executable()', function()
|
||||
end)
|
||||
|
||||
it('fails for invalid values', function()
|
||||
for _, input in ipairs({'""', 'v:null', 'v:true', 'v:false', '{}', '[]'}) do
|
||||
for _, input in ipairs({'v:null', 'v:true', 'v:false', '{}', '[]'}) do
|
||||
eq('Vim(call):E928: String required', exc_exec('call executable('..input..')'))
|
||||
end
|
||||
command('let $PATH = fnamemodify("./test/functional/fixtures/bin", ":p")')
|
||||
@@ -27,6 +27,10 @@ describe('executable()', function()
|
||||
end
|
||||
end)
|
||||
|
||||
it('returns 0 for empty strings', function()
|
||||
eq(0, call('executable', '""'))
|
||||
end)
|
||||
|
||||
it('returns 0 for non-existent files', function()
|
||||
eq(0, call('executable', 'no_such_file_exists_209ufq23f'))
|
||||
end)
|
||||
|
@@ -20,9 +20,10 @@ describe('exepath()', function()
|
||||
end)
|
||||
|
||||
it('fails for invalid values', function()
|
||||
for _, input in ipairs({'""', 'v:null', 'v:true', 'v:false', '{}', '[]'}) do
|
||||
for _, input in ipairs({'v:null', 'v:true', 'v:false', '{}', '[]'}) do
|
||||
eq('Vim(call):E928: String required', exc_exec('call exepath('..input..')'))
|
||||
end
|
||||
eq('Vim(call):E1142: Non-empty string required', exc_exec('call exepath("")'))
|
||||
command('let $PATH = fnamemodify("./test/functional/fixtures/bin", ":p")')
|
||||
for _, input in ipairs({'v:null', 'v:true', 'v:false'}) do
|
||||
eq('Vim(call):E928: String required', exc_exec('call exepath('..input..')'))
|
||||
|
@@ -161,7 +161,7 @@ describe('NULL', function()
|
||||
null_test('does not crash :echomsg', 'echomsg S', 0)
|
||||
null_test('does not crash :execute', 'execute S', 0)
|
||||
null_expr_test('does not crash execute()', 'execute(S)', 0, '')
|
||||
null_expr_test('makes executable() error out', 'executable(S)', 'E928: String required', 0)
|
||||
null_expr_test('does not crash executable()', 'executable(S)', 0, 0)
|
||||
null_expr_test('makes timer_start() error out', 'timer_start(0, S)', 'E921: Invalid callback argument', -1)
|
||||
null_expr_test('does not crash filereadable()', 'filereadable(S)', 0, 0)
|
||||
null_expr_test('does not crash filewritable()', 'filewritable(S)', 0, 0)
|
||||
|
Reference in New Issue
Block a user