aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShreyansh Chouhan <chouhan.shreyansh2702@gmail.com>2021-06-13 02:53:05 +0530
committerShreyansh Chouhan <chouhan.shreyansh2702@gmail.com>2021-09-20 18:10:40 +0530
commit73d12a8b711743b1441f4029bee48cbaaf7791ec (patch)
tree07fd20364c86a36a37103cb5cb6e199150cffb5b
parent490e09c6d81b9bf52eac7aa146e62b3da2d86579 (diff)
downloadrneovim-73d12a8b711743b1441f4029bee48cbaaf7791ec.tar.gz
rneovim-73d12a8b711743b1441f4029bee48cbaaf7791ec.tar.bz2
rneovim-73d12a8b711743b1441f4029bee48cbaaf7791ec.zip
test: fix running functional tests under gdbserver
It was not possible to run the tests under the gdbserver because we were not closing the old session before starting a new one. This caused the server to not to be able to bind to the given address and crashing the tests. This commit closes the session before starting a new one. Signed-off-by: Shreyansh Chouhan <chouhan.shreyansh2702@gmail.com>
-rw-r--r--test/functional/api/server_requests_spec.lua9
-rw-r--r--test/functional/core/channels_spec.lua10
-rw-r--r--test/functional/helpers.lua11
3 files changed, 16 insertions, 14 deletions
diff --git a/test/functional/api/server_requests_spec.lua b/test/functional/api/server_requests_spec.lua
index e408890906..309d9084c8 100644
--- a/test/functional/api/server_requests_spec.lua
+++ b/test/functional/api/server_requests_spec.lua
@@ -278,8 +278,9 @@ describe('server -> client', function()
local nvim_argv = merge_args(helpers.nvim_argv, {'--headless'})
local function connect_test(server, mode, address)
local serverpid = funcs.getpid()
- local client = spawn(nvim_argv)
- set_session(client, true)
+ local client = spawn(nvim_argv, false, nil, true)
+ set_session(client)
+
local clientpid = funcs.getpid()
neq(serverpid, clientpid)
local id = funcs.sockconnect(mode, address, {rpc=true})
@@ -288,7 +289,7 @@ describe('server -> client', function()
funcs.rpcrequest(id, 'nvim_set_current_line', 'hello')
local client_id = funcs.rpcrequest(id, 'nvim_get_api_info')[1]
- set_session(server, true)
+ set_session(server)
eq(serverpid, funcs.getpid())
eq('hello', meths.get_current_line())
@@ -296,7 +297,7 @@ describe('server -> client', function()
funcs.rpcrequest(client_id, 'nvim_set_current_line', 'howdy!')
eq(id, funcs.rpcrequest(client_id, 'nvim_get_api_info')[1])
- set_session(client, true)
+ set_session(client)
eq(clientpid, funcs.getpid())
eq('howdy!', meths.get_current_line())
diff --git a/test/functional/core/channels_spec.lua b/test/functional/core/channels_spec.lua
index 6efa4f9b80..93dec9fb35 100644
--- a/test/functional/core/channels_spec.lua
+++ b/test/functional/core/channels_spec.lua
@@ -29,11 +29,11 @@ describe('channels', function()
end)
pending('can connect to socket', function()
- local server = spawn(nvim_argv)
+ local server = spawn(nvim_argv, nil, nil, true)
set_session(server)
local address = funcs.serverlist()[1]
- local client = spawn(nvim_argv)
- set_session(client, true)
+ local client = spawn(nvim_argv, nil, nil, true)
+ set_session(client)
source(init)
meths.set_var('address', address)
@@ -42,11 +42,11 @@ describe('channels', function()
ok(id > 0)
command("call chansend(g:id, msgpackdump([[2,'nvim_set_var',['code',23]]]))")
- set_session(server, true)
+ set_session(server)
retry(nil, 1000, function()
eq(23, meths.get_var('code'))
end)
- set_session(client, true)
+ set_session(client)
command("call chansend(g:id, msgpackdump([[0,0,'nvim_eval',['2+3']]]))")
diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua
index a26e883370..f152a487af 100644
--- a/test/functional/helpers.lua
+++ b/test/functional/helpers.lua
@@ -96,10 +96,7 @@ function module.get_session()
return session
end
-function module.set_session(s, keep)
- if session and not keep then
- session:close()
- end
+function module.set_session(s)
session = s
end
@@ -366,7 +363,11 @@ local function remove_args(args, args_rm)
return new_args
end
-function module.spawn(argv, merge, env)
+function module.spawn(argv, merge, env, keep)
+ if session and not keep then
+ session:close()
+ end
+
local child_stream = ChildProcessStream.spawn(
merge and module.merge_args(prepend_argv, argv) or argv,
env)