system(), jobstart(): raise error on non-executable #11234

* tv_to_argv: error when cmd is not executable
  Callers always assume that emsg was emitted:
  - https://github.com/neovim/neovim/blob/57fbf288/src/nvim/eval.c#L12509
  - https://github.com/neovim/neovim/blob/57fbf288/src/nvim/eval.c#L17923
  - https://github.com/neovim/neovim/blob/57fbf288/src/nvim/eval.c#L18202
* test/functional/provider: display reason from missing_provider
* provider#node#Detect: skip / handle non-existing node executable
This commit is contained in:
Daniel Hahler
2019-12-24 07:53:56 +01:00
committed by Justin M. Keyes
parent 53fe877a97
commit b3686b1597
8 changed files with 28 additions and 16 deletions

View File

@@ -10,13 +10,14 @@ local pcall_err = helpers.pcall_err
do
clear()
if missing_provider('python3') then
local reason = missing_provider('python3')
if reason then
it(':python3 reports E319 if provider is missing', function()
local expected = [[Vim%(py3.*%):E319: No "python3" provider found.*]]
matches(expected, pcall_err(command, 'py3 print("foo")'))
matches(expected, pcall_err(command, 'py3file foo'))
end)
pending('Python 3 (or the pynvim module) is broken/missing', function() end)
pending(string.format('Python 3 (or the pynvim module) is broken/missing (%s)', reason), function() end)
return
end
end