diff options
-rw-r--r-- | test/functional/ex_cmds/recover_spec.lua | 3 | ||||
-rw-r--r-- | test/functional/helpers.lua | 20 | ||||
-rw-r--r-- | test/functional/shada/helpers.lua | 14 |
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 |