mirror of
https://github.com/neovim/neovim.git
synced 2026-04-20 06:20:53 +00:00
test/LSP: use less-generic exit code
- os.exit(1) is too generic, since code 1 may be caused by Nvim exiting for some other reason. Change it to os.exit(101). - style: de-architect json_encode/json_decode calls. Failure seen in travis macOS job: https://travis-ci.org/neovim/neovim/jobs/647849133 [ FAILED ] test/functional/plugin/lsp_spec.lua@ 266 SP basic_init test should not send didOpen if the buffer closes before init test/functional/plugin/lsp_spec.lua:297: exit code Expected objects to be the same. Passed in: (number) 1 Expected: (number) 0 stack traceback: test/functional/plugin/lsp_spec.lua:297: in function 'on_exit' test/functional/plugin/lsp_spec.lua💯 in function 'test_rpc_server' test/functional/plugin/lsp_spec.lua:272: in function <test/functional/plugin/lsp_spec.lua:266>
This commit is contained in:
@@ -1,24 +1,5 @@
|
||||
local protocol = require 'vim.lsp.protocol'
|
||||
|
||||
-- Internal utility methods.
|
||||
|
||||
-- TODO replace with a better implementation.
|
||||
local function json_encode(data)
|
||||
local status, result = pcall(vim.fn.json_encode, data)
|
||||
if status then
|
||||
return result
|
||||
else
|
||||
return nil, result
|
||||
end
|
||||
end
|
||||
local function json_decode(data)
|
||||
local status, result = pcall(vim.fn.json_decode, data)
|
||||
if status then
|
||||
return result
|
||||
else
|
||||
return nil, result
|
||||
end
|
||||
end
|
||||
|
||||
local function message_parts(sep, ...)
|
||||
local parts = {}
|
||||
@@ -49,16 +30,14 @@ local function format_message_with_content_length(encoded_message)
|
||||
}
|
||||
end
|
||||
|
||||
-- Server utility methods.
|
||||
|
||||
local function read_message()
|
||||
local line = io.read("*l")
|
||||
local length = line:lower():match("content%-length:%s*(%d+)")
|
||||
return assert(json_decode(io.read(2 + length):sub(2)), "read_message.json_decode")
|
||||
return vim.fn.json_decode(io.read(2 + length):sub(2))
|
||||
end
|
||||
|
||||
local function send(payload)
|
||||
io.stdout:write(format_message_with_content_length(json_encode(payload)))
|
||||
io.stdout:write(format_message_with_content_length(vim.fn.json_encode(payload)))
|
||||
end
|
||||
|
||||
local function respond(id, err, result)
|
||||
@@ -454,6 +433,6 @@ kill_timer:stop()
|
||||
kill_timer:close()
|
||||
if not status then
|
||||
io.stderr:write(err)
|
||||
os.exit(1)
|
||||
os.exit(101)
|
||||
end
|
||||
os.exit(0)
|
||||
|
||||
@@ -217,7 +217,7 @@ describe('LSP', function()
|
||||
client.stop()
|
||||
end;
|
||||
on_exit = function(code, signal)
|
||||
eq(1, code, "exit code")
|
||||
eq(101, code, "exit code")
|
||||
eq(0, signal, "exit signal")
|
||||
end;
|
||||
on_callback = function(...)
|
||||
|
||||
Reference in New Issue
Block a user