aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/functional/ex_cmds/recover_spec.lua3
-rw-r--r--test/functional/helpers.lua20
-rw-r--r--test/functional/shada/helpers.lua14
3 files changed, 23 insertions, 14 deletions
diff --git a/test/functional/ex_cmds/recover_spec.lua b/test/functional/ex_cmds/recover_spec.lua
index b92739e40e..a24a60af81 100644
--- a/test/functional/ex_cmds/recover_spec.lua
+++ b/test/functional/ex_cmds/recover_spec.lua
@@ -47,7 +47,8 @@ describe(':preserve', function()
--TODO(justinmk): this is an ugly hack to force `helpers` to support
--multiple sessions.
- local nvim2 = helpers.spawn({helpers.nvim_prog, '-u', 'NONE', '--embed'})
+ local nvim2 = helpers.spawn({helpers.nvim_prog, '-u', 'NONE', '--embed'},
+ true)
helpers.set_session(nvim2)
source(init)
diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua
index 23581ba4d2..79f1feb7b5 100644
--- a/test/functional/helpers.lua
+++ b/test/functional/helpers.lua
@@ -178,12 +178,27 @@ local function rawfeed(...)
end
end
-local function spawn(argv)
+local function merge_args(...)
+ local i = 1
+ local argv = {}
+ for anum = 1,select('#', ...) do
+ local args = select(anum, ...)
+ if args then
+ for _, arg in ipairs(args) do
+ argv[i] = arg
+ i = i + 1
+ end
+ end
+ end
+ return argv
+end
+
+local function spawn(argv, merge)
local loop = Loop.new()
local msgpack_stream = MsgpackStream.new(loop)
local async_session = AsyncSession.new(msgpack_stream)
local session = Session.new(async_session)
- loop:spawn(argv)
+ loop:spawn(merge and merge_args(prepend_argv, argv) or argv)
return session
end
@@ -382,4 +397,5 @@ return {
rmdir = rmdir,
mkdir = lfs.mkdir,
exc_exec = exc_exec,
+ merge_args = merge_args,
}
diff --git a/test/functional/shada/helpers.lua b/test/functional/shada/helpers.lua
index d37e84f156..b3153ca7f1 100644
--- a/test/functional/shada/helpers.lua
+++ b/test/functional/shada/helpers.lua
@@ -2,7 +2,7 @@ local helpers = require('test.functional.helpers')
local spawn, set_session, nvim, nvim_prog, nvim_command, nvim_eval =
helpers.spawn, helpers.set_session, helpers.nvim, helpers.nvim_prog,
helpers.command, helpers.eval
-local write_file = helpers.write_file
+local write_file, merge_args = helpers.write_file, helpers.merge_args
local msgpack = require('MessagePack')
@@ -16,18 +16,10 @@ local function nvim_argv()
'--cmd', additional_cmd,
'--embed'}
if helpers.prepend_argv then
- ret = {}
- for i, v in ipairs(helpers.prepend_argv) do
- ret[i] = v
- end
- local shift = #ret
- for i, v in ipairs(nvim_argv) do
- ret[i + shift] = v
- end
+ return merge_args(helpers.prepend_argv, nvim_argv)
else
- ret = nvim_argv
+ return nvim_argv
end
- return ret
end
local session = nil